问题描述
我试图了解以下策略的含义,特别是 Principal
Service
部分,我已将其附加到 AWS KMS 密钥。
{
"Version": "2012-10-17","Statement": [
{
"Effect": "Allow","Principal": {
"Service": "ecs-tasks.amazonaws.com"
},"Action": [
"kms:Encrypt","kms:Decrypt","kms:GenerateDataKey"
],"Resource": "*"
}
]
}
这是否意味着我的软件(在 fargate 中的 docker 内运行)可以调用此 KMS 密钥来加密数据?
或
是不是说ecs自己可以调用这个KMS密钥来加密一些东西?
解决方法
在这种情况下,它意味着两件事。这是因为 IAM Roles for Tasks 和 ECS task execution IAM role 使用 ecs-tasks.amazonaws.com
的相同原理。
您必须准确指定 Resource
中的哪个角色可以使用该密钥。目前仅使用 *
,任何角色,IAM Roles for Tasks
或 ECS task execution IAM role
都可以使用此类密钥。