将权限策略附加到 AWS Secrets Manager 密钥 - AWS Secrets Manager

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

将权限策略附加到 AWS Secrets Manager 密钥

在基于资源的策略中,您可以指定谁可以访问密钥,以及他们可以对密钥执行哪些操作。您可以使用基于资源的策略来:

  • 为多个用户或角色授予单个密钥的访问权限。

  • 向其他 AWS 账户中的用户或角色授予访问权限。

请参阅 AWS Secrets Manager 的权限策略示例

当您将基于资源的策略附加到控制台中的密钥时,Secrets Manager 使用自动推理引擎 Zelkova 和 API ValidateResourcePolicy,防止您向各种 IAM 委托人授予对您的密钥的访问权限。您也可以调用带有来自 CLI 或 SDK BlockPublicPolicy 参数的 PutResourcePolicy API。

重要

资源策略验证和BlockPublicPolicy参数可防止通过直接附加到您的密钥的资源策略授予公共访问权限,从而帮助保护您的资源。除了使用这些功能外,还要仔细检查以下政策,以确认它们不向公众授予访问权限:

  • 附加到关联 AWS 委托人(例如,IAM 角色)的基于身份的策略

  • 附加到关联资源的基于 AWS 资源的策略(例如, AWS Key Management Service (AWS KMS) 密钥)

要查看您的密钥的权限,请参阅确定谁有权限访问您的 密钥

查看、更改或删除密钥的资源策略(控制台)
  1. 通过 https://console.aws.amazon.com/secretsmanager/ 打开 Secrets Manager 控制台。

  2. 从密钥列表上,选择您的密钥。

  3. 进入密钥详细信息页面后,在概述选项卡的资源权限部分中,选择编辑权限

  4. 在代码字段中,执行以下操作之一,然后选择保存

    • 要附加或修改资源策略,输入该策略。

    • 要删除策略,清除代码字段。

AWS CLI

例 检索资源策略

以下 get-resource-policy 示例将检索附加到密钥的基于资源的策略。

aws secretsmanager get-resource-policy \ --secret-id MyTestSecret
例 删除资源策略

以下 delete-resource-policy 示例将删除附加到密钥的基于资源的策略。

aws secretsmanager delete-resource-policy \ --secret-id MyTestSecret
例 添加资源策略

以下 put-resource-policy 示例将向密钥添加权限策略,首先检查该策略是否不提供对该密钥的广泛访问权限。该策略是从文件中读取的。有关更多信息,请参阅《 AWS CLI 用户指南》中的从文件加载 AWS CLI 参数

aws secretsmanager put-resource-policy \ --secret-id MyTestSecret \ --resource-policy file://mypolicy.json \ --block-public-policy

mypolicy.json 的内容:

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

AWS SDK

要检索附加到密钥的策略,请使用 GetResourcePolicy

要删除附加到密钥的策略,请使用 DeleteResourcePolicy

要将策略附加到密钥,请使用 PutResourcePolicy。如果已经附加了策略,命令会将其替换为新策略。策略必须格式化为 JSON 结构化文本。请参阅 JSON 策略文档结构。使用 AWS Secrets Manager 的权限策略示例 开始编写您的策略。

有关更多信息,请参阅 AWS 软件开发工具包