

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

# 管理 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)。