本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
的权限参考 Amazon Secrets Manager
要查看组成权限策略的元素,请参阅 JSON 策略文档结构和 IAM JSON 策略元素引用。
要开始编写您自己的权限策略,请参阅 的权限策略示例 Amazon Secrets Manager。
操作表的资源类型列指示每项操作是否支持资源级权限。如果该列没有任何值,您必须在策略语句的 Resource
元素中指定策略应用的所有资源(“*”)。通过在 IAM policy 中使用条件来筛选访问权限,以控制是否可以在资源或请求中使用特定标签键。如果操作具有一个或多个必需资源,则调用方必须具有使用这些资源来使用该操作的权限。必需资源在表中以星号 (*) 表示。如果您在 IAM policy 中使用 Resource
元素限制资源访问权限,则必须为每种必需的资源类型添加 ARN 或模式。某些操作支持多种资源类型。如果资源类型是可选的(未指示为必需),则可以选择使用一种可选资源类型。
操作表的条件键列包括可以在策略语句的 Condition
元素中指定的键。有关与服务资源关联的条件键的更多信息,请参阅资源类型表的条件键列。
Secrets Manager 操作
Secrets Manager 资源
资源类型 | ARN | 条件键 |
---|---|---|
Secret |
arn:${Partition}:secretsmanager:${Region}:${Account}:secret:${SecretId}
|
Secrets Manager 在密钥名称末尾附加破折号和 6 个随机字母数字字符以构建密钥 ARN 的最后一部分。如果删除一个密钥,然后重新创建另一个同名密钥,该格式有助于确保具有原始密钥权限的个人不会自动获得新密钥的访问权限,因为 Secrets Manager 生成 6 个新的随机字符。
您可以在Secrets Manager 控制台的密钥详细信息页面上或 DescribeSecret
找到密钥的 ARN。
条件键
如果您将下表中的字符串条件包含在权限策略中,则 Secrets Manager 的调用者必须传递匹配参数,否则他们将被拒绝访问。为了避免由于缺少参数而拒绝调用者,请将 IfExists
添加到条件运算符名称(例如 StringLikeIfExists
)的末尾。有关更多信息,请参阅 IAM JSON 策略元素:条件运算符。
条件键 | 描述 | 类型 |
---|---|---|
aws:RequestTag/${TagKey} | 根据用户向 Secrets Manager 服务发出的请求中的键筛选访问权限 | String |
aws:ResourceTag/${TagKey} | 按与资源关联的标签筛选访问权限 | String |
aws:TagKeys | 根据用户向 Secrets Manager 服务发出的请求中存在的所有标签键名称的列表筛选访问权限 | ArrayOfString |
secretsmanager:AddReplicaRegions | 按要复制密钥的区域列表筛选访问权限 | ArrayOfString |
secretsmanager:BlockPublicPolicy | 根据资源策略是否阻止广泛访问来筛选 Amazon Web Services 账户 访问权限 | 布尔型 |
secretsmanager:Description | 根据请求中的描述文本筛选访问权限 | String |
secretsmanager:ForceDeleteWithoutRecovery | 按是否在没有任何恢复时段的情况下立即删除密钥以筛选访问权限 | 布尔型 |
secretsmanager:ForceOverwriteReplicaSecret | 根据是否覆盖目标区域中具有相同名称的密钥来筛选访问权限 | 布尔型 |
secretsmanager:KmsKeyId | 根据请求中的 KMS 密钥的 ARN 筛选访问权限 | String |
secretsmanager:ModifyRotationRules | 按是否需要修改密钥轮换规则来筛选访问权限 | 布尔型 |
secretsmanager:Name | 根据请求中易于识别的密钥名称筛选访问权限 | String |
secretsmanager:RecoveryWindowInDays | 按 Secrets Manager 在删除密钥之前可以等待的天数筛选访问权限 | 数值 |
secretsmanager:ResourceTag/tag-key | 按标签键值对筛选访问 | String |
secretsmanager:RotateImmediately | 按是否需要立即轮换密钥来筛选访问权限 | 布尔型 |
secretsmanager:RotationLambdaARN | 根据请求中轮换 Lambda 函数的 ARN 筛选访问权限 | ARN |
secretsmanager:SecretId | 根据请求中的 SecretID 值筛选访问权限 | ARN |
secretsmanager:SecretPrimaryRegion | 根据在其中创建密钥的主要区域筛选访问权限 | String |
secretsmanager:VersionId | 根据请求中密钥版本的唯一标识符筛选访问权限 | String |
secretsmanager:VersionStage | 根据请求中的版本阶段列表筛选访问权限 | String |
secretsmanager:resource/AllowRotationLambdaArn | 根据与密钥关联的轮换 Lambda 函数的 ARN 筛选访问权限 | ARN |
使用 BlockPublicPolicy
条件阻止对密钥的广泛访问
在允许操作 PutResourcePolicy
的身份策略中,我们建议您使用 BlockPublicPolicy: true
。这种情况意味着只有在策略不允许广泛访问的情况下,用户才能将资源策略附加到密钥。
Secrets Manager 使用 Zelkova 自动推理来分析资源策略,以确定是否存在宽泛访问权限问题。有关 Zelkova 的更多信息,请参阅安全博客上的 “如何 Amazon 使用自动推理来帮助您实现大规模
以下示例显示了如何使用 BlockPublicPolicy
。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "secretsmanager:PutResourcePolicy", "Resource": "
SecretId
", "Condition": { "Bool": { "secretsmanager:BlockPublicPolicy": "true" } } } }
IP 地址条件
在允许或拒绝访问 Secrets Manager 的策略语句中指定 IP 地址条件运算符或 aws:SourceIp
条件键时,请务必小心。例如,如果您将限制对来自公司网络 IP 地址范围的请求 Amazon 执行操作的策略附加到密钥,则您作为 IAM 用户从公司网络调用请求的请求将按预期工作。但是,如果您允许其他服务代表您访问密钥,例如使用 Lambda 函数启用轮换,则该函数会从 Amazon内部地址空间调用 Secrets Manager 操作。受该策略影响并使用 IP 地址筛选器的请求将会失败。
此外,当请求来自 Amazon VPC 终端节点时,aws:sourceIP
条件键也不起作用。要限制对特定 VPC 终端节点的请求,请使用 VPC 终端节点条件。
VPC 终端节点条件
要允许或拒绝对来自特定 VPC 或 VPC 终端节点的请求的访问,请使用 aws:SourceVpc
来限制对来自指定 VPC 的请求的访问,或 aws:SourceVpce
来限制对来自指定 VPC 终端节点的请求的访问。请参阅 示例:权限和 VPC。
-
aws:SourceVpc
将访问限制为来自指定 VPC 的请求。 -
aws:SourceVpce
将访问限制为来自指定 VPC 终端节点的请求。
如果在允许或拒绝访问 Secrets Manager 密钥的资源策略语句中使用这些条件键,可能会无意中拒绝访问代表您使用 Secrets Manager 访问密钥的服务。只有部分 Amazon 服务可以在您的 VPC 内使用终端节点运行。如果将密钥的请求限制为 VPC 或 VPC 终端节点,则从未针对该服务配置的服务中调用 Secrets Manager 可能会失败。
请参阅 使用 Amazon Secrets Manager VPC 终端节点。