我试图理解以下策略的含义,特别是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角色和ECS任务执行IAM角色使用了ecs-tasks.amazonaws.com
的相同原则。
您必须指定Resource
中哪个角色可以使用该密钥。目前仅使用*
,任何角色,无论是IAM Roles for Tasks
还是ECS task execution IAM role
,都可以使用此类密钥。