使用基于属性的访问权限控制(ABAC)控制对密钥的访问 - AWS Secrets Manager

使用基于属性的访问权限控制(ABAC)控制对密钥的访问

基于属性的访问权限控制(ABAC)是一种授权策略,它根据用户、数据或环境(例如部门、业务部门或可能影响授权结果的其他因素)的属性或特征来定义权限。在 AWS 中,这些属性称为标签

使用标签控制权限在快速增长的环境中非常有用,并在策略管理变得繁琐的情况下可以提供帮助。ABAC 规则是在运行时动态评估的,这意味着用户对应用程序和数据的访问以及允许的操作类型会根据策略中的上下文因素自动改变。例如,如果用户更改部门,则访问权限会自动调整,而无需更新权限或请求新角色。有关更多信息,请参阅:什么是适用于 AWS 的 ABAC?根据标签定义访问密钥的权限Scale your authorization needs for Secrets Manager using ABAC with IAM Identity Center

示例:允许身份访问具有特定标签的密钥

以下策略允许对带有标签且键为 ServerName、值为 ServerABC 的密钥具有 DescribeSecret 访问权限。如果将此策略附加到某个身份,则该身份有权访问账户中带有该标签的任何密钥。

JSON
{ "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Action": "secretsmanager:DescribeSecret", "Resource": "*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/ServerName": "ServerABC" } } } }

示例:仅允许访问标签与密钥的标签匹配的身份

以下策略允许账户中的任何身份对账户中身份的 AccessProject 标签与密钥的 AccessProject 标签具有相同值的任何密钥具有 GetSecretValue 访问权限。

JSON
{ "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "AWS": "123456789012" }, "Condition": { "StringEquals": { "aws:ResourceTag/AccessProject": "${ aws:PrincipalTag/AccessProject }" } }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } }