Elastic Beanstalk 访问密钥和参数所必需的 IAM 权限 - AWS Elastic Beanstalk

Elastic Beanstalk 访问密钥和参数所必需的 IAM 权限

您必须向环境的 EC2 实例授予必要的权限,才能获取 AWS Secrets Manager 和 AWS Systems Manager Parameter Store 的密钥和参数。可通过 EC2 实例配置文件角色向 EC2 实例提供权限。

以下各节列出了根据您使用的服务,需要添加到 EC2 实例配置文件中的具体权限。按照《IAM 用户指南》更新角色的权限策略的步骤添加这些权限。

ECS 托管 Docker 平台的 IAM 权限

ECS 托管 Docker 平台除了需要本主题中提供的权限外,还需要额外的 IAM 权限。有关您的 ECS 托管 Docker 平台环境为支持 Elastic Beanstalk 环境变量与密钥集成所需的全部权限的更多信息,请参阅执行角色 ARN 格式

Secrets Manager 所需的 IAM 权限

以下权限授予从 AWS Secrets Manager 存储获取加密密钥的访问权限:

  • secretsmanager:GetSecretValue

  • kms:Decrypt

仅当您的密钥使用了客户自主管理型密钥(而非默认密钥)时,才需要此权限来解密 AWS KMS key。通过添加自定义密钥的 ARN,即可授予解密该客户自主管理型密钥的权限。

例 :具有 Secrets Manager 和 KMS 密钥权限的策略
JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:secretsmanager:us-east-1:111122223333:secret:my-secret", "arn:aws:kms:us-east-1:111122223333:key/my-key" ] } ] }

Systems Manager Parameter Store 所需的 IAM 权限

以下权限授予从 AWS Systems Manager Parameter Store 获取加密参数的访问权限:

  • ssm:GetParameter

  • kms:Decrypt

仅当参数类型为 SecureString 的参数使用了客户自主管理型密钥(而非默认密钥)时,才需要此权限来解密 AWS KMS key。通过添加自定义密钥的 ARN,即可授予解密该客户自主管理型密钥的权限。未加密的常规参数类型(StringStringList)不需要 AWS KMS key。

例 :具有 Secrets Manager 和 AWS KMS 密钥权限的策略
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameter", "kms:Decrypt" ], "Resource": [ "arn:aws:ssm:us-east-1:111122223333:parameter/my-parameter", "arn:aws:kms:us-east-1:111122223333:key/my-key" ] } ] }