您可以在的 IAM 策略或密钥策略中使用的操作、资源和上下文键AmazonSecrets Manager - Amazon Secrets Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

您可以在的 IAM 策略或密钥策略中使用的操作、资源和上下文键AmazonSecrets Manager

您可以在 IAM 策略或密钥策略中引用的操作

您可以在 IAM 策略或密钥策略中指定权限,以控制对密钥的访问。可以将“操作”的每个权限与指定该操作适用的内容的“资源”相关联。

有关操作的完整列表,请参阅的操作、资源和条件键AmazonSecrets Manager(在 IAM 用户指南中)。

您可以在 IAM 策略或密钥策略中引用的资源

下表显示了适用于的 IAM 策略中支持的 ARN 格式AmazonSecrets Manager 密钥 您可以在秘密详细信息页面中的每个 Secrets Manager 钥。

如果您看到一个展开箭头(),您可以在新窗口中打开该表。要关闭窗口,请选择右下角处的关闭按钮 (X)。

资源类型 ARN 格式

密钥

ARN: aws: 秘密管理器:<Region><AccountId>:密钥:可选路径/SecretName-6 个随机字符

Secrets Manager 通过在密钥名称末尾附加破折号和 6 个随机字母数字字符来构造 ARN 的最后部分。如果删除一个密钥后用同样的名称又创建一个密钥,此格式有助于确保拥有原密钥权限的个人不会自动获得新密钥的访问权限,因为 Secrets Manager 生成 6 个新的随机字符。

您可以在 IAM 策略或密钥策略中引用的上下文键

中的上下文键AmazonSecrets Manager 通常对应于 API 调用的请求参数。这允许您根据参数值允许或阻止任何请求。

可以使用条件运算符将每个上下文键与指定的值进行比较。您使用的上下文键取决于所选的操作。请参阅本主题开头的操作一节中的“上下文键”列。

例如,您可以允许某人检索仅限AWSCURRENT版本中的密钥值,通过使用Condition类似于以下内容的元素:

"Condition": {"ForAnyValue:StringEquals" : {"secretsmanager:VersionStage" : "AWSCURRENT"}}

下表显示了可以在Condition元素来更精确地控制对操作的访问。除了下面的键之外,您还可以使用Amazon全局条件上下文键

“Condition”元素的上下文键

描述

类型

aws:RequestTag/tag-key

按用户向 Secrets Manager 发出的请求中包含的键筛选访问。

字符串

aws:TagKeys

根据用户向 Secrets Manager 服务发出的请求中的所有标签键名称的列表筛选访问。

字符串

secretsmanager:resource/AllowRotationLambdaArn

根据附加到请求的目标资源的 Lambda 轮转函数的 ARN 筛选请求。这样,您就可以将访问限制为仅轮换 Lambda ARN 与该值匹配的密钥。未启用轮换或具有不同轮换 Lambda ARN 的密钥不匹配。

ARN

密码管理器:块公共策略

评估分配给秘密的资源策略,并阻止任何允许公共访问的策略。

Boolean

secretsmanager:Description

根据请求中的 Description 参数筛选请求。

字符串

secretsmanager:ForceDeleteWithoutRecovery

根据删除是否指定无恢复时段以筛选请求。使您能够有效地禁用此功能。

Boolean

secretsmanager:KmsKeyId

根据请求的 KmsKeyId 参数筛选请求。可用于限制可以在请求中使用哪些键。

字符串

secretsmanager:Name

根据请求的 Name 参数值筛选请求。这允许您将密钥名称限制为仅与该值匹配的密钥名称。

字符串

secretsmanager:RecoveryWindowInDays

根据指定的恢复时段筛选请求。允许您强制使恢复时段经过批准的天数。

长整型

secretsmanager:ResourceTag/<tag-key>

根据附加到密钥的标签筛选请求。将 <tag-key> 替换为实际标签名称。然后,您可以使用条件运算符确保标签存在,并包含请求的值。

字符串

secretsmanager:RotationLambdaArn

根据 RotationLambdaARN 参数筛选请求。这使您能够限制哪些 Lambda 轮转函数可用于密钥。可以将该键与 CreateSecret 和修改现有密钥的操作一起使用。

ARN

secretsmanager:SecretId

根据在 SecretId 参数中提供的密钥唯一标识符筛选请求。尽管该值可以是密钥的友好名称或 ARN,但Secretsmanager:SecretID始终以 ARN 格式。可用于限制请求可以访问哪些密钥。

ARN

secretsmanager:VersionId

根据请求的 VersionId 参数筛选请求。可用于限制可以访问哪些密钥版本。

字符串

secretsmanager:VersionStage

根据请求的 VersionStage 参数中指定的暂存标签筛选请求。这允许您将访问限制为仅暂存标签与该字符串数组参数中的值之一匹配的密钥版本。由于该键使用多值字符串数组,因此,您必须使用集合运算符之一以将字符串与该值进行比较

字符串

Amazon 全局条件键

Amazon提供的全局条件键,它是一组预定义条件键,适用于所有Amazon使用 IAM 进行访问控制的服务。例如,您可以使用 aws:PrincipalType 条件键,以仅在请求中的委托人包含您指定的类型时允许访问。

Secrets Manager 支持所有全局条件键,包括aws:TagKeysaws:RequestTag条件键,该键基于请求中的资源标签控制访问。有些,不是全部Amazon服务支持这些条件键。

在具有 Secrets Manager 权限的策略中使用 IP 地址条件

您可以使用 Secrets Manager 来保护数据库或服务的凭证。但是,当您指定IP 地址条件运算符aws:SourceIp允许或拒绝访问 Secrets Manager 的同一策略语句中的条件键。例如,Amazon:拒绝访问Amazon基于源 IP限制Amazon操作添加到来自指定 IP 范围的请求。

如果将类似的策略附加到密钥,从而允许从公司网络 IP 地址范围中访问该密钥,则以 IAM 用户身份从公司网络中调用的请求可以正常工作。但是,如果允许其他服务代表您访问密钥,例如,当您用 Lambda 函数启用轮转时,该函数将从Amazon-内部地址空间。受该策略影响并使用 IP 地址筛选器的请求将会失败。

此外,aws:sourceIP条件键变得不起作用,当请求来自Amazon VPC 终端节点。要限制对特定 VPC 终端节点(包括VPC 终端节点中,请使用aws:sourceVpce或者aws:sourceVpc条件键。有关更多信息,请参阅 Amazon VPC 用户指南 中的 VPC 终端节点 - 控制终端节点的使用

在具有 Secrets Manager 权限的策略中使用 VPC 终端节点条件

Secrets Manager 支持 Amazon VPC 终端节点提供的AmazonPrivateLink。您可以使用以下全局条件键或在 IAM 策略中或基于资源的策略允许或拒绝访问来自特定 VPC 或 VPC 终端节点的请求。

  • aws:SourceVpc 将访问限制为来自指定 VPC 的请求。

  • aws:SourceVpce 将访问限制为来自指定 VPC 终端节点的请求。

如果在允许或拒绝访问 Secrets Manager 密钥的密钥策略语句中使用这些条件键,可能会无意中拒绝访问代表您使用 Secrets Manager 访问密钥的服务。只有一部分 Amazon 服务可以使用 VPC 内的终端节点运行。如果将密钥请求限制为 VPC 或 VPC 终端节点,则从未针对该服务配置的服务中调用 Secrets Manager 可能会失败。