【发布时间】:2021-03-31 14:29:51
【问题描述】:
我想将机密或敏感信息安全地传递到 Amazon Elastic Container Service (Amazon ECS) 任务中的容器。我在 ECS 上有一个 Docker 容器和一个从系统参数存储中提取环境变量的任务定义。但是,当我在 ECS 中运行我的任务时,我在尝试运行我的容器时收到以下错误消息。
已停止(从 us-east-2 中的 SSM Parameter Store 获取秘密数据: AccessDeniedException:用户: arn:was:sts::
:assumed-role/ecsTaskExecutionRole/2c0dfb5f086da28abc753c07b6de728 无权执行:ssm:GetParameters on resource: arn:was:ssm:us-east-2: :parameter/ 状态 代码:400,请求 ID:
https://gyazo.com/5a3dd8c06da3614d19b8bc725e572f2c
我关注了这篇关于在 ECS 任务中将敏感信息传递给容器的文章。
https://aws.amazon.com/premiumsupport/knowledge-center/ecs-data-security-container-task/
根据文章,我进入 IAM 并将以下内联策略添加到我的 ecsTaskExecutionRole。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue",
"ssm:GetParameters"
],
"Resource": [
"arn:aws:secretsmanager:<my_region>:<my_account_id>:secret:SLACK_API_TOKEN*",
"arn:aws:secretsmanager:<my_region>:<my_account_id>:secret:DB_USER*",
"arn:aws:secretsmanager:<my_region>:<my_account_id>:secret:DB_PASSWORD*",
"arn:aws:secretsmanager:<my_region>:<my_account_id>:secret:DB_HOST*",
"arn:aws:secretsmanager:<my_region>:<my_account_id>:secret:DB_DATABASE_NAME*",
"arn:aws:ssm:<my_region>:<my_account_id>:parameter/SLACK_API_TOKEN",
"arn:aws:ssm:<my_region>:<my_account_id>:parameter/DB_USER",
"arn:aws:ssm:<my_region>:<my_account_id>:parameter/DB_PASSWORD",
"arn:aws:ssm:<my_region>:<my_account_id>:parameter/DB_HOST",
"arn:aws:ssm:<my_region>:<my_account_id>:parameter/DB_DATABASE_NAME",
]
}
]
}
我还有一个 AWS 托管策略,在同一个 ecsTaskExecutionRole 下看起来像这样。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability",
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*"
}
]
}
ecsTaskExecutionRole 的完整 IAM 角色如下所示:
https://gyazo.com/b28a4ae1beca4db31228298767685fe2
Parameter Store 中的密钥存储为秘密字符串。我没有使用自己的密钥,只是使用我帐户的默认密钥。
【问题讨论】:
标签: amazon-web-services amazon-iam amazon-ecs aws-fargate aws-ssm