IAM:仅创建具有特定标签的新用户
此示例说明了如何创建基于身份的策略以允许创建 IAM 用户,但仅限于包含 Department
和 JobFunction
标签键之一或同时包含两者。Department
标签键必须具有 Development
或 QualityAssurance
标签值。JobFunction
标签键必须具有 Employee
标签值。您可以使用此策略要求新用户具有特定工作职能和部门。此策略授予有计划地通过 Amazon API 或 Amazon CLI 完成此操作的必要权限。要使用此策略,请将示例策略中的斜体占位符文本
替换为您自己的信息。然后,按照创建策略或编辑策略中的说明操作。
语句中的第一个条件使用 StringEqualsIfExists
条件运算符。如果请求中存在 Department
或 JobFunction
键,则标签必须包含指定的值。如果任一键都不存在,则此条件的计算结果将为 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
" ] } } } ] }