

AWS Data Pipeline 不再向新客户提供。的现有客户 AWS Data Pipeline 可以继续照常使用该服务。[了解详情](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

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

# 适用的 IAM 角色 AWS Data Pipeline
<a name="dp-iam-roles"></a>

AWS Data Pipeline 使用 AWS Identity and Access Management 角色。附加到 IAM 角色的权限策略决定了您的应用程序可以执行哪些操作 AWS Data Pipeline 以及它们可以访问哪些 AWS 资源。有关更多信息，请参阅《IAM 用户指南》中的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。

AWS Data Pipeline 需要两个 IAM 角色：
+ **管道角色**控制对您的 AWS 资源的 AWS Data Pipeline 访问权限。在管道对象定义中，`role` 字段指定此角色。
+ **EC2 实例角色**控制在 EC2 实例上运行的应用程序（包括 Amazon EMR 集群中的 EC2 实例）对资源的访问权限。 AWS 在管道对象定义中，`resourceRole` 字段指定此角色。

**重要**  
如果您在 2022 年 10 月 3 日之前使用带有默认角色的 AWS Data Pipeline 控制台 AWS Data Pipeline 创建了管道，则会`DataPipelineDefaultRole`为您创建并将`AWSDataPipelineRole`托管策略附加到该角色。自 2022 年 10 月 3 日起，`AWSDataPipelineRole` 托管策略已被弃用，使用控制台时必须为管道指定管道角色。  
我们建议您查看现有管道，并确定 `DataPipelineDefaultRole` 是否与管道相关联以及 `AWSDataPipelineRole` 是否已关联到该角色。如果是，请查看此策略允许的访问权限，以确保其符合您的安全要求。根据需要添加、更新或替换附加到此角色的策略和策略语句。或者，您也可以更新管道以使用您创建的具有不同权限策略的角色。

## AWS Data Pipeline 角色权限策略示例
<a name="dp-role-permissions-policy-examples"></a>

每个角色都附加了一个或多个权限策略，用于确定该角色可以访问的 AWS 资源以及该角色可以执行的操作。本主题提供了管道角色的权限策略示例。它还提供了 `AmazonEC2RoleforDataPipelineRole`（默认 EC2 实例角色的托管策略 `DataPipelineDefaultResourceRole`）的内容。

### 管道角色权限策略示例
<a name="dp-role-example-policy"></a>

以下示例策略的范围是允许 AWS Data Pipeline 需要使用 Amazon EC2 和 Amazon EMR 资源运行管道的基本功能。它还提供访问许多渠道 AWS 所需的其他资源（例如亚马逊简单存储服务和亚马逊简单通知服务）的权限。如果管道中定义的对象不需要 AWS 服务的资源，我们强烈建议您移除访问该服务的权限。例如，如果您的管道未定义 [Dynamo 节点 DBData](dp-object-dynamodbdatanode.md) 或未使用 [SnsAlarm](dp-object-snsalarm.md) 操作，我们建议您删除这些操作的允许语句。
+ `111122223333`替换为您的 AWS 账户 ID。
+ `NameOfDataPipelineRole` 替换为管道角色的名称（此策略所关联的角色）。
+ `NameOfDataPipelineResourceRole` 替换为 EC2 实例角色的名称。
+ `us-west-1` 替换为适合您的应用程序的区域。

### EC2 实例角色的默认托管策略
<a name="dp-resource-role-example-policy"></a>

下面显示的是 `AmazonEC2RoleforDataPipelineRole` 的内容。这是附加到默认资源角色的 AWS Data Pipeline托管策略`DataPipelineDefaultResourceRole`。在为管道定义资源角色时，我们建议您从此权限策略开始，然后删除不需要的 AWS 服务操作的权限。

所示的是该策略的第 3 版，这在撰写本文时是最新版本。在 IAM 控制台中查看最新版的策略。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
      "Effect": "Allow",
      "Action": [
        "cloudwatch:*",
        "datapipeline:*",
        "dynamodb:*",
        "ec2:Describe*",
        "elasticmapreduce:AddJobFlowSteps",
        "elasticmapreduce:Describe*",
        "elasticmapreduce:ListInstance*",
        "elasticmapreduce:ModifyInstanceGroups",
        "rds:Describe*",
        "redshift:DescribeClusters",
        "redshift:DescribeClusterSecurityGroups",
        "s3:*",
        "sdb:*",
        "sns:*",
        "sqs:*"
      ],
      "Resource": ["*"]
    }]
}
```

------

## 为其创建 IAM 角色 AWS Data Pipeline 和编辑角色权限
<a name="dp-iam-roles-new"></a>

使用以下过程创建用于 AWS Data Pipeline 使用 IAM 控制台的角色。该过程包括两个步骤。首先，创建一个权限策略以附加到该角色。然后，创建一个角色并附加到该策略。创建角色后，您可以通过附加和分离权限策略来更改角色的权限。

**注意**  
当您按照下文所述创建用于 AWS Data Pipeline 使用控制台的角色时，IAM 会创建并附加该角色所需的相应信任策略。

**创建权限策略以与角色配合使用 AWS Data Pipeline**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中选择**策略**，然后选择**创建策略**。

1. <a name="step3"></a>选择 **JSON** 选项卡。

1. 如果您要创建管道角色，请将策略示例的内容复制并粘贴到 [管道角色权限策略示例](#dp-role-example-policy) 中，然后根据您的安全要求酌情对其进行编辑。或者，如果您要创建自定义 EC2 实例角色，请对 [EC2 实例角色的默认托管策略](#dp-resource-role-example-policy) 中的示例执行相同的操作。

1. 选择**查看策略**。

1. 输入您策略的名称（如 `MyDataPipelineRolePolicy`）和可选**描述**，然后选择**创建策略**。

1. 记下策略的名称。当您创建角色时，您将需要它。

**为创建 IAM 角色 AWS Data Pipeline**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**角色**，然后选择**创建角色**。

1. 在**选择使用案例**下，选择**数据管道**。

1. 在**选择您的使用案例**下，请执行以下操作之一：
   + 选择 `Data Pipeline` 以创建管道角色。
   + 选择 `EC2 Role for Data Pipeline` 以创建资源角色。

1. 选择**下一步: 权限**。

1. 如果列出了的 AWS Data Pipeline 默认策略，请继续执行以下步骤来创建角色，然后根据下一个过程中的说明对其进行编辑。否则，输入您在上一个过程中创建的策略的名称，然后从列表中选择它。

1. 选择**下一步：标签**，输入任何要添加到角色的标签，然后选择**下一步：审核**。

1. 输入角色的名称（如 `MyDataPipelineRole`）和可选**描述**，然后选择**创建角色**。

**为某个 IAM 角色附加或取消权限策略 AWS Data Pipeline**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**角色**

1. 在搜索框中，开始键入要编辑的角色的名称（例如**DataPipelineDefaultRole**或 **MyDataPipelineRole**），然后从列表中选择**角色名称**。

1. 在**权限**选项卡上，执行以下操作：
   + 要分离权限策略，请在**权限策略**下，选择策略条目最右侧的“删除”按钮。当系统提示进行确认时，选择**分离**。
   + 要附加您之前创建的策略，请选择**附加策略**。在搜索框中，开始键入要编辑的策略的名称，从列表中选中它，然后选择**附加策略**。

## 更改现有管道的角色
<a name="dp-iam-change-console"></a>

如果要为管道分配不同的管道角色或资源角色，则可以在 AWS Data Pipeline 控制台中使用架构师编辑器。

**使用控制台来编辑分配给管道的角色**

1. 打开 AWS Data Pipeline 控制台，网址为[https://console.aws.amazon.com/datapipeline/](https://console.aws.amazon.com/datapipeline/)。

1. 从列表中选择管道，然后选择**操作**、**编辑**。

1. 在架构师编辑器的右侧窗格中，选择**其他**。

1. 从 “**资源角色**和**角色**” 列表中，选择要为 AWS Data Pipeline 其分配的角色，然后选择 “**保存**”。