Fargate 和 SSM 的 AWS 权限
AWS permissions for Fargate and SSM
我正在尝试为我在 AWS 上使用 AWS Fargate 构建的服务创建一些基础设施。我将 SSM 用作我的某些应用程序配置的值存储,因此我需要 Fargate 的常规权限以及 SSM 的额外权限。然而,在我的头撞到这个特定的墙上一段时间后,我得出的结论是我只是不了解一般的 AWS IAM 或特别是这个问题,所以我来这里寻求帮助。
我的 IAM 代码的基础来自链接到该教程的 github 存储库中的 this tutorial; the IAM code is actually not in that tutorial but rather in this file。我想我需要为某些东西保留 STS 许可,尽管我不完全确定是什么。
我已将教程中的 IAM 代码转换为 JSON 文档,因为我发现 JSON 比 Terraform 本机代码更易于使用。这是我想出的。它不起作用。我想知道为什么它不起作用以及如何解决它。请ELI5(像我5岁一样解释)因为我对此一无所知。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:GetParameters",
"secretsmanager:GetSecretValue",
"kms:Decrypt",
"sts:AssumeRole"
],
"Principal": {
"Service": ["ecs-tasks.amazonaws.com"]
}
}
]
}
您的 ECS 任务至少应具有以下权限:
- 担任角色的能力
- 资源级权限
在您提到的 example 中,使用以下内容创建了一个 IAM 角色:
已附加信任关系。 <-- 使 ECS 任务承担 IAM 角色
已附加 AWS 托管策略 AmazonECSTaskExecutionRolePolicy
。 <-- 资源权限
因此,为了检索 SSM 参数值,请添加以下资源权限。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:Describe*",
"ssm:Get*",
"ssm:List*"
],
"Resource": [
"arn:aws:ssm:*:*:parameter/{your-path-hierarchy-to-parameter}/*"
]
}
]
}
如果您的机密使用 KMS,则授予必要的 kms 权限 (kms:Decrypt
)。参考specifying-sensitive-data参考。
我正在尝试为我在 AWS 上使用 AWS Fargate 构建的服务创建一些基础设施。我将 SSM 用作我的某些应用程序配置的值存储,因此我需要 Fargate 的常规权限以及 SSM 的额外权限。然而,在我的头撞到这个特定的墙上一段时间后,我得出的结论是我只是不了解一般的 AWS IAM 或特别是这个问题,所以我来这里寻求帮助。
我的 IAM 代码的基础来自链接到该教程的 github 存储库中的 this tutorial; the IAM code is actually not in that tutorial but rather in this file。我想我需要为某些东西保留 STS 许可,尽管我不完全确定是什么。
我已将教程中的 IAM 代码转换为 JSON 文档,因为我发现 JSON 比 Terraform 本机代码更易于使用。这是我想出的。它不起作用。我想知道为什么它不起作用以及如何解决它。请ELI5(像我5岁一样解释)因为我对此一无所知。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:GetParameters",
"secretsmanager:GetSecretValue",
"kms:Decrypt",
"sts:AssumeRole"
],
"Principal": {
"Service": ["ecs-tasks.amazonaws.com"]
}
}
]
}
您的 ECS 任务至少应具有以下权限:
- 担任角色的能力
- 资源级权限
在您提到的 example 中,使用以下内容创建了一个 IAM 角色:
已附加信任关系。 <-- 使 ECS 任务承担 IAM 角色
已附加 AWS 托管策略
AmazonECSTaskExecutionRolePolicy
。 <-- 资源权限
因此,为了检索 SSM 参数值,请添加以下资源权限。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:Describe*",
"ssm:Get*",
"ssm:List*"
],
"Resource": [
"arn:aws:ssm:*:*:parameter/{your-path-hierarchy-to-parameter}/*"
]
}
]
}
如果您的机密使用 KMS,则授予必要的 kms 权限 (kms:Decrypt
)。参考specifying-sensitive-data参考。