了解 IAM 委托人

Understand IAM Principal

我试图了解以下政策的具体含义 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": "*"
        }
    ]
}

这是否意味着我的软件(运行 inside a docker in fargate)可以调用此 KMS 密钥来加密数据?

是不是说ecs本身可以调用这个KMS密钥来加密一些东西?

在这种情况下,意味着两者。这是因为IAM Roles for Tasks as well as ECS task execution IAM role使用ecs-tasks.amazonaws.com相同的原理

您必须准确指定 Resource 中的哪个角色可以使用密钥。目前只有 *,任何角色,IAM Roles for TasksECS task execution IAM role 都可以使用这样的密钥。