AWS推出全局条件上下文键以提升EC2安全性

AWS引入全局条件上下文键以限制EC2实例凭证的使用

AWS最近引入了两个新的全局条件上下文键,用于限制EC2实例凭证的使用范围,从而降低凭证泄露的风险。这两个键分别是:

  • aws:EC2InstanceSourceVPC:包含EC2实例部署的VPC ID。
  • aws:EC2InstanceSourcePrivateIPv4:包含EC2实例的主要IPv4地址。

IAM角色的风险与防护

IAM角色广泛用于AWS上的EC2实例,允许应用程序在不管理安全凭证的情况下进行API请求。然而,临时凭证存在泄露风险。AWS首席开发者倡导者Sébastien Stormacq解释了这种风险,并展示了如何使用GuardDuty检测EC2凭证泄露。

凭证泄露的潜在影响

如果运行在EC2实例上的应用程序被入侵,攻击者可能通过实例的元数据服务获取凭证。这些凭证具有附加到实例的IAM角色的权限,攻击者可能利用这些权限从S3或DynamoDB中窃取数据、启动或终止EC2实例,甚至创建新的IAM用户或角色。

新条件键的作用

此前,开发人员需要在角色策略或VPC终端策略中硬编码VPC ID和/或IP地址,以限制凭证使用的网络位置。新引入的条件键允许创建策略,确保EC2实例的凭证仅从其原始位置使用。通过与现有的网络路径相关条件键(如aws:SourceVPC和aws:VpcSourceIP)结合使用,可以配置环境,使得使用EC2实例凭证签名的请求在非原始实例上使用时被拒绝。

示例策略

以下是一个使用ec2InstanceSourceVPC键的拒绝策略示例:

{
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ec2InstanceSourceVPC": "${aws:SourceVpc}"
        },
        "Null": {
          "ec2:SourceInstanceARN": "false"
        },
        "BoolIfExists": {
          "aws:ViaAWSService": "false"
        }
      }
    }
  ]
}

业界反应

虽然许多开发者对这一新特性表示欢迎,但Honeycomb.io的现场CTO Liz Fong-Jones表示惊讶,认为这一功能应该默认启用。Ariksa的CTO Seshubabu Pasam也指出,除非密切关注AWS的每一个新公告,否则这一功能不会很快被普通用户发现,且默认未启用的安全功能在新账户中也几乎无用。

可用性

新的条件键已在所有AWS区域中提供。

阅读 30
0 条评论