使用仅加固模式访问实例元数据

创建实例时启用仅加固模式访问元数据。

安全风险

普通方式访问实例元数据,请求通过IP地址鉴权,意味着攻击者可以伪造请求的源IP地址,绕过IP地址鉴权,进行SSRF攻击,造成实例元数据中敏感信息泄露风险。加固方式访问元数据必须先获取有效的元数据访问凭证进行身份验证和授权,该访问凭证只能在ECS实例内部生成,在特定的ECS实例上使用,且具有时效性,攻击者难以通过猜测或伪造的方式生成,可以防范大多数SSRF攻击。

最佳实践

控制台

通过实例购买页创建实例时,避免使用普通模式和加固模式,应选择仅加固模式(仅部分最新公共镜像版本支持)。

重要

设置强制加固模式获取实例元数据后,请确保访问元数据的应用代码已全部切换为token鉴权方式访问元数据。

image.png

API

通过RunInstances或者CreateInstance接口创建实例时,指定HttpTokens参数为requiredHttpEndpoint参数为enabled启用仅加固模式元数据访问。

合规能力

拦截:禁止创建非仅加固模式的实例

在组织或账户层面通过RAM Policy策略,主动拦截非仅加固模式的实例创建等行为。

  • 针对企业用户:

    1. 使用阿里云主账号登录资源目录控制台,单击左侧菜单栏的管控策略创建自定义权限策略,粘贴以下JSON内容。

      禁止在创建实例、修改实例元数据访问模式等操作中设置非仅加固模式。
      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Deny",
            "Action": [
              "ecs:RunInstances",
              "ecs:CreateInstance",
              "ecs:ModifyInstanceMetadataOptions"
            ],
            "Resource": "*",
            "Condition": {
              "StringEquals": {
                "ecs:SecurityHardeningMode": ["false"]
              }
            }
          }
        ]
      }
    2. 在资源目录中选择合适的节点绑定策略,策略将对目录下的账号产生拦截效果。

  • 针对非企业用户:

    1. 使用阿里云主账号登录RAM控制台,单击左侧菜单栏的权限策略,创建一条与上述内容相同的自定义策略。

    2. 通过管理权限策略授权将该条权限策略授权给RAM用户、RAM用户组或RAM角色。

修复:修复非仅加固模式的实例

具体操作,请参见为已有实例设置强制加固模式