Cross-service confused deputy protection
这个策略是一个用于防止混淆代理(Confused Deputy)攻击的安全策略。它的主要效果是:
1. 当 AWS 服务作为主体(Principal)访问资源时,该策略会拒绝访问,除非满足特定条件。
2. 策略适用的服务和操作包括:
• S3 的所有操作
• SQS 的所有操作
• KMS 的所有操作
• Secrets Manager 的所有操作
• STS 的所有操作
3. 拒绝条件(必须同时满足以下所有条件才会拒绝):
• 请求来自 AWS 服务(aws:PrincipalIsAWSService 为 true)
• 请求必须包含 aws:SourceArn(不能为空)
• 如果请求中包含 aws:SourceOrgID,则其值必须不等于 "my-org-id"
• 如果请求中包含 aws:SourceAccount,则其值必须不在 ["third-party-account-a", "third-party-account-b"] 列表中
这个策略的目的是确保只有来自特定组织 ID 或特定账户的 AWS 服务调用才能访问资源,并且要求请求必须包含源 ARN,从而防止混淆代理攻击。这是一种安全最佳实践,可以限制跨服务权限提升的风险。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "EnforceConfusedDeputyProtection",
"Effect": "Deny",
"Principal": "*",
"Action": [
"s3:*",
"sqs:*",
"kms:*",
"secretsmanager:*",
"sts:*"
],
"Resource": "*",
"Condition": {
"StringNotEqualsIfExists": {
"aws:SourceOrgID": "my-org-id",
"aws:SourceAccount": [
"third-party-account-a",
"third-party-account-b"
]
},
"Bool": {
"aws:PrincipalIsAWSService": "true"
},
"Null": {
"aws:SourceArn": "false"
}
}
}
]
}
最后更新于