使用 Secrets Manager 的基于资源的策略 - AWS Secrets Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Secrets Manager 的基于资源的策略

您可以在 AWS Secrets Manager 中使用基于资源的密钥策略控制对密钥的访问。AWS 在 Secrets Manager 中将密钥 定义为资源。您作为账户管理员可以控制对 AWS 服务中的资源的访问。您可以在附加到密钥的策略中添加权限。Secrets Manager 将直接附加到密钥的权限策略称为基于资源的策略。您可以使用基于资源的策略来管理密钥访问和管理权限。

基于资源的策略比基于身份的策略更有优势,因为基于资源的策略允许您为不同账户中的委托人授予访问权限。请参阅下一节中的第二个示例。

有关策略的基本要素的概述,请参阅使用策略管理对资源的访问

有关基于身份的替代权限策略的信息,请参阅对 IAM 使用基于身份的策略(Secrets Manager 策略)和 ABAC

向角色授予只读访问权限

一个常见的 Secrets Manager 方案可能是,在 Amazon EC2 实例上运行的应用程序需要数据库访问权限以执行所需的任务。该应用程序必须从 Secrets Manager 检索数据库凭证。要像任何其他 AWS 服务一样将请求发送到 Secrets Manager,您必须具有有权执行该请求的 AWS 凭证。您可以创建附加到 EC2 实例配置文件的 IAM 角色以实现该目的。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的适用于 Amazon EC2 的 IAM 角色,具体来说是指从实例元数据中检索安全凭证部分。

如果您随后将以下基于资源的示例策略附加到密钥,只有在请求者使用与角色关联的凭证并且请求仅要求提供密钥的当前版本时,检索密钥的任何请求才有效:

{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:role/EC2RoleToAccessSecrets"}, "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "secretsmanager:VersionStage" : "AWSCURRENT" } } } ] }