本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 Amazon Cloud Map 使用基于身份的策略(IAM 策略)
本主题提供了基于身份的策略的示例,这些示例展示了账户管理员如何将权限策略附加到 IAM 身份(即用户、组和角色),从而授予对Amazon Cloud Map资源执行操作的权限。
重要
我们建议您首先阅读一下介绍性主题,这些主题说明了管理对 Amazon Cloud Map 资源的访问的基本概念和选项。有关更多信息,请参阅管理 Amazon Cloud Map 资源的访问权限概述:
以下示例显示了一个权限策略,该策略向用户授予注册和取消注册服务实例的权限。Sid
或语句 ID 是可选的:
{ "Version": "2012-10-17", "Statement": [ { "Sid" : "AllowInstancePermissions", "Effect": "Allow", "Action": [ "servicediscovery:RegisterInstance", "servicediscovery:DeregisterInstance", "servicediscovery:DiscoverInstances", "servicediscovery:Get*", "servicediscovery:List*", "route53:GetHostedZone", "route53:ListHostedZonesByName", "route53:ChangeResourceRecordSets", "route53:CreateHealthCheck", "route53:GetHealthCheck", "route53:DeleteHealthCheck", "route53:UpdateHealthCheck", "ec2:DescribeInstances" ], "Resource": "*" } ] }
该策略授予注册和管理服务实例所需的操作的权限。如果您使用公共或私有 DNS 命名空间,则需要 Route 53 权限,因为在注册和取消注册实例时Amazon Cloud Map创建、更新和删除 Route 53 记录和运行状况检查。中的通配符 (*)Resource
授予对当前Amazon账户拥有的所有Amazon Cloud Map实例以及 Route 53 记录和运行状况检查的权限。
有关您为授予或拒绝使用每项操作的权限而指定的操作和 ARN 的列表,请参阅Amazon Cloud Map API 权限:操作、资源和条件参考。
使用 Amazon Cloud Map 控制台所需要的权限
要授予对 Amazon Cloud Map 控制台的完全访问权,您可以在以下权限策略中授予权限:
{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "servicediscovery:*", "route53:GetHostedZone", "route53:ListHostedZonesByName", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:ChangeResourceRecordSets", "route53:CreateHealthCheck", "route53:GetHealthCheck", "route53:DeleteHealthCheck", "route53:UpdateHealthCheck", "ec2:DescribeInstances", "ec2:DescribeVpcs", "ec2:DescribeRegions" ], "Resource":"*" } ] }
下面是需要权限的原因:
servicediscovery:*
-
可让您执行所有 Amazon Cloud Map 操作。
route53:CreateHostedZone
,route53:GetHostedZone
,route53:ListHostedZonesByName
,route53:DeleteHostedZone
-
让 Amazon Cloud Map 在您创建和删除公有和私有 DNS 命名空间时管理托管区域。
route53:CreateHealthCheck
,route53:GetHealthCheck
,route53:DeleteHealthCheck
,route53:UpdateHealthCheck
-
当您在创建服务时包含 Amazon Route 53 运行状况检查时,让我们Amazon Cloud Map管理运行状况检查。
ec2:DescribeVpcs
和ec2:DescribeRegions
-
让 Amazon Cloud Map 管理私有托管区域。
适用于 Amazon Cloud Map 的 Amazon 托管(预定义)策略
Amazon 通过提供由 Amazon 创建和管理的独立 IAM policy 来满足许多常用案例的要求。这些 Amazon 托管策略可针对常用案例授予必要的权限,使您免去调查所需权限的工作。有关更多信息,请参阅《IAM 用户指南》中的 Amazon 托管策略。对于Amazon Cloud Map,IAM 提供以下托管策略:
-
AWSCloudMapDiscoverInstanceAccess— 授予对Amazon Cloud Map DiscoverInstancesAPI 操作的访问权限
-
AWSCloudMapReadOnlyAccess— 授予对所有Amazon Cloud Map操作的只读访问权限
-
AWSCloudMapRegisterInstanceAccess— 授予命名空间和服务的只读访问权限,并授予注册和取消注册服务实例的权限
-
AWSCloudMapFullAccess— 提供对所有Amazon Cloud Map操作的完全访问权限
客户托管策略示例
您可以创建自己的自定义 IAM 策略,以授予Amazon Cloud Map操作权限。您可以将这些自定义策略附加到需要指定权限的 IAM 用户或组。当您使用Amazon Cloud Map API、Amazon软件开发工具包或Amazon CLI 时,可以使用这些策略。以下示例显示了几个常见使用情形的权限。有关为用户授予 Amazon Cloud Map 的完全访问权限的策略,请参阅使用 Amazon Cloud Map 控制台所需要的权限。
示例 1:允许对所有 Amazon Cloud Map 资源进行读访问
以下权限策略向用户授予对所有 Amazon Cloud Map 资源的只读访问权限:
{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "servicediscovery:Get*", "servicediscovery:List*", "servicediscovery:DiscoverInstances" ], "Resource":"*" } ] }
示例 2:允许创建所有类型的命名空间
以下权限策略允许用户创建所有类型的命名空间:
{ "Version": "2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "servicediscovery:CreateHttpNamespace", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:CreatePublicDnsNamespace", "route53:CreateHostedZone", "route53:GetHostedZone", "route53:ListHostedZonesByName", "ec2:DescribeVpcs", "ec2:DescribeRegions" ], "Resource":"*" } ] }
要提供访问权限,请为您的用户、组或角色添加权限:
-
通过身份提供商在 IAM 中托管的用户:
创建适用于身份联合验证的角色。按照《IAM 用户指南》中为第三方身份提供商创建角色(联合身份验证)的说明进行操作。
-
IAM 用户:
-
创建您的用户可以担任的角色。按照《IAM 用户指南》中为 IAM 用户创建角色的说明进行操作。
-
(不推荐使用)将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》中向用户添加权限(控制台)中的说明进行操作。
-