IAM:仅创建具有特定标签的新用户 - AWS Identity and Access Management

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" ] } } } ] }