AWS Identity and Access Management
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

IAM:仅创建具有特定标签的新用户

此示例显示您可以如何创建策略 允许创建 IAM 用户,但仅限于使用 DepartmentJobFunction 标签键之一或同时使用这两者。Department 标签键必须具有 DevelopmentQualityAssurance 标签值。JobFunction 标签键必须具有 Employee 标签值。您可以使用此策略要求新用户具有特定工作职能和部门。此策略授予的权限仅适用于通过 AWS API 或 AWS CLI 完成此操作。要使用此策略,请将示例策略中的红色斜体文本替换为您自己的信息。

语句中的第一个条件使用 StringEqualsIfExists 条件运算符。如果请求中存在 DepartmentJobFunction 键,则标签必须包含指定的值。如果任一键都不存在,则此条件的计算结果将为 true。该条件的计算结果为 false 的唯一方法是:其中一个指定条件键在请求中存在,但具有的值不同于允许的值。有关使用 IfExists 的更多信息,请参阅...IfExists 条件运算符

第二个条件使用 ForAllValues:StringEquals 条件运算符。如果请求中指定的所有每个标签键都与策略中至少一个值匹配,则该条件将返回 true。这意味着,请求中的所有标签必须在此列表中。但是,请求只能包含列表中的一个标签。例如,您可以创建一个仅具有 Department=QualityAssurance 标签的 IAM 用户。但是,您不能创建一个同时具有 JobFunction=employee 标签和 Project=core 标签的 IAM 用户。有关使用 ForAllValues 的更多信息,请参阅创建测试多个键值的条件 (集合运算)

{ "Version": "2012-10-17", "Statement": [ { "Sid": "TagUsersWithOnlyTheseTags", "Effect": "Allow", "Action": [ "iam:CreateUser", "iam:TagUser" ], "Resource": "*", "Condition": { "StringEqualsIfExists": { "aws:RequestTag/Department": [ "Development", "QualityAssurance" ], "aws:RequestTag/JobFunction": "Employee" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "Department", "JobFunction" ] } } } ] }