本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Resource Groups 基于身份的策略示例
默认情况下,IAM 用户和角色没有创建或修改 Resource Groups 资源的权限。它们还无法使用 Amazon Web Services Management Console、Amazon CLI 或 Amazon API 执行任务。IAM 管理员必须创建 IAM 策略,以便为用户和角色授予权限以对所需的指定资源执行特定的 API 操作。然后,管理员必须将这些策略附加到需要这些权限的 IAM 用户或组。
要了解如何使用这些示例 JSON 策略文档创建 IAM 基于身份的策略,请参阅 IAM 用户指南 中的在 JSON 选项卡上创建策略。
策略最佳实践
基于身份的策略非常强大。它们确定某个人是否可以创建、访问或删除您账户中的 Resource Groups 资源。这些操作可能会使 Amazon Web Services 账户 产生成本。创建或编辑基于身份的策略时,请遵循以下准则和建议:
-
开始使用Amazon托管策略— 要快速开始使用 Resource Groups,请使用Amazon为您的员工授予所需的权限的托管策略。这些策略已在您的账户中提供,并由 Amazon 维护和更新。有关更多信息,请参阅 IAM 用户指南中的开始使用 Amazon 托管式策略中的权限。
-
授予最低权限 – 创建自定义策略时,仅授予执行任务所需的许可。最开始只授予最低权限,然后根据需要授予其它权限。这样做比起一开始就授予过于宽松的权限而后再尝试收紧权限来说更为安全。有关更多信息,请参阅 IAM 用户指南 中的授予最低权限。
-
为敏感操作启用 MFA – 为增强安全性,要求 IAM 用户使用多重身份验证 (MFA) 来访问敏感资源或 API 操作。要了解更多信息,请参阅《IAM 用户指南》中的在 Amazon 中使用多重身份验证 (MFA)。
-
使用策略条件来增强安全性 – 在切实可行的范围内,定义基于身份的策略在哪些情况下允许访问资源。例如,您可编写条件来指定请求必须来自允许的 IP 地址范围。您也可以编写条件,以便仅允许指定日期或时间范围内的请求,或者要求使用 SSL 或 MFA。有关更多信息,请参阅 。IAM JSON 策略元素:Condition中的IAM 用户指南.
使用 Resource Groups 控制台和 API
要访问Amazon Resource Groups以及标签编辑器控制台和 API,您必须拥有一组最低的权限。这些权限必须允许您列出和查看有关您的 Resource Groups 资源的详细信息。Amazonaccount. 如果创建比必需的最低权限更为严格的基于身份的策略,对于附加了该策略的实体(IAM 用户或角色),控制台和 API 命令将无法按预期正常运行。
要确保这些实体仍可使用 Resource Groups,请将以下策略(或包含以下策略中列出的权限的策略)附加到实体。有关更多信息,请参阅 IAM 用户指南中的为用户添加权限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "resource-groups:*", "cloudformation:DescribeStacks", "cloudformation:ListStackResources", "tag:GetResources", "tag:TagResources", "tag:UntagResources", "tag:getTagKeys", "tag:getTagValues", "resource-explorer:List*" ], "Resource": "*" } ] }
有关向授予 Resource Groups 和标签编辑器访问权限的更多信息,请参阅授予使用的权限Amazon Resource Groups和标签编辑器。
允许用户查看他们自己的权限
该示例说明了您如何创建策略,以允许 IAM 用户查看附加到其用户身份的内联和托管式策略。此策略包括在控制台上完成此操作或者以编程方式使用 Amazon CLI 或 Amazon API 所需的权限。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }
根据标签查看组
您可以在基于身份的策略中使用条件,以根据标签控制对 Resource Groups 资源的访问。此示例说明了如何创建策略以允许查看组。但是,仅当组标签时,才授予此权限。Owner
具有该用户的用户名的值。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListSpecificGroup", "Effect": "Allow", "Action": "resource-groups:ListGroups", "Resource": "arn:aws:resource-groups::
region
:account_ID
:group/group_name
" }, { "Sid": "ViewGroupIfOwner", "Effect": "Allow", "Action": "resource-groups:ListGroups", "Resource": "arn:aws:resource-groups::region
:account_ID
:group/group_name
", "Condition": { "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"} } } ] }
您可以将该策略附加到您账户中的 IAM 用户。如果一个名为的用户richard-roe
要尝试查看 Resource Groups 组,则必须将该组标记为Owner=richard-roe
要么owner=richard-roe
. 否则,他会被拒绝访问。条件标签键 Owner
匹配 Owner
和 owner
,因为条件键名称不区分大小写。有关更多信息,请参阅 。IAM JSON 策略元素:Condition中的IAM 用户指南.