

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon Route 53 中的 Identity and Access Management
<a name="security-iam"></a>

要对 Amazon Route 53 资源执行任何操作，例如注册域名或更新记录， AWS Identity and Access Management (IAM) 要求您验证自己是经批准的 AWS 用户。如果您使用的是 Route 53 控制台，可通过提供您的 AWS 用户名和密码来验证您的身份。

在您验证身份后，IAM 会 AWS 通过验证您是否有权执行操作和访问资源来控制您的访问权限。如果您是账户管理员，则可使用 IAM 控制其他用户对与您的账户关联的资源的访问。

本章说明如何使用 [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 和 Route 53 帮助保护您的资源。

**Topics**
+ [使用身份进行身份验证](#security_iam_authentication)
+ [访问控制](#access-control)
+ [管理 Amazon Route 53 资源的访问权限的概览](access-control-overview.md)
+ [将基于身份的策略（IAM 策略）用于 Amazon Route 53](access-control-managing-permissions.md)
+ [将服务相关角色用于 Amazon Route 53 Resolver](using-service-linked-roles.md)
+ [AWS 亚马逊 Route 53 的托管策略](security-iam-awsmanpol-route53.md)
+ [使用 IAM 策略条件进行精细访问控制](specifying-conditions-route53.md)
+ [Amazon Route 53 API 权限：操作、资源和条件参考](r53-api-permissions-ref.md)

## 使用身份进行身份验证
<a name="security_iam_authentication"></a>

身份验证是您 AWS 使用身份凭证登录的方式。您必须以 IAM 用户身份进行身份验证 AWS 账户根用户，或者通过担任 IAM 角色进行身份验证。

您可以使用来自身份源的证书 AWS IAM Identity Center （例如（IAM Identity Center）、单点登录身份验证或 Google/Facebook 证书，以联合身份登录。有关登录的更多信息，请参阅《AWS 登录 用户指南》**中的[如何登录您的 AWS 账户](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)。

对于编程访问， AWS 提供 SDK 和 CLI 来对请求进行加密签名。有关更多信息，请参阅*《IAM 用户指南》*中的[适用于 API 请求的AWS 签名版本 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)。

### AWS 账户 root 用户
<a name="security_iam_authentication-rootuser"></a>

 创建时 AWS 账户，首先会有一个名为 AWS 账户 *root 用户的*登录身份，该身份可以完全访问所有资源 AWS 服务 和资源。我们强烈建议不要使用根用户进行日常任务。有关需要根用户凭证的任务，请参阅《IAM 用户指南》**中的[需要根用户凭证的任务](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

### 联合身份
<a name="security_iam_authentication-federated"></a>

作为最佳实践，要求人类用户使用与身份提供商的联合身份验证才能 AWS 服务 使用临时证书进行访问。

*联合身份是指*来自您的企业目录、Web 身份提供商的用户 Directory Service ，或者 AWS 服务 使用来自身份源的凭据进行访问的用户。联合身份代入可提供临时凭证的角色。

要集中管理访问权限，建议使用。 AWS IAM Identity Center有关更多信息，请参阅《AWS IAM Identity Center 用户指南》**中的[什么是 IAM Identity Center？](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)。

### IAM 用户和群组
<a name="security_iam_authentication-iamuser"></a>

*[IAM 用户](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*是对某个人员或应用程序具有特定权限的一个身份。建议使用临时凭证，而非具有长期凭证的 IAM 用户。有关更多信息，请参阅 *IAM 用户指南*[中的要求人类用户使用身份提供商的联合身份验证才能 AWS 使用临时证书进行访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)。

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)指定一组 IAM 用户，便于更轻松地对大量用户进行权限管理。有关更多信息，请参阅*《IAM 用户指南》*中的 [IAM 用户使用案例](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html)。

### IAM 角色
<a name="security_iam_authentication-iamrole"></a>

*[IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*是具有特定权限的身份，可提供临时凭证。您可以通过[从用户切换到 IAM 角色（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)或调用 AWS CLI 或 AWS API 操作来代入角色。有关更多信息，请参阅《IAM 用户指南》**中的[担任角色的方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)。

IAM 角色对于联合用户访问、临时 IAM 用户权限、跨账户访问、跨服务访问以及在 Amazon EC2 上运行的应用程序非常有用。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的跨账户资源访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

## 访问控制
<a name="access-control"></a>

要创建、更新、删除或列出 Amazon Route 53 资源，您需要有权执行该操作，并且您需要有权访问相应资源。

下面几节介绍如何管理 Route 53 的权限。我们建议您先阅读概述。

**Topics**

# 管理 Amazon Route 53 资源的访问权限的概览
<a name="access-control-overview"></a>

每个 AWS 资源都归一个 AWS 账户所有，创建或访问资源的权限受权限策略的约束。

**注意**  
*账户管理员* (或管理员用户) 是具有管理员权限的用户。有关管理员的更多信息，请参阅 *IAM 用户指南*中的 [IAM 最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

在您授予权限时，您将决定谁可以获得权限，获得对哪些资源的权限，以及他们有权执行的操作。

如果用户想在 AWS 外部进行交互，则需要编程访问权限 AWS 管理控制台。授予编程访问权限的方式取决于正在访问的用户类型 AWS。

要向用户授予编程式访问权限，请选择以下选项之一。


****  

| 哪个用户需要编程式访问权限？ | 目的 | 方式 | 
| --- | --- | --- | 
| IAM | （推荐）使用控制台凭证作为临时凭证，签署对 AWS CLI AWS SDKs、或的编程请求 AWS APIs。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/access-control-overview.html)  | 
|  人力身份 （在 IAM Identity Center 中管理的用户）  | 使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/access-control-overview.html)  | 
| IAM | 使用临时证书签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 | 按照 IAM 用户指南中的将[临时证书与 AWS 资源配合使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)中的说明进行操作。 | 
| IAM | （不推荐使用）使用长期凭证签署向 AWS CLI AWS SDKs、或发出的编程请求 AWS APIs。 |  按照您希望使用的界面的说明进行操作。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/access-control-overview.html)  | 

**Topics**
+ [ARNs 适用于 Amazon Route 53 资源](#access-control-resources)
+ [了解资源所有权](#access-control-owner)
+ [管理对 资源的访问](#access-control-manage-access-intro)
+ [指定策略元素：资源、操作、效果和委托方](#access-control-specify-r53-actions)
+ [在策略中指定条件](#specifying-conditions)

## ARNs 适用于 Amazon Route 53 资源
<a name="access-control-resources"></a>

Amazon Route 53 支持用于 DNS、运行状况检查和域注册的多种资源类型。在策略中，您可以通过将 `*` 用于 ARN 来授予或拒绝授予对以下资源的访问权限：
+ 运行状况检查
+ 托管区域
+ 可重用的委派集
+ 资源记录集变更批处理的状态 (仅限 API)
+ 流量策略 (流量)
+ 流量策略实例 (流量)

并非所有 Route 53 资源都支持权限。您不能授予或拒绝对以下资源的访问权限：
+ Domains
+ 单个记录
+ 域的标签
+ 运行状况检查的标签
+ 托管区域的标签

Route 53 提供 API 操作来处理其中每个类型的资源。有关更多信息，请参阅 [Amazon Route 53 API 参考](https://docs.aws.amazon.com/Route53/latest/APIReference/)。有关您为授予或拒绝使用每项操作的权限而指定的操作和 ARN 的列表，请参阅[Amazon Route 53 API 权限：操作、资源和条件参考](r53-api-permissions-ref.md)。

## 了解资源所有权
<a name="access-control-owner"></a>

一个 AWS 账户拥有在该账户中创建的资源，无论这些资源是由谁创建的。具体而言，资源所有者是对 AWS 资源创建请求进行身份验证的委托人实体（即根账户或 IAM 角色）的账户。

以下示例说明了它的工作原理：
+ 如果您使用账户的根账户证书创建托管区域，则您的 AWS 账户就是该资源的所有者。 AWS 
+ 如果您在 AWS 账户中创建用户并向该用户授予创建托管区域的权限，则该用户可以创建托管区域。但是，您的 AWS 账户（即该用户所属的账户）将拥有该托管区域资源。
+ 如果您在 AWS 账户中创建具有创建托管区域权限的 IAM 角色，则任何能够担任该角色的人都可以创建托管区域。该角色所属的 AWS 账户拥有托管区域资源。

## 管理对 资源的访问
<a name="access-control-manage-access-intro"></a>

*权限策略* 指定谁可以访问哪些内容。此部分介绍用于为 Amazon Route 53 创建权限策略的选项。有关 IAM policy 语法和说明的信息，请参阅《IAM 用户指南》中的 [AWS IAM policy 参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)。

附加到 IAM 身份的策略称作*基于身份的*策略（IAM 策略），而附加到资源的策略称作*基于资源的*策略。Route 53 只支持基于身份的策略（IAM 策略）。

**Topics**
+ [基于身份的策略（IAM 策略）](#access-control-manage-access-intro-iam-policies)
+ [基于资源的策略](#access-control-manage-access-intro-resource-policies)

### 基于身份的策略（IAM 策略）
<a name="access-control-manage-access-intro-iam-policies"></a>

您可以向 IAM 身份附加策略。例如，您可以执行以下操作：
+ **向您账户中的用户或组附加权限策略** - 账户管理员可以使用与特定用户关联的权限策略为该用户授予创建 Amazon Route 53 资源的权限。
+ 将@@ **权限策略附加到角色（授予跨账户权限）**-您可以向由其他 AWS 账户创建的用户授予执行 Route 53 操作的权限。为实现这一点，您可以将权限策略附加到一个 IAM 角色，然后允许其他账户中的用户代入此角色。以下示例说明如何对两个 AWS 账户（账户 A 和账户 B）实施该操作：

  1. 账户 A 管理员创建一个 IAM 角色，向该角色附加一个权限策略来授予创建或访问属于账户 A 的资源的权限。

  1. 账户 A 管理员将信任策略附加到角色。信任策略将账户 B 标识为可担任该角色的委托人。

  1. 随后，账户 B 管理员可以将代入角色的权限委派给账户 B 中的用户或组。这将允许账户 B 中的用户创建或访问账户 A 中的资源。

  有关如何向其他 AWS 账户中的用户委派权限的更多信息，请参阅 *IAM 用户指南*中的[访问管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)。

以下示例策略允许用户执行 `CreateHostedZone` 操作，以便为任何 AWS 账户创建公有托管区域：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "route53:CreateHostedZone"
            ],
            "Resource":"*"
        }
    ]
}
```

------

如果您希望该策略还适用于私有托管区域，则需授予使用 Route 53 `AssociateVPCWithHostedZone` 操作和两个 Amazon EC2 操作（`DescribeVpcs` 和 `DescribeRegion`）的权限，如以下示例所示：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "route53:CreateHostedZone",
                "route53:AssociateVPCWithHostedZone"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcs",
                "ec2:DescribeRegions"
            ],
            "Resource": "*"
        }
    ]
}
```

------

有关将策略附加到 Route 53 的身份的更多信息，请参阅 [将基于身份的策略（IAM 策略）用于 Amazon Route 53](access-control-managing-permissions.md)。有关用户、组、角色和权限的更多信息，请参阅 *IAM 用户指南*中的[身份（用户、组和角色）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)。

### 基于资源的策略
<a name="access-control-manage-access-intro-resource-policies"></a>

其它服务（例如 Amazon S3）也支持将权限策略附加到资源。例如，您可以将策略附加到 S3 存储桶以管理对该存储桶的访问权限。Amazon Route 53 不支持将策略附加到资源。 

## 指定策略元素：资源、操作、效果和委托方
<a name="access-control-specify-r53-actions"></a>

Amazon Route 53 包括可以在每个 Route 53 资源（请参阅 [ARNs 适用于 Amazon Route 53 资源](#access-control-resources)）上使用的 API 操作（请参阅 [Amazon Route 53 API 参考](https://docs.aws.amazon.com/Route53/latest/APIReference/)）。您可以向用户或联合身份用户授予执行这些操作中的任一操作或所有操作的权限。请注意，有些 API 操作 (如注册域) 需要具有执行多个操作的权限。

以下是基本的策略元素：
+ **资源** – 您使用 Amazon 资源名称（ARN）来标识策略应用到的资源。有关更多信息，请参阅 [ARNs 适用于 Amazon Route 53 资源](#access-control-resources)。
+ **操作** – 您可以使用操作关键字标识要允许或拒绝的资源操作。例如，根据指定的 `Effect`，`route53:CreateHostedZone` 权限会允许或拒绝用户执行 Route 53 `CreateHostedZone` 操作。
+ **效果** – 您指定当用户尝试对指定资源执行操作时的效果（允许或拒绝）。如果您没有明确授予对操作的访问权限，则隐式拒绝访问。您也可显式拒绝对资源的访问，这样可确保用户无法访问该资源，即使有其他策略授予了访问权限的情况下也是如此。
+ **主体**：在基于身份的策略（IAM 策略）中，附加了策略的用户是隐式主体。对于基于资源的策略，您可以指定要接收权限的用户、账户、服务或其他实体（仅适用于基于资源的策略）。Route 53 不支持基于资源的策略。

有关 IAM policy 语法和说明的信息，请参阅《IAM 用户指南》中的 [AWS IAM policy 参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)。

有关显示所有 Route 53 API 操作及其适用于的资源的表，请参阅 [Amazon Route 53 API 权限：操作、资源和条件参考](r53-api-permissions-ref.md)。

## 在策略中指定条件
<a name="specifying-conditions"></a>

当您授予权限时，可使用 IAM policy 语言来指定策略何时生效。例如，您可能希望策略仅在特定日期后应用。有关使用策略语言指定条件的更多信息，请参阅 *IAM 用户指南*中的 [IAM JSON 策略元素：条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。

要表示条件，您可以使用预定义的条件键。没有特定于 Route 53 的条件键。但是，您可以根据需要使用 AWS 多种条件键。有关 AWS 宽密钥的完整列表，请参阅 *IAM 用户指南*中的[条件可用密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys)。

# 将基于身份的策略（IAM 策略）用于 Amazon Route 53
<a name="access-control-managing-permissions"></a>

本主题提供了基于身份的策略的示例，这些示例展示了账户管理员如何将权限策略附加到 IAM 身份，从而授予对 Amazon Route 53 资源执行操作的权限。

**重要**  
我们建议您首先阅读一下介绍性主题，这些主题说明了管理对 Route 53 资源的访问的基本概念和选项。有关更多信息，请参阅 [管理 Amazon Route 53 资源的访问权限的概览](access-control-overview.md)。

**注意**  
授予访问权限时，托管区域和 Amazon VPC 必须属于相同分区。分区是一组 AWS 区域。每个分区的作用域 AWS 账户 仅限于一个分区。  
以下是支持的分区：  
`aws` - AWS 区域
`aws-cn` – 中国区域
`aws-us-gov` - AWS GovCloud (US) Region
有关更多信息，请参阅《*AWS 一般参考*》中的[访问管理](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)和 [Amazon Route 53 端点和限额](https://docs.aws.amazon.com/general/latest/gr/r53.html)。

**Topics**
+ [使用 Amazon Route 53 控制台所需的权限](#console-required-permissions)
+ [域记录所有者的权限示例](#example-permissions-record-owner)
+ [DNSSEC 签名所需的 Route 53 客户托管密钥权限](#KMS-key-policy-for-DNSSEC)
+ [客户管理型策略示例](#access-policy-examples-for-sdk-cli)

下面显示了一个示例权限策略。`Sid` 或语句 ID 是可选的：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid" : "AllowPublicHostedZonePermissions",
            "Effect": "Allow",
            "Action": [
                "route53:CreateHostedZone",
                "route53:UpdateHostedZoneComment",
                "route53:GetHostedZone",
                "route53:ListHostedZones",
                "route53:DeleteHostedZone",
                "route53:ChangeResourceRecordSets",
                "route53:ListResourceRecordSets",
                "route53:GetHostedZoneCount",
                "route53:ListHostedZonesByName"
            ],
            "Resource": "*"
        },
        {
         "Sid" : "AllowHealthCheckPermissions",
            "Effect": "Allow",
            "Action": [
                "route53:CreateHealthCheck",
                "route53:UpdateHealthCheck",
                "route53:GetHealthCheck",
                "route53:ListHealthChecks",
                "route53:DeleteHealthCheck",
                "route53:GetCheckerIpRanges",
                "route53:GetHealthCheckCount",
                "route53:GetHealthCheckStatus",
                "route53:GetHealthCheckLastFailureReason"
            ],
            "Resource": "*"
        }
    ]
}
```

------

该策略包含两条语句：
+ 第一条语句授予创建和管理公有托管区域及其记录所需的操作的权限。Amazon 资源名称 (ARN) 中的通配符 (\$1) 允许访问当前账户拥有的所有托管区域。 AWS 
+ 第二条语句授予创建和管理运行状况检查所需的全部操作的权限。

有关您为授予或拒绝使用每项操作的权限而指定的操作和 ARN 的列表，请参阅[Amazon Route 53 API 权限：操作、资源和条件参考](r53-api-permissions-ref.md)。

## 使用 Amazon Route 53 控制台所需的权限
<a name="console-required-permissions"></a>

要授予对 Amazon Route 53 控制台的完全访问权，您可以在以下权限策略中授予权限：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Effect":"Allow",
            "Action":[
                "route53:*", 
                "route53domains:*",
                "tag:*",
                "ssm:GetParametersByPath",
                "cloudfront:ListDistributions",
                "elasticloadbalancing:DescribeLoadBalancers",
                "elasticbeanstalk:DescribeEnvironments",
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation",
                "s3:GetBucketWebsite",
                "ec2:DescribeRegions",
                "ec2:DescribeVpcs",
                "ec2:CreateNetworkInterface",
                "ec2:CreateNetworkInterfacePermission",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:ModifyNetworkInterfaceAttribute",
                "sns:ListTopics",
                "sns:ListSubscriptionsByTopic",
                "sns:CreateTopic",
                "kms:ListAliases",
                "kms:DescribeKey",
                "kms:CreateKey",
                "kms:CreateAlias",
                "kms:Sign",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:PutMetricAlarm",
                "cloudwatch:DeleteAlarms",
                "cloudwatch:GetMetricStatistics"
            ],
            "Resource":"*"
        },
        {
            "Effect": "Allow",
            "Action": "apigateway:GET",
            "Resource": "arn:aws:apigateway:*::/domainnames"
        }
    ]
}
```

------

下面是需要权限的原因：

**`route53:*`**  
您可以执行*除以下操作之外*的所有 Route 53 操作：  
+ 创建和更新 Alias Targe **t 的值为 CloudFront 分配、Elastic Load Balancing 负载均衡器、Elastic Beanstalk 环境或 Amazon S3 存储桶的别名**记录。(通过这些权限，您可以创建其**别名目标**值为同一托管区域中的另一个记录的别名记录。)
+ 使用私有托管区域。
+ 使用域。
+ 创建、删除和查看 CloudWatch 警报。
+ 在 Route 53 控制台中呈现 CloudWatch 指标。

**`route53domains:*`**  
允许您使用域。  
如果您单独列出 `route53` 操作，则必须包含 `route53:CreateHostedZone` 才能使用域。注册域时，会同时创建一个托管区域，因此包括注册域权限的策略还需要创建托管区域的权限。
对于域注册，Route 53 不支持向单个资源授予或拒绝权限。

**`route53resolver:*`**  
允许您使用 Route 53 VPC 解析器。

**`ssm:GetParametersByPath`**  
允许您在创建新的别名记录、私有托管区和运行状况检查时获取公开可用的区域。

**`cloudfront:ListDistributions`**  
允许您创建和更新以 Alias Targe **t 的值为 CloudFront 分布的别名**记录。  
如果您未使用 Route 53 控制台，则不需要这些权限。Route 53 仅用它来获取要在控制台中显示的分配的列表。

**`elasticloadbalancing:DescribeLoadBalancers`**  
您可以创建和更新**别名目标**值为 ELB 负载均衡器的别名记录。  
如果您未使用 Route 53 控制台，则不需要这些权限。Route 53 仅用它来获取要在控制台中显示的负载均衡器的列表。

**`elasticbeanstalk:DescribeEnvironments`**  
可让您创建和更新 **Alias Target（别名目标）**值为 Elastic Beanstalk 环境的别名记录。  
如果您未使用 Route 53 控制台，则不需要这些权限。Route 53 仅用它来获取要在控制台中显示的环境的列表。

**`s3:ListAllMyBuckets`、`s3:GetBucketLocation` 和 `s3:GetBucketWebsite`**  
可让您创建和更新 **Alias Target（别名目标）**值为 Amazon S3 存储桶的别名记录。（只有将存储桶配置为网站终端节点时，才可以创建 Amazon S3 存储桶的别名；`s3:GetBucketWebsite` 用于获取所需的配置信息。）  
如果您未使用 Route 53 控制台，则不需要这些权限。Route 53 仅用它来获取要在控制台中显示的存储桶的列表。

**`ec2:DescribeVpcs` 和 `ec2:DescribeRegions`**  
允许您使用私有托管区域。

**所有列出的 `ec2` 权限**  
让你使用 Route 53 VPC 解析器。

**`sns:ListTopics`, `sns:ListSubscriptionsByTopic`, `sns:CreateTopic`, `cloudwatch:DescribeAlarms`, `cloudwatch:PutMetricAlarm`, `cloudwatch:DeleteAlarms`**  
允许您创建、删除和查看 CloudWatch 警报。

**`cloudwatch:GetMetricStatistics`**  
允许您创建 CloudWatch 指标运行状况检查。  
如果您未使用 Route 53 控制台，则不需要这些权限。Route 53 仅用它来获取要在控制台中显示的统计数据。

**`apigateway:GET`**  
可让您创建和更新 **Alias Target（别名目标）**值为 Amazon API Gateway API 的别名记录。  
如果您未使用 Route 53 控制台，则不需要此权限。Route 53 仅使用它来获取 APIs 要在控制台中显示的列表。

**`kms:*`**  
允许您使用 AWS KMS 来启用 DNSSEC 签名。

## 域记录所有者的权限示例
<a name="example-permissions-record-owner"></a>

使用资源记录集权限，您可以设置精细的权限，以限制 AWS 用户可以更新或修改的内容。有关更多信息，请参阅 [使用 IAM 策略条件进行精细访问控制](specifying-conditions-route53.md)。

在某些情况下，托管区域所有者可能负责托管区域的整体管理，而组织中的另一个人负责这些任务的子集。例如，启用 DNSSEC 签名的托管区域所有者可能想要创建一个 IAM 策略，其中包括允许其他人在托管区域中添加和删除资源集记录 (RRs) 以及其他任务。托管区域所有者选择为记录所有者或其他人员启用的特定权限将取决于其组织的策略。

以下是一个允许记录所有者修改流量策略和运行状况检查的 IAM 策略示例。 RRs不允许使用此策略的记录所有者执行区域级操作，例如创建或删除区域、启用或禁用查询日志记录、创建或删除可重用的委派集或更改 DNSSEC 设置。

```
{
      "Sid": "Do not allow zone-level modification ",
      "Effect": "Allow",
      "Action": [
        "route53:ChangeResourceRecordSets",
        "route53:CreateTrafficPolicy",
        "route53:DeleteTrafficPolicy",
        "route53:CreateTrafficPolicyInstance",
        "route53:CreateTrafficPolicyVersion",
        "route53:UpdateTrafficPolicyInstance",
        "route53:UpdateTrafficPolicyComment",
        "route53:DeleteTrafficPolicyInstance",
        "route53:CreateHealthCheck",
        "route53:UpdateHealthCheck",
        "route53:DeleteHealthCheck",
        "route53:List*",
        "route53:Get*"
      ],
      "Resource": [
        "*"
      ]
}
```

## DNSSEC 签名所需的 Route 53 客户托管密钥权限
<a name="KMS-key-policy-for-DNSSEC"></a>

当您为 Route 53 启用 DNSSEC 签名时，Route 53 会根据 () 中的客户托管密钥创建密钥签名密钥 (KSK)。 AWS Key Management Service AWS KMS您可以使用支持 DNSSEC 签名的现有客户托管密钥或创建一个新密钥。Route 53 必须具有访问您的客户托管密钥的权限，以便它能够为您创建 KSK。

要使 Route 53 能够访问您的客户托管密钥，请确保您的客户托管密钥策略包含以下语句：

```
{
            "Sid": "Allow Route 53 DNSSEC Service",
            "Effect": "Allow",
            "Principal": {
                "Service": "dnssec-route53.amazonaws.com"
            },
            "Action": ["kms:DescribeKey",
                       "kms:GetPublicKey",
                       "kms:Sign"],
            "Resource": "*"
        },
        {
            "Sid": "Allow Route 53 DNSSEC to CreateGrant",
            "Effect": "Allow",
            "Principal": {
                "Service": "dnssec-route53.amazonaws.com"
            },
            "Action": ["kms:CreateGrant"],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": true
                }
            }
        }
```

混淆代理问题是一个安全性问题，即不具有操作执行权限的实体可能会迫使具有更高权限的实体执行该操作。为了保护您 AWS KMS 免受其侵害，您可以选择通过提供`aws:SourceAccount`和`aws:SourceArn`条件的组合（两个或一个）来限制服务对基于资源的策略中的资源的权限。 `aws:SourceAccount`是托管区域所有者的 AWS 账户 ID。 `aws:SourceArn`是托管区域的 ARN。

以下是可添加的两个权限示例：

```
{
    "Sid": "Allow Route 53 DNSSEC Service",
    …
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": "111122223333"
        },
        "ArnEquals": {
            "aws:SourceArn": "arn:aws:route53:::hostedzone/HOSTED_ZONE_ID"
        }
    }
},
```

 - 或者 - 

```
{
    "Sid": "Allow Route 53 DNSSEC Service",
    …
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": ["1111-2222-3333","4444-5555-6666"]
        },
        "ArnLike": {
            "aws:SourceArn": "arn:aws:route53:::hostedzone/*"
        }
    }
},
```

有关更多信息，请参阅《IAM 用户指南》**中的[混淆代理人问题](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)。

## 客户管理型策略示例
<a name="access-policy-examples-for-sdk-cli"></a>

您可以创建自己的自定义 IAM 策略，以授予执行 Route 53 操作的相关权限。您可以将这些自定义策略附加到需要指定权限的 IAM 组。这些策略在您使用 Route 53 API AWS SDKs、或 AWS CLI 时起作用。以下示例显示了几个常见使用情形的权限。有关为用户授予 Route 53 的完全访问权限的策略，请参阅 [使用 Amazon Route 53 控制台所需的权限](#console-required-permissions)。

**Topics**
+ [示例 1：允许对所有托管区域进行读取访问](#access-policy-example-allow-read-hosted-zones)
+ [示例 2：允许创建和删除托管区域](#access-policy-example-allow-create-delete-hosted-zones)
+ [示例 3：允许完全访问所有域（仅限于公有托管区域）](#access-policy-example-allow-full-domain-access)
+ [示例 4：允许创建入站和出站 Route 53 VPC 解析器终端节点](#access-policy-example-create-resolver-endpoints)

### 示例 1：允许对所有托管区域进行读取访问
<a name="access-policy-example-allow-read-hosted-zones"></a>

以下权限策略向用户授予列出所有托管区域并查看某一托管区域中的所有记录的权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Effect":"Allow",
            "Action":[
                "route53:GetHostedZone", 
                "route53:ListResourceRecordSets"
            ],
            "Resource":"*"
        },
        {
            "Effect":"Allow",
            "Action":["route53:ListHostedZones"],
            "Resource":"*"
        }
    ]
}
```

------

### 示例 2：允许创建和删除托管区域
<a name="access-policy-example-allow-create-delete-hosted-zones"></a>

以下权限策略允许用户创建和删除托管区域并跟踪更改进度。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Effect":"Allow",
            "Action":["route53:CreateHostedZone"],
            "Resource":"*"
        },
        {
            "Effect":"Allow",
            "Action":["route53:DeleteHostedZone"],
            "Resource":"*"
        },
        {
            "Effect":"Allow",
            "Action":["route53:GetChange"],
            "Resource":"*"
        }
    ]
}
```

------

### 示例 3：允许完全访问所有域（仅限于公有托管区域）
<a name="access-policy-example-allow-full-domain-access"></a>

以下权限策略允许用户执行与域注册有关的所有操作，包括注册域和创建托管区域的权限。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Effect":"Allow",
            "Action":[
                "route53domains:*",
                "route53:CreateHostedZone"
            ],
            "Resource":"*"
        }
    ]
}
```

------

注册域时，会同时创建一个托管区域，因此包括注册域权限的策略还需要创建托管区域的权限。（对于域注册，Route 53 不支持向单个资源授予权限。）

有关使用私有托管区域所需权限的信息，请参阅[使用 Amazon Route 53 控制台所需的权限](#console-required-permissions)。

### 示例 4：允许创建入站和出站 Route 53 VPC 解析器终端节点
<a name="access-policy-example-create-resolver-endpoints"></a>

以下权限策略允许用户使用 Route 53 控制台创建 Resolver 入站和出站终端节点。

其中一些权限仅当在控制台中创建终端节点时才需要。如果您希望仅授予以编程方式创建入站和出站终端节点的权限，则可以省略上面这些权限：
+ `route53resolver:ListResolverEndpoints` 允许用户查看入站或出站终端节点列表，以便他们验证终端节点是否已创建。
+ 显示可用区列表时需要 `DescribeAvailabilityZones`。
+ `DescribeVpcs`是显示列表所必需的VPCs。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "route53resolver:CreateResolverEndpoint",
                "route53resolver:ListResolverEndpoints",
                "ec2:CreateNetworkInterface",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs"
            ],
            "Resource": "*"
        }
    ]
}
```

------

# 将服务相关角色用于 Amazon Route 53 Resolver
<a name="using-service-linked-roles"></a>

Route 53 VPC 解析器使用 AWS Identity and Access Management (IAM) [服务相关](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)角色。服务相关角色是一种独特的 IAM 角色，直接关联到 VPC 解析器。服务相关角色由 VPC Resolver 预定义，包括该服务代表您调用其他 AWS 服务所需的所有权限。

服务相关角色使设置 VPC Resolver 变得更加容易，因为您不必手动添加必要的权限。VPC 解析器定义其服务相关角色的权限，除非另有定义，否则只有 VPC 解析器可以担任其角色。定义的权限包括信任策略和权限策略，而且权限策略不能附加到任何其他 IAM 实体。

只有在先删除相关资源后，才能删除服务相关角色。这可以保护您的 VPC 解析器资源，因为您不会无意中移除访问这些资源的权限。

有关支持服务相关角色的其它服务的信息，请参阅[与 IAM 配合使用的AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，并查找 **Service-linked Role（服务相关角色）**列中为 **Yes（是）**的服务。选择**是**和链接，查看该服务的服务关联角色文档。

**Topics**
+ [VPC 解析器的服务相关角色权限](#slr-permissions)
+ [为 VPC 解析器创建服务相关角色](#create-slr)
+ [编辑 VPC 解析器的服务相关角色](#edit-slr)
+ [删除 VPC 解析器的服务相关角色](#delete-slr)
+ [VPC 解析器服务相关角色支持的区域](#slr-regions)

## VPC 解析器的服务相关角色权限
<a name="slr-permissions"></a>

VPC Resolver 使用**`AWSServiceRoleForRoute53Resolver`**服务相关角色代表您传送查询日志。

角色权限策略允许 VPC Resolver 对您的资源完成以下操作：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "logs:CreateLogDelivery",
        "logs:GetLogDelivery",
        "logs:UpdateLogDelivery",
        "logs:DeleteLogDelivery",
        "logs:ListLogDeliveries",
        "logs:DescribeResourcePolicies",
        "logs:DescribeLogGroups",
        "s3:GetBucketPolicy"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
```

------

您必须配置权限，允许 IAM 实体（如用户、组或角色）创建、编辑或删除服务关联角色。有关更多信息，请参阅《IAM 用户指南》**中的[服务关联角色权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 为 VPC 解析器创建服务相关角色
<a name="create-slr"></a>

您无需手动创建服务关联角色。当您在 Amazon Route 53 控制台、或 AWS API 中创建解析器查询日志配置关联时，VPC 解析器会为您创建服务相关角色。 AWS CLI

**重要**  
如果您在其他使用此角色支持的功能的服务中完成某个操作，此服务关联角色可以出现在您的账户中。此外，如果您在 2020 年 8 月 12 日开始支持服务相关角色之前使用 VPC 解析器服务，那么 VPC Resolver 会在您的账户中创建该`AWSServiceRoleForRoute53Resolver`角色。要了解更多信息，请参阅[我的 IAM 账户中的新角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)。

如果您删除该服务关联角色，然后需要再次创建，您可以使用相同流程在账户中重新创建此角色。当您创建一个新的 Resolver 查询日志配置关联时，将再次为您创建 `AWSServiceRoleForRoute53Resolver` 服务相关角色。

## 编辑 VPC 解析器的服务相关角色
<a name="edit-slr"></a>

VPC 解析器不允许您编辑`AWSServiceRoleForRoute53Resolver`服务相关角色。创建服务关联角色后，您将无法更改角色的名称，因为可能有多种实体引用该角色。但是可以使用 IAM 编辑角色描述。有关更多信息，请参阅《IAM 用户指南》**中的[编辑服务关联角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 删除 VPC 解析器的服务相关角色
<a name="delete-slr"></a>

如果不再需要使用某个需要服务关联角色的功能或服务，我们建议您删除该角色。这样就没有未被主动监控或维护的未使用实体。但是，必须先清除服务相关角色的资源，然后才能手动删除它。

**注意**  
如果您尝试删除资源时 VPC 解析器服务正在使用该角色，则删除可能会失败。如果发生这种情况，请等待几分钟后重试。

**删除使用的 VPC 解析器资源 `AWSServiceRoleForRoute53Resolver`**

1. 登录 AWS 管理控制台 并打开 Route 53 控制台，网址为[https://console.aws.amazon.com/route53/](https://console.aws.amazon.com/route53/)。

1. 展开 Route 53 控制台菜单。在控制台的左上角，选择三个水平条 (![\[Menu icon\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/images/menu-icon.png)) 图标。

1. 在 **Resolver **菜单中，选择 **Query logging（查询日志记录）**。

1. 选择查询日志记录配置名称旁边的复选框，然后选择 **Delete（删除）**。

1. 在 **Delete query logging configuration（删除查询日志记录配置）**文本框中，选择 **Stop logging queries（停止日志记录查询）**。

   这将解除配置与 VPC 的关联。您还可以通过编程方式解除查询日志记录配置的关联。有关更多信息，请参阅 [disassociate-resolver-query-log-config](https://docs.aws.amazon.com//cli/latest/reference/route53resolver/disassociate-resolver-query-log-config.html)。

1. 日志记录查询停止后，您可以选择在字段中键入 **delete**，然后选择 **Delete（删除）**以删除查询日志记录配置。但是，这对于删除 `AWSServiceRoleForRoute53Resolver` 使用的资源并非必需。

**使用 IAM 手动删除服务关联角色**

使用 IAM 控制台 AWS CLI、或 AWS API 删除`AWSServiceRoleForRoute53Resolver`服务相关角色。有关更多信息，请参见《IAM 用户指南》**中的[删除服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## VPC 解析器服务相关角色支持的区域
<a name="slr-regions"></a>

VPC Resolver 不支持在提供服务的每个区域中使用服务相关角色。您可以在以下区域中使用 `AWSServiceRoleForRoute53Resolver` 角色。


****  

|  区域名称 | 区域标识 | VPC 解析器中的 Support | 
| --- | --- | --- | 
| 美国东部（弗吉尼亚州北部） | us-east-1 | 是 | 
| 美国东部（俄亥俄州） | us-east-2 | 是 | 
| 美国西部（北加利福尼亚） | us-west-1 | 是 | 
| 美国西部（俄勒冈州） | us-west-2 | 是 | 
| 亚太地区（孟买） | ap-south-1 | 是 | 
| 亚太地区（大阪） | ap-northeast-3 | 是 | 
| 亚太地区（首尔） | ap-northeast-2 | 是 | 
| 亚太地区（新加坡） | ap-southeast-1 | 是 | 
| 亚太地区（悉尼） | ap-southeast-2 | 是 | 
| 亚太地区（东京） | ap-northeast-1 | 是 | 
| 加拿大（中部） | ca-central-1 | 是 | 
| 欧洲地区（法兰克福） | eu-central-1 | 是 | 
| 欧洲地区（爱尔兰） | eu-west-1 | 是 | 
| 欧洲地区（伦敦） | eu-west-2 | 是 | 
| 欧洲地区（巴黎） | eu-west-3 | 是 | 
| 南美洲（圣保罗） | sa-east-1 | 是 | 
| 中国（北京） | cn-north-1 | 是 | 
| 中国（宁夏） | cn-northwest-1 | 是 | 
| AWS GovCloud (US) | us-gov-east-1 | 是 | 
| AWS GovCloud (US) | us-gov-west-1 | 是 | 

# AWS 亚马逊 Route 53 的托管策略
<a name="security-iam-awsmanpol-route53"></a>

 AWS 托管策略是由创建和管理的独立策略 AWS。 AWS 托管策略旨在为许多常见用例提供权限，以便您可以开始为用户、组和角色分配权限。

请记住， AWS 托管策略可能不会为您的特定用例授予最低权限权限，因为它们可供所有 AWS 客户使用。我们建议通过定义特定于使用案例的[客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)来进一步减少权限。

您无法更改 AWS 托管策略中定义的权限。如果 AWS 更新 AWS 托管策略中定义的权限，则更新会影响该策略所关联的所有委托人身份（用户、组和角色）。 AWS 最有可能在启动新的 API 或现有服务可以使用新 AWS 服务 的 API 操作时更新 AWS 托管策略。

有关更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

## AWS 托管策略： AmazonRoute53 FullAccess
<a name="security-iam-awsmanpol-AmazonRoute53FullAccess"></a>

您可以将 `AmazonRoute53FullAccess` 策略附加到 IAM 身份。

此策略授予对 Route 53 资源的完全访问权限，包括域名注册和运行状况检查，但不包括 VPC 解析器。

**权限详细信息**

该策略包含以下权限。
+ `route53:*` - 您可以执行*除以下操作之外*的所有 Route 53 操作：
  + 创建和更新 Alias Targe **t 的值为 CloudFront 分配、Elastic Load Balancing 负载均衡器、Elastic Beanstalk 环境或 Amazon S3 存储桶的别名**记录。(通过这些权限，您可以创建其**别名目标**值为同一托管区域中的另一个记录的别名记录。)
  + 使用私有托管区域。
  + 使用域。
  + 创建、删除和查看 CloudWatch 警报。
  + 在 Route 53 控制台中呈现 CloudWatch 指标。
+ `route53domains:*` - 可让您使用域。
+ `cloudfront:ListDistributions`— 允许您创建和更新以 Alias Targe **t 的值为 CloudFront分布的别名**记录。

  如果您未使用 Route 53 控制台，则不需要此权限。Route 53 仅用它来获取要在控制台中显示的分配的列表。
+ `cloudfront:GetDistributionTenantByDomain`— 用于获取 CloudFront 多租户分配，允许您创建和更新 Alias Targe **t 的值为 CloudFront 分配租户的别名**记录。
+ `cloudfront:GetConnectionGroup`— 用于获取 CloudFront 多租户分配，允许您创建和更新 Alias Targe **t 的值为 CloudFront 分配租户的别名**记录。
+  `cloudwatch:DescribeAlarms`— 与`sns:ListTopics`和`sns:ListSubscriptionsByTopic`一起允许您创建、删除和查看 CloudWatch 警报。
+ `cloudwatch:GetMetricStatistics`— 允许您创建 CloudWatch指标运行状况检查。

  如果您未使用 Route 53 控制台，则不需要这些权限。Route 53 仅用它来获取要在控制台中显示的统计数据。
+ `cloudwatch:GetMetricData`— 允许您显示 CloudWatch 运行状况检查指标的状态。
+  `ec2:DescribeVpcs`— 允许您显示列表 VPCs。
+  `ec2:DescribeVpcEndpoints` - 可让您显示 VPC 终端节点列表。
+  `ec2:DescribeRegions` - 可让您显示可用区列表。
+ `elasticloadbalancing:DescribeLoadBalancers` - 可让您创建和更新 **Alias Target（别名目标）**值为 Elastic Load Balancing 负载均衡器的别名记录。

  如果您未使用 Route 53 控制台，则不需要这些权限。Route 53 仅用它来获取要在控制台中显示的负载均衡器的列表。
+ `elasticbeanstalk:DescribeEnvironments` - 可让您创建和更新 **Alias Target（别名目标）**值为 Elastic Beanstalk 环境的别名记录。

  如果您未使用 Route 53 控制台，则不需要这些权限。Route 53 仅用它来获取要在控制台中显示的环境的列表。
+  `es:ListDomainNames`— 允许您显示当前用户在活跃地区拥有的所有 Amazon Ser OpenSearch vice 域名的名称。
+  `es:DescribeDomains`— 允许您获取指定 Amazon OpenSearch 服务域的域配置。
+ `lightsail:GetContainerServices`— 允许你使用 Lightsail 容器服务来创建和更新 Alias T **arget 的值为 Lightsail 域的别名**记录。
+ `s3:ListBucket`、`s3:GetBucketLocation` 和 `s3:GetBucketWebsite` - 可让您创建和更新 **Alias Target（别名目标）**值为 Amazon S3 存储桶的别名记录。（只有将存储桶配置为网站终端节点时，才可以创建 Amazon S3 存储桶的别名；`s3:GetBucketWebsite` 用于获取所需的配置信息。）

  如果您未使用 Route 53 控制台，则不需要这些权限。Route 53 仅用这些权限来获取要在控制台中显示的存储桶的列表。
+ `sns:ListTopics`,`sns:ListSubscriptionsByTopic`, `cloudwatch:DescribeAlarms` — 允许您创建、删除和查看 CloudWatch 警报。
+ `tag:GetResources` - 可让您在资源中显示标签。例如，您的运行状况检查的名称。
+ `apigateway:GET` - 可让您创建和更新 **Alias Target（别名目标）**值为 Amazon API Gateway API 的别名记录。

 有关权限的更多信息，请参阅 [Amazon Route 53 API 权限：操作、资源和条件参考](r53-api-permissions-ref.md)。

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"route53:*",
				"route53domains:*",
				"cloudfront:ListDistributions",
				"cloudfront:GetDistributionTenantByDomain",
				"cloudfront:GetConnectionGroup",
				"cloudwatch:DescribeAlarms",
				"cloudwatch:GetMetricStatistics",
				"cloudwatch:GetMetricData",
				"ec2:DescribeVpcs",
				"ec2:DescribeVpcEndpoints",
				"ec2:DescribeRegions",
				"elasticloadbalancing:DescribeLoadBalancers",
				"elasticbeanstalk:DescribeEnvironments",
				"es:ListDomainNames",
				"es:DescribeDomains",
				"lightsail:GetContainerServices",
				"s3:ListBucket",
				"s3:GetBucketLocation",
				"s3:GetBucketWebsite",
				"sns:ListTopics",
				"sns:ListSubscriptionsByTopic",
				"tag:GetResources"
			],
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": "apigateway:GET",
			"Resource": "arn:aws:apigateway:*::/domainnames"
		}
	]
}
```

------

## AWS 托管策略： AmazonRoute53 ReadOnlyAccess
<a name="security-iam-awsmanpol-AmazonRoute53ReadOnlyAccess"></a>

您可以将 `AmazonRoute53ReadOnlyAccess` 策略附加到 IAM 身份。

此策略授予对 Route 53 资源的只读访问权限，包括域注册和运行状况检查，但不包括 VPC 解析器。

**权限详细信息**

该策略包含以下权限。
+ `route53:Get*` - 获取 Route 53 资源。
+ `route53:List*` – 列出 Route 53 资源。
+ `route53:TestDNSAnswer` - 获取 Route 53 为响应 DNS 请求而返回的值。

 有关权限的更多信息，请参阅 [Amazon Route 53 API 权限：操作、资源和条件参考](r53-api-permissions-ref.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "route53:Get*",
                "route53:List*",
                "route53:TestDNSAnswer"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

## AWS 托管策略： AmazonRoute53 DomainsFullAccess
<a name="security-iam-awsmanpol-AmazonRoute53DomainsFullAccess"></a>

您可以将 `AmazonRoute53DomainsFullAccess` 策略附加到 IAM 身份。

此策略授予对 Route 53 域注册资源的完全访问权限。

**权限详细信息**

该策略包含以下权限。
+ `route53:CreateHostedZone` - 可让您创建 Route 53 托管区域。
+ `route53domains:*` - 可让您注册域名并执行相关操作。

 有关权限的更多信息，请参阅 [Amazon Route 53 API 权限：操作、资源和条件参考](r53-api-permissions-ref.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "route53:CreateHostedZone",
                "route53domains:*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

## AWS 托管策略： AmazonRoute53 DomainsReadOnlyAccess
<a name="security-iam-awsmanpol-AmazonRoute53DomainsReadOnlyAccess"></a>

您可以将 `AmazonRoute53DomainsReadOnlyAccess` 策略附加到 IAM 身份。

此策略授予对 Route 53 域注册资源的只读访问权限。

**权限详细信息**

该策略包含以下权限。
+ `route53domains:Get*` - 可让您从 Route 53 中检索域列表。
+ `route53domains:List*` - 可让您显示 Route 53 域的列表。

 有关权限的更多信息，请参阅 [Amazon Route 53 API 权限：操作、资源和条件参考](r53-api-permissions-ref.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "route53domains:Get*",
                "route53domains:List*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

## AWS 托管策略： AmazonRoute53 ResolverFullAccess
<a name="security-iam-awsmanpol-AmazonRoute53ResolverFullAccess"></a>

您可以将 `AmazonRoute53ResolverFullAccess` 策略附加到 IAM 身份。

此策略授予对 Route 53 VPC 解析器资源的完全访问权限。

**权限详细信息**

该策略包含以下权限。
+ `route53resolver:*`— 允许您在 Route 53 控制台上创建和管理 VPC 解析器资源。
+ `ec2:DescribeSubnets` - 可让您列出 Amazon VPC 子网。
+ `ec2:CreateNetworkInterface`、`ec2:DeleteNetworkInterface` 和 `ec2:ModifyNetworkInterfaceAttribute` - 可让您创建、修改和删除网络接口。
+ `ec2:DescribeNetworkInterfaces` - 可让您显示网络接口列表。
+ `ec2:DescribeSecurityGroups` - 可让您显示所有安全组的列表。
+  `ec2:DescribeVpcs`— 允许您显示列表 VPCs。
+ `ec2:DescribeAvailabilityZones` - 可让您列出可供您使用的区域。

 有关权限的更多信息，请参阅 [Amazon Route 53 API 权限：操作、资源和条件参考](r53-api-permissions-ref.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AmazonRoute53ResolverFullAccess",
            "Effect": "Allow",
            "Action": [
                "route53resolver:*",
                "ec2:DescribeSubnets",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:DescribeNetworkInterfaces",
                "ec2:CreateNetworkInterfacePermission",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeVpcs",
                "ec2:DescribeAvailabilityZones"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

## AWS 托管策略： AmazonRoute53 ResolverReadOnlyAccess
<a name="security-iam-awsmanpol-AmazonRoute53ResolverReadOnlyAccess"></a>

您可以将 `AmazonRoute53ResolverReadOnlyAccess` 策略附加到 IAM 身份。

此策略授予对 Route 53 VPC 解析器资源的只读访问权限。

**权限详细信息**

该策略包含以下权限。
+ `route53resolver:Get*`— 获取 VPC 解析器资源。
+ `route53resolver:List*`— 允许您显示 VPC 解析器资源列表。
+ `ec2:DescribeNetworkInterfaces` - 可让您显示网络接口列表。
+ `ec2:DescribeSecurityGroups` - 可让您显示所有安全组的列表。

 有关权限的更多信息，请参阅 [Amazon Route 53 API 权限：操作、资源和条件参考](r53-api-permissions-ref.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AmazonRoute53ResolverReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "route53resolver:Get*",
                "route53resolver:List*",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

## AWS 托管策略：Route53 ResolverServiceRolePolicy
<a name="security-iam-awsmanpol-Route53ResolverServiceRolePolicy"></a>

您不能将 `Route53ResolverServiceRolePolicy` 附加到自己的 IAM 实体。此策略附加到服务相关角色，允许 Route 53 VPC 解析器访问由 VPC 解析器使用或管理的 AWS 服务和资源。有关更多信息，请参阅 [将服务相关角色用于 Amazon Route 53 Resolver](using-service-linked-roles.md)。

## AWS 托管策略： AmazonRoute53 ProfilesFullAccess
<a name="security-iam-awsmanpol-AmazonRoute53ProfilesFullAccess"></a>

您可以将 `AmazonRoute53ProfilesReadOnlyAccess` 策略附加到 IAM 身份。

此策略授予对 Amazon Route 53 配置文件资源的完全访问权限。

**权限详细信息**

该策略包含以下权限。
+  `route53profiles` - 可让您在 Route 53 控制台上创建和管理配置文件资源。
+  `ec2`— 允许校长获取有关 VPCs信息。

 有关权限的更多信息，请参阅 [Amazon Route 53 API 权限：操作、资源和条件参考](r53-api-permissions-ref.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AmazonRoute53ProfilesFullAccess",
            "Effect": "Allow",
            "Action": [
                "route53profiles:AssociateProfile",
                "route53profiles:AssociateResourceToProfile",
                "route53profiles:CreateProfile",
                "route53profiles:DeleteProfile",
                "route53profiles:DisassociateProfile",
                "route53profiles:DisassociateResourceFromProfile",
                "route53profiles:UpdateProfileResourceAssociation",
                "route53profiles:GetProfile",
                "route53profiles:GetProfileAssociation",
                "route53profiles:GetProfileResourceAssociation",
                "route53profiles:GetProfilePolicy",
                "route53profiles:ListProfileAssociations",
                "route53profiles:ListProfileResourceAssociations",
                "route53profiles:ListProfiles",
                "route53profiles:PutProfilePolicy",
                "route53profiles:ListTagsForResource",
                "route53profiles:TagResource",
                "route53profiles:UntagResource",
                "route53resolver:GetFirewallConfig",
                "route53resolver:GetFirewallRuleGroup",
                "route53resolver:GetResolverConfig",
                "route53resolver:GetResolverDnssecConfig",
                "route53resolver:GetResolverQueryLogConfig",
                "route53resolver:GetResolverRule",
                "ec2:DescribeVpcs",
                "route53:GetHostedZone"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

## AWS 托管策略： AmazonRoute53 ProfilesReadOnlyAccess
<a name="security-iam-awsmanpol-AmazonRoute53ProfilesReadOnlyAccess"></a>

您可以将 `AmazonRoute53ProfilesReadOnlyAccess` 策略附加到 IAM 身份。

此策略授予对 Amazon Route 53 配置文件资源的只读访问权限。

**权限详细信息**

 有关权限的更多信息，请参阅 [Amazon Route 53 API 权限：操作、资源和条件参考](r53-api-permissions-ref.md)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AmazonRoute53ProfilesReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "route53profiles:GetProfile",
                "route53profiles:GetProfileAssociation",
                "route53profiles:GetProfileResourceAssociation",
                "route53profiles:GetProfilePolicy",
                "route53profiles:ListProfileAssociations",
                "route53profiles:ListProfileResourceAssociations",
                "route53profiles:ListProfiles",
                "route53profiles:ListTagsForResource",
                "route53resolver:GetFirewallConfig",
                "route53resolver:GetResolverConfig",
                "route53resolver:GetResolverDnssecConfig",
                "route53resolver:GetResolverQueryLogConfig"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

## AWS 托管策略的 Route 53 更新
<a name="security-iam-awsmanpol-route53-updates"></a>

查看自该服务开始跟踪这些更改以来 Route 53 AWS 托管策略更新的详细信息。有关此页面更改的自动提醒，请订阅 Route 53 [文档历史记录页面](History.md)上的 RSS 源。




| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
|  [AmazonRoute53 FullAccess](#security-iam-awsmanpol-AmazonRoute53FullAccess) — 更新了政策  |  添加了 `cloudwatch:GetMetricData`、`tag:GetResources`、`es:ListDomainNames`、`es:DescribeDomains`、`cloudfront:GetDistributionTenantByDomain`、`cloudfront:GetConnectionGroup` 和 `lightsail:GetContainerServices` 的权限。这些权限使您能够获取最多 500 个运行 CloudWatch 状况检查指标、最多 100 个运行状况检查名称、获取指定亚马逊 OpenSearch 服务域的域配置、列出当前用户在活动区域中拥有的所有亚马逊 OpenSearch 服务域的名称、获取 CloudFront 多租户分配并获取 Lightsail 容器服务。  | 2025 年 6 月 1 日 | 
|  [AmazonRoute53 ProfilesFullAccess](#security-iam-awsmanpol-AmazonRoute53ProfilesFullAccess) — 更新了政策  |  添加了 `GetProfilePolicy` 和 `PutProfilePolicy` 权限。这些是仅限权限的 IAM 操作。如果 IAM 委托人未获得这些权限，则在尝试使用该 AWS RAM 服务共享个人资料时会出错。  | 2024 年 8 月 27 日 | 
|  [AmazonRoute53 ProfilesReadOnlyAccess](#security-iam-awsmanpol-AmazonRoute53ProfilesReadOnlyAccess) — 更新了政策  |  添加了 `GetProfilePolicy` 权限。这是仅限权限的 IAM 操作。如果 IAM 委托人未获得此权限，则尝试使用该 AWS RAM 服务访问配置文件的策略时将发生错误。  | 2024 年 8 月 27 日 | 
|  [AmazonRoute53 ResolverFullAccess](#security-iam-awsmanpol-AmazonRoute53ResolverFullAccess) — 更新了政策  |  添加了语句 ID (Sid)，以唯一地标识策略。  | 2024 年 8 月 5 日 | 
|  [AmazonRoute53 ResolverReadOnlyAccess](#security-iam-awsmanpol-AmazonRoute53ResolverReadOnlyAccess) — 更新了政策  |  添加了语句 ID (Sid)，以唯一地标识策略。  | 2024 年 8 月 5 日 | 
|  [AmazonRoute53 ProfilesFullAccess](#security-iam-awsmanpol-AmazonRoute53ProfilesFullAccess) — 新政策  |  Amazon Route 53 添加了一项新策略，允许完全访问 Amazon Route 53 配置文件资源。  | 2024 年 4 月 22 日 | 
|  [AmazonRoute53 ProfilesReadOnlyAccess](#security-iam-awsmanpol-AmazonRoute53ProfilesReadOnlyAccess) — 新政策  |  Amazon Route 53 添加了一项新策略，允许以只读形式访问 Amazon Route 53 配置文件资源。  | 2024 年 4 月 22 日 | 
|  [53 号公路 ResolverServiceRolePolicy — 新](#security-iam-awsmanpol-Route53ResolverServiceRolePolicy)政策   |  Amazon Route 53 添加了一项附加到服务相关角色的新策略，允许 VPC 解析器访问由解析器使用或管理的 AWS 服务和资源。  | 2021 年 7 月 14 日 | 
|  [AmazonRoute53 ResolverReadOnlyAccess](#security-iam-awsmanpol-AmazonRoute53ResolverReadOnlyAccess) — 新政策   |  Amazon Route 53 添加了一项新政策，允许对 VPC 解析器资源进行只读访问。  | 2021 年 7 月 14 日 | 
|  [AmazonRoute53 ResolverFullAccess](#security-iam-awsmanpol-AmazonRoute53ResolverFullAccess) — 新政策   |  Amazon Route 53 添加了一项新政策，允许完全访问 VPC 解析器资源。  | 2021 年 7 月 14 日 | 
|  [AmazonRoute53 DomainsReadOnlyAccess](#security-iam-awsmanpol-AmazonRoute53DomainsReadOnlyAccess) — 新政策   |  Amazon Route 53 添加了一项新策略，允许以只读形式访问 Route 53 域资源。  | 2021 年 7 月 14 日 | 
|  [AmazonRoute53 DomainsFullAccess](#security-iam-awsmanpol-AmazonRoute53DomainsFullAccess) — 新政策   |  Amazon Route 53 添加了一项新策略，允许完全访问 Route 53 域资源。  | 2021 年 7 月 14 日 | 
|  [AmazonRoute53 ReadOnlyAccess](#security-iam-awsmanpol-AmazonRoute53ReadOnlyAccess) — 新政策   |  Amazon Route 53 添加了一项新策略，允许以只读形式访问 Route 53 资源。  | 2021 年 7 月 14 日 | 
|  [AmazonRoute53 FullAccess](#security-iam-awsmanpol-AmazonRoute53FullAccess) — 新政策   |  Amazon Route 53 添加了一项新策略，允许完全访问 Route 53 资源。  | 2021 年 7 月 14 日 | 
|  Route 53 已开启跟踪更改  |  Route 53 开始跟踪其 AWS 托管策略的更改。  | 2021 年 7 月 14 日 | 

# 使用 IAM 策略条件进行精细访问控制
<a name="specifying-conditions-route53"></a>

在 Route 53 中，使用 IAM policy 授予权限时，您可以指定条件（请参阅 [访问控制](security-iam.md#access-control)）。例如，您可以：
+ 授予权限以允许访问单个资源记录集。
+ 授予权限以允许用户访问托管区域中特定 DNS 记录类型的所有资源记录集，例如 A 和 AAAA 记录。
+ 授予权限以允许用户访问其名称包含特定字符串的资源记录集。
+ 授予权限以允许用户仅在 Route 53 控制台上或使用 [ChangeResourceRecordSets](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html)API 时执行部分`CREATE | UPSERT | DELETE`操作。
+ 授予允许用户将私有托管区与特定 VPC 关联或取消关联的权限。
+ 授予允许用户将关联至特定 VPC 的托管区列示出来的权限。
+ 授予允许用户创建新的私有托管区并将其关联至特定 VPC 的权限。
+ 授予允许用户创建或删除 VPC 关联授权的权限。

您还可以创建组合任意精细权限的权限。

## 标准化 Route 53 条件键值
<a name="route53_rrset_conditionkeys_normalization"></a>

您为策略条件输入的值必须格式化或标准化，如下所示：

**对于 `route53:ChangeResourceRecordSetsNormalizedRecordNames`：**
+ 所有字母必须为小写形式。
+ DNS 名称不得带有结尾圆点。
+ 除 a-z、0-9、-（连字符）、\$1（下划线）和 .（句点，作为标签之间的分隔符）以外的字符必须使用 \$1三位八进制代码格式的转义码。例如，`\052 ` 是字符 \$1 的八进制代码。

**对于 `route53:ChangeResourceRecordSetsActions`，该值可为以下任意值，且必须为大写：**
+ CREATE
+ UPSERT
+ DELETE

**对于 `route53:ChangeResourceRecordSetsRecordTypes`**：
+ 该值必须为大写，并且可以是 Route 53 支持的任何一种 DNS 记录类型。有关更多信息，请参阅 [支持的 DNS 记录类型](ResourceRecordTypes.md)。

**对于 `route53:VPCs`：**
+ 该值必须采用 `VPCId=<vpc-id>,VPCRegion=<region>` 格式。
+ `<vpc-id>` 和 `<region>` 的值必须为小写，比如 `VPCId=vpc-123abc` 和 `VPCRegion=us-east-1`。
+ 上下文键和值区分大小写。

**重要**  
要获得按预期允许或限制操作的权限，您必须遵循以下约定。此条件键仅接受`VPCId`且`VPCRegion`元素，不支持任何其他 AWS 资源 AWS 账户，例如。

您可以使用《*IAM 用户指南*》中的 [Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) 或 [Policy Simulator](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html) 验证策略是否按预期授予或限制权限。您还可以通过将 IAM policy 应用于执行 Route 53 操作的测试用户或角色来验证权限。

## 指定条件：使用条件键
<a name="route53_rrsetConditionKeys"></a>

AWS 为所有支持 IAM 进行访问控制的 AWS 服务提供了一组预定义的条件键（AWS范围内的条件键）。例如，您可以先使用 `aws:SourceIp` 条件键检查请求者的 IP 地址，然后再允许执行操作。有关更多信息和 AWS范围条件键的列表，请参阅 *IAM 用户指南*中的[可用条件键](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys)。

**注意**  
Route 53 不支持基于标签的条件键。

下表显示了适用于 Route 53 的 Route 53 服务专属条件键。


****  

| Route 53 条件键 | API 操作 | 值类型 | 说明 | 
| --- | --- | --- | --- | 
| route53:ChangeResourceRecordSetsNormalizedRecordNames |  [ChangeResourceRecordSets](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html)  | 多值 | 表示请求中的 DNS 记录名称列表ChangeResourceRecordSets。要获得预期的行为，IAM policy 中的 DNS 名称必须标准化，如下所示： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/specifying-conditions-route53.html)  | 
| route53:ChangeResourceRecordSetsRecordTypes |  [ChangeResourceRecordSets](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html)  | 多值 | 表示 `ChangeResourceRecordSets` 请求中的 DNS 记录类型列表。 `ChangeResourceRecordSetsRecordTypes` 可以是 Route 53 支持的任何 DNS 记录类型。有关更多信息，请参阅 [支持的 DNS 记录类型](ResourceRecordTypes.md)。在策略中，所有内容必须以大写形式输入。 | 
| route53:ChangeResourceRecordSetsActions |  [ChangeResourceRecordSets](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html)  | 多值 | 表示 `ChangeResourceRecordSets` 请求中的操作列表。 `ChangeResourceRecordSetsActions` 可为以下任意值（必须为大写）： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/Route53/latest/DeveloperGuide/specifying-conditions-route53.html) | 
| route53:VPCs |  [助理 VPCWith HostedZone](https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html) [取消关联 VPCFrom HostedZone](https://docs.aws.amazon.com/Route53/latest/APIReference/API_DisassociateVPCFromHostedZone.html) [ListHostedZonesByVPC](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListHostedZonesByVPC.html) [CreateHostedZone](https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateHostedZone.html) [创建VPCAssociation授权](https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateVPCAssociationAuthorization.html) [删除VPCAssociation授权](https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteVPCAssociationAuthorization.html)  | 多值 | 表示请求 VPCs 中AssociateVPCWithHostedZone、、、DisassociateVPCFromHostedZoneListHostedZonesByVPCCreateHostedZoneCreateVPCAssociationAuthorization、和的列表DeleteVPCAssociationAuthorization，格式为 “VPCId=<vpc-id>，VPCRegion= <region> | 

## 策略示例：使用条件实现精细访问
<a name="route53_rrset_conditionkeys-examples"></a>

此部分中的每个示例均将 Effect 子句设置为 Allow，并且仅指定允许的操作、资源和参数。只允许访问 IAM policy 中明确列出的项目。

在某些情况下，可以重新编写这些策略以使其成为基于拒绝的策略（即将 Effect 子句设置为 Deny 并反转策略中的所有逻辑）。然而，我们建议您避免使用基于拒绝的策略，因为与基于允许的策略相比，它们难以编写正确。由于需要进行文本标准化，因此对于 Route 53 来说尤其如此。

**授予权限以限制访问具有特定名称的 DNS 记录**  
以下权限策略授予允许对 example.com 和 marketing.example.com 的托管区 Z12345 执行 `ChangeResourceRecordSets` 操作的权限。它使用 `route53:ChangeResourceRecordSetsNormalizedRecordNames` 条件键，以限制用户仅对与指定名称匹配的记录执行操作。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "route53:ChangeResourceRecordSets",
            "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333",
            "Condition": {
                "ForAllValues:StringEquals":{
                    "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["example.com", "marketing.example.com"]
                }
            }
          }
        ]
}
```

------

`ForAllValues:StringEquals` 是一个适用于多值键的 IAM 条件运算符。仅当 `ChangeResourceRecordSets` 中所有更改的 DNS 名称均为 example.com 时，上述策略中的条件才允许该操作。有关更多信息，请参阅《IAM 用户指南》中的 [IAM 条件运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)和[具有多个键或值的 IAM 条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html)。

要实现与具有特定后缀的名称相匹配的权限，可以在策略中使用 IAM 通配符（\$1）及条件运算符 `StringLike` 或 `StringNotLike`。当 `ChangeResourceRecordSets` 操作中所有更改的 DNS 名称均以“-beta.example.com”结尾时，以下策略将允许该操作。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "route53:ChangeResourceRecordSets",
            "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333",
            "Condition": {
                "ForAllValues:StringLike":{
                     "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["*-beta.example.com"]
                }
            }
          }
        ]
}
```

------

**注意**  
IAM 通配符与域名通配符不同。请参阅以下示例，了解如何将通配符与域名一起使用。

**授予权限，限制访问与包含通配符的域名相匹配的 DNS 记录**  
以下权限策略授予允许对 example.com 的托管区 Z12345 执行 `ChangeResourceRecordSets` 操作的权限。它使用 `route53:ChangeResourceRecordSetsNormalizedRecordNames` 条件键，以限制用户仅对与 \$1.example.com 匹配的记录执行操作。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "route53:ChangeResourceRecordSets",
            "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333",
            "Condition": {
                "ForAllValues:StringEquals":{
                     "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["\\052.example.com"]
                }
            }
          }
        ]
}
```

------

`\052 ` 是 DNS 名称中字符 \$1 的八进制代码，且 `\052` 中的 `\` 转义为 `\\` 以遵循 JSON 语法。

**授予权限以限制访问特定 DNS 记录**  
以下权限策略授予允许对 example.com 的托管区 Z12345 执行 `ChangeResourceRecordSets` 操作的权限。它使用三个条件键的组合来限制用户操作，只允许创建或编辑具有特定 DNS 名称和类型的 DNS 记录。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "route53:ChangeResourceRecordSets",
            "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333",
            "Condition": {
                "ForAllValues:StringEquals":{
                     "route53:ChangeResourceRecordSetsNormalizedRecordNames": ["example.com"],
                     "route53:ChangeResourceRecordSetsRecordTypes": ["MX"],
                     "route53:ChangeResourceRecordSetsActions": ["CREATE", "UPSERT"]
                }
            }
          }
        ]
}
```

------

**授予限制访问的权限，以仅创建和编辑指定类型的 DNS 记录**  
以下权限策略授予允许对 example.com 的托管区 Z12345 执行 `ChangeResourceRecordSets` 操作的权限。它使用 `route53:ChangeResourceRecordSetsRecordTypes` 条件键，以限制用户仅对与指定类型匹配的记录执行操作（A 和 AAAA）。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "route53:ChangeResourceRecordSets",
            "Resource": "arn:aws:route53:::hostedzone/Z11111112222222333333",
            "Condition": {
                "ForAllValues:StringEquals":{
                     "route53:ChangeResourceRecordSetsRecordTypes": ["A", "AAAA"]
                }
            }
          }
        ]
}
```

------

**授予指定 IAM 主体可以在其中操作的 VPC 的权限**  
以下权限策略授予在 vpc-id 指定的 VPC 上允许 `AssociateVPCWithHostedZone`、`DisassociateVPCFromHostedZone`、`ListHostedZonesByVPC`、`CreateHostedZone`、`CreateVPCAssociationAuthorization` 和 `DeleteVPCAssociationAuthorization` 操作的权限。

**重要**  
必须采用 `VPCId=<vpc-id>,VPCRegion=<region>` 格式提供条件值。如果在条件值中指定了 VPC ARN，则条件键不会生效。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": [
                "route53:*"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "StringLike": {
                    "route53:VPCs": [
                        "VPCId=<vpc-id>,VPCRegion=<region>"
                    ]
                }
            }
        },
        {
            "Sid": "Statement2",
            "Effect": "Allow",
            "Action": "ec2:DescribeVpcs",
            "Resource": "*"
        }
    ]
}
```

------

# Amazon Route 53 API 权限：操作、资源和条件参考
<a name="r53-api-permissions-ref"></a>

在设置[访问控制](security-iam.md#access-control)和编写可附加到 IAM 身份的权限策略（基于身份的策略）时，您可以使用 [Route 53 的操作、资源和条件密钥列表，使用 Route 53 域的操作、资源和条件密钥](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53.html)[列表，VPC 解析器的操作、资源和条件密钥以及 Amazon Route 53](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53domains.html) [配置文件允许与共享 DNS 设置的操作、资源和条件密钥](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53resolver.html)列表，以及*服务*授权参考 VPCs中[允许与共享 DNS 设置的 Amazon Route 53 配置文件的操作、资源和条件](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonroute53profilesenablessharingdnssettingswithvpcs.html)密钥。这些页面包括每个 Amazon Route 53 API 操作、您必须授予访问权限的操作以及必须授予访问权限的 AWS 资源。您可以在策略的 `Action` 字段中指定这些操作，并在策略的 `Resource` 字段中指定资源值。

您可以在 AWS Route 53 策略中使用范围的条件键来表达条件。有关 AWS范围密钥的完整列表，请参阅 *IAM 用户指南*中的[可用密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys)。

**注意**  
授予访问权限时，托管区域和 Amazon VPC 必须属于相同分区。分区是一组 AWS 区域。每个分区的作用域 AWS 账户 仅限于一个分区。  
以下是支持的分区：  
`aws` - AWS 区域
`aws-cn` – 中国区域
`aws-us-gov` - AWS GovCloud (US) Region
有关更多信息，请参阅*《AWS 一般参考》*中的[访问权限管理](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。

**注意**  
要指定操作，请在 API 操作名称之前使用相应前缀（`route53`、`route53domains` 或 `route53resolver`），例如：  
`route53:CreateHostedZone`
`route53domains:RegisterDomain`
`route53resolver:CreateResolverEndpoint`