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区域中提供。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。