

AWS Data Pipeline não está mais disponível para novos clientes. Os clientes existentes do AWS Data Pipeline podem continuar usando o serviço normalmente. [Saiba mais](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Identity and Access Management para AWS Data Pipeline
<a name="dp-control-access"></a>

Suas credenciais de segurança identificam você para os serviços na AWS e concedem permissões para usar recursos da AWS, como os pipelines. Você pode usar os recursos do AWS Data Pipeline and AWS Identity and Access Management (IAM) para permitir que AWS Data Pipeline outros usuários acessem seus AWS Data Pipeline recursos sem compartilhar suas credenciais de segurança.

As organizações podem compartilhar o acesso aos pipelines para que os indivíduos dessa organização possam desenvolvê-los e mantê-los de maneira colaborativa. No entanto, por exemplo, pode ser necessário fazer o seguinte:
+ Controlar quais usuários podem acessar pipelines específicos
+ Proteger um pipeline de produção contra edições não intencionais
+ Permitir que um auditor tenha acesso somente leitura aos pipelines, mas evitar que eles façam alterações

AWS Data Pipeline é integrado ao AWS Identity and Access Management (IAM), que oferece uma ampla variedade de recursos:
+ Crie usuários e grupos em seu Conta da AWS.
+ Compartilhe facilmente seus AWS recursos entre os usuários do seu Conta da AWS.
+ Atribuir credenciais de segurança exclusivas a cada usuário.
+ Controlar o acesso do usuário a serviços e recursos.
+ Obter uma única fatura para todos os usuários da sua Conta da AWS.

Ao usar o IAM com AWS Data Pipeline, você pode controlar se os usuários da sua organização podem realizar uma tarefa usando ações de API específicas e se podem usar recursos específicos da AWS. Você pode usar as políticas do IAM com base nas tags de pipeline e em grupos de operadores para compartilhar seus pipelines com outros usuários e controlar o nível de acesso desses usuários.

**Topics**
+ [Políticas do IAM para AWS Data Pipeline](dp-iam-resourcebased-access.md)
+ [Exemplos de políticas para AWS Data Pipeline](dp-example-tag-policies.md)
+ [Funções do IAM para AWS Data Pipeline](dp-iam-roles.md)

# Políticas do IAM para AWS Data Pipeline
<a name="dp-iam-resourcebased-access"></a>

Por padrão, entidades do IAM não têm permissão para criar ou modificar recursos da AWS. Para permitir que entidades do IAM criem ou modifiquem recursos e realizem tarefas, crie políticas do IAM que concedam ás entidades do IAM permissão para usar os recursos específicos e as ações de API de que precisam e, então, anexar essas políticas às entidades do IAM que exijam essas permissões.

Ao anexar uma política a um usuário ou grupo de usuários, isso concede ou nega aos usuários permissão para realizar as tarefas especificadas nos atributos especificados. Para obter mais informações gerais sobre as políticas do IAM, consulte [Permissões e políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html) no *Guia do usuário do IAM*. Para mais informações sobre como gerenciar e criar políticas personalizadas do IAM, consulte [Gerenciamento de Políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html).

**Topics**
+ [Sintaxe da política](#dp-policy-syntax)
+ [Controlar acesso aos pipelines usando tags](#dp-control-access-tags)
+ [Controlar acesso aos pipelines usando grupos de operadores](#dp-control-access-workergroup)

## Sintaxe da política
<a name="dp-policy-syntax"></a>

A política do IAM é um documento JSON que consiste em uma ou mais declarações. Cada instrução é estruturada da seguinte maneira:

```
{
  "Statement":[{
    "Effect":"effect",
    "Action":"action",
    "Resource":"*",
    "Condition":{
      "condition":{
        "key":"value"
        }
      }
    }
  ]
}
```

Uma instrução de política inclui os seguintes elementos:
+ **Efeito:** o *efeito* pode ser `Allow` ou `Deny`. Por padrão, as entidades do IAM não têm permissão para usar recursos e ações da API. Por isso, todas as solicitações são negadas. Um permitir explícito substitui o padrão. Uma negação explícita substitui todas as permissões.
+ **Ação**: é a *ação* de API específica para a qual a permissão esteja sendo concedida ou negada. Para obter uma lista de ações para AWS Data Pipeline, consulte [Ações](https://docs.aws.amazon.com/datapipeline/latest/APIReference/API_Operations.html) na *Referência AWS Data Pipeline da API*.
+ **Recurso**: o recurso afetado pela ação. O único valor válido aqui é `"*"`. 
+ **Condição**: condições são opcionais. Elas podem ser usadas para controlar quando as políticas entrarão em vigor.

  AWS Data Pipeline implementa as chaves de contexto em toda a AWS (consulte [Chaves disponíveis para condições), além das seguintes chaves](https://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#AvailableKeys) específicas do serviço.
  + `datapipeline:PipelineCreator` — Para conceder acesso ao usuário que criou o pipeline. Para obter um exemplo, consulte [Conceder acesso total ao proprietário do pipeline](dp-example-tag-policies.md#ex3).
  + `datapipeline:Tag` — Para conceder acesso com base na marcação de pipeline. Para obter mais informações, consulte [Controlar acesso aos pipelines usando tags](#dp-control-access-tags).
  + `datapipeline:workerGroup` — Para conceder acesso de acordo com o nome do grupo de operadores. Para obter mais informações, consulte [Controlar acesso aos pipelines usando grupos de operadores](#dp-control-access-workergroup).

## Controlar acesso aos pipelines usando tags
<a name="dp-control-access-tags"></a>

Você pode criar políticas do IAM que fazem referência às tags para o pipeline. Isso permite que você use a marcação de pipeline para fazer o seguinte:
+ Conceder acesso somente leitura ao pipeline
+ Conceder read/write acesso a um pipeline
+ Bloquear o acesso ao pipeline

Por exemplo, imagine que um gerente tenha dois ambientes de pipeline, produção e desenvolvimento, e um grupo do IAM para cada ambiente. Para pipelines no ambiente de produção, o gerente concede read/write acesso aos usuários no grupo IAM de produção, mas concede acesso somente de leitura aos usuários do grupo IAM de desenvolvedores. Para pipelines no ambiente de desenvolvimento, o gerente concede read/write acesso aos grupos IAM de produção e de desenvolvedores.

Para alcançar esse cenário, o gerente marca os pipelines de produção com a tag "environment=production" e anexa a política a seguir para o grupo do IAM de desenvolvedor. A primeira instrução concede acesso somente leitura a todos os pipelines. A segunda declaração concede read/write acesso a pipelines que não têm uma tag “ambiente=produção”.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "datapipeline:Describe*",
        "datapipeline:ListPipelines",
        "datapipeline:GetPipelineDefinition",
        "datapipeline:QueryObjects"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "datapipeline:*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {"datapipeline:Tag/environment": "production"}
      }
    }
  ]
}
```

------

Além disso, o gerente anexa a política a seguir ao grupo do IAM de produção. Esta instrução concede acesso total a todos os pipelines.

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

****  

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

------

Para obter mais exemplos, consulte [Conceder acesso somente leitura aos usuários com base em uma tag](dp-example-tag-policies.md#ex1) e [Conceder acesso total aos usuários com base em uma tag](dp-example-tag-policies.md#ex2).

## Controlar acesso aos pipelines usando grupos de operadores
<a name="dp-control-access-workergroup"></a>

Você pode criar políticas do IAM que fazem referência a nomes de grupos de operadores.

Por exemplo, imagine que um gerente tenha dois ambientes de pipeline, produção e desenvolvimento, e um grupo do IAM para cada ambiente. O gerente tem três servidores de banco de dados com executores de tarefas configurados para ambientes de produção, pré-produção e desenvolvimento, respectivamente. O gerente deseja garantir que os usuários no grupo do IAM de produção possam criar pipelines que enviam tarefas para recursos de produção, e que os usuários no grupo do IAM de desenvolvimento possam criar pipelines que enviam tarefas para recursos de pré-produção e desenvolvimento.

Para alcançar esse cenário, o gerente instala um executor de tarefas nos recursos de produção com credenciais de produção e define `workerGroup` como "prodresource". Além disso, o gerente instala um executor de tarefas nos recursos de desenvolvimento com credenciais de desenvolvimento e define `workerGroup` como "pre-production" e "development". O gerente anexa a política a seguir ao grupo do IAM de desenvolvedor para bloquear o acesso aos recursos "prodresource". A primeira instrução concede acesso somente leitura a todos os pipelines. A segunda declaração concede read/write acesso aos pipelines quando o nome do grupo de trabalho tem o prefixo “dev” ou “pre-prod”.

Além disso, o gerente anexa a política a seguir ao grupo do IAM de produção para conceder acesso aos recursos "prodresource". A primeira instrução concede acesso somente leitura a todos os pipelines. A segunda declaração concede read/write acesso quando o nome do grupo de trabalhadores tem o prefixo “prod”.

# Exemplos de políticas para AWS Data Pipeline
<a name="dp-example-tag-policies"></a>

Os exemplos a seguir demonstram como conceder aos usuários acesso total ou restrito a pipelines.

**Topics**
+ [Exemplo 1: Conceder aos usuários acesso somente leitura baseado em uma tag](#ex1)
+ [Exemplo 2: Conceder aos usuários acesso total baseado em uma tag](#ex2)
+ [Exemplo 3: Conceder acesso total ao proprietário do pipeline](#ex3)
+ [Exemplo 4: Conceder aos usuários acesso ao AWS Data Pipeline console](#example4-grant-users-access-to-console)

## Exemplo 1: Conceder aos usuários acesso somente leitura baseado em uma tag
<a name="ex1"></a>

A política a seguir permite que os usuários usem as ações da AWS Data Pipeline API somente para leitura, mas somente com pipelines que tenham a tag “environment=production”. 

A ação ListPipelines da API não oferece suporte à autorização baseada em tags.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "datapipeline:Describe*",
        "datapipeline:GetPipelineDefinition",
        "datapipeline:ValidatePipelineDefinition",
        "datapipeline:QueryObjects"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "datapipeline:Tag/environment": "production"
        }
      }
    }
  ]
}
```

------

## Exemplo 2: Conceder aos usuários acesso total baseado em uma tag
<a name="ex2"></a>

A política a seguir permite que os usuários usem todas as ações da AWS Data Pipeline API, com exceção de ListPipelines, mas somente com pipelines que têm a tag “environment=test”.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "datapipeline:*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "datapipeline:Tag/environment": "test"
        }
      }
    }
  ]
}
```

------

## Exemplo 3: Conceder acesso total ao proprietário do pipeline
<a name="ex3"></a>

A política a seguir permite que os usuários usem todas as ações da AWS Data Pipeline API, mas somente com seus próprios pipelines.

## Exemplo 4: Conceder aos usuários acesso ao AWS Data Pipeline console
<a name="example4-grant-users-access-to-console"></a>

A política a seguir permite que os usuários criem e gerenciem um pipeline com o console do AWS Data Pipeline . 

Essa política inclui a ação de `PassRole` permissões para recursos específicos vinculados às `roleARN` AWS Data Pipeline necessidades dessas. Para obter mais informações sobre a `PassRole` permissão baseada em identidade (IAM), consulte a postagem do blog [Concedendo permissão para iniciar instâncias do EC2 com funções do IAM](https://aws.amazon.com/blogs/security/granting-permission-to-launch-ec2-instances-with-iam-roles-passrole-permission/) (permissão). PassRole

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [{
			"Action": [
				"cloudwatch:*",
				"datapipeline:*",
				"dynamodb:DescribeTable",
				"elasticmapreduce:AddJobFlowSteps",
				"elasticmapreduce:ListInstance*",
				"iam:AddRoleToInstanceProfile",
				"iam:CreateInstanceProfile",
				"iam:GetInstanceProfile",
				"iam:GetRole",
				"iam:GetRolePolicy",
				"iam:ListInstanceProfiles",
				"iam:ListInstanceProfilesForRole",
				"iam:ListRoles",
				"rds:DescribeDBInstances",
				"rds:DescribeDBSecurityGroups",
				"redshift:DescribeClusters",
				"redshift:DescribeClusterSecurityGroups",
				"s3:List*",
				"sns:ListTopics"
			],
			"Effect": "Allow",
			"Resource": [
				"*"
			]
		},
		{
			"Action": "iam:PassRole",
			"Effect": "Allow",
			"Resource": [
				"arn:aws:iam::*:role/DataPipelineDefaultResourceRole",
				"arn:aws:iam::*:role/DataPipelineDefaultRole"
			]
		}
	]
}
```

------

# Funções do IAM para AWS Data Pipeline
<a name="dp-iam-roles"></a>

AWS Data Pipeline usa AWS Identity and Access Management funções. As políticas de permissões associadas às funções do IAM determinam quais ações AWS Data Pipeline e seus aplicativos podem realizar e quais AWS recursos eles podem acessar. Para obter mais informações, consulte [Funções do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) no *Guia do usuário do IAM*.

AWS Data Pipeline requer duas funções do IAM:
+ **A função do pipeline** controla o AWS Data Pipeline acesso aos seus recursos da AWS. Nas definições de objetos de pipeline, o campo `role` especifica essa função.
+ **A função de instância do EC2** controla o acesso que os aplicativos executados nas instâncias do EC2, incluindo as instâncias do EC2 nos clusters do Amazon EMR, têm aos recursos. AWS Nas definições de objetos de pipeline, o campo `resourceRole` especifica essa função.

**Importante**  
Se você criou um pipeline antes de 3 de outubro de 2022 usando o AWS Data Pipeline console com funções padrão, AWS Data Pipeline criou o `DataPipelineDefaultRole` para você e anexou a política `AWSDataPipelineRole` gerenciada à função. A partir de 3 de outubro de 2022, a política gerenciada pelo `AWSDataPipelineRole` foi descontinuada e a função do pipeline deve ser especificada para um pipeline ao usar o console.  
Recomendamos que você analise os pipelines existentes e determine se `DataPipelineDefaultRole` está associado ao pipeline e se `AWSDataPipelineRole` está associado a essa função. Nesse caso, revise o acesso que essa política permite para garantir que ela seja adequada aos seus requisitos de segurança. Adicione, atualize ou substitua as políticas e declarações de política anexadas a essa função, conforme necessário. Como alternativa, você pode atualizar um pipeline para usar uma função criada com diferentes políticas de permissões.

## Exemplo de políticas de permissões para AWS Data Pipeline funções
<a name="dp-role-permissions-policy-examples"></a>

Cada função tem uma ou mais políticas de permissões anexadas que determinam os recursos de AWS que a função pode acessar e as ações que a função pode realizar. Este tópico fornece um exemplo de política de permissões para a função de pipeline. Ele também fornece o conteúdo da `AmazonEC2RoleforDataPipelineRole`, que é a política gerenciada para a função de instância padrão do EC2, `DataPipelineDefaultResourceRole`.

### Exemplo de política de permissões da função de pipeline
<a name="dp-role-example-policy"></a>

O exemplo de política a seguir tem como escopo permitir funções essenciais que AWS Data Pipeline exigem a execução de um pipeline com recursos do Amazon EC2 e do Amazon EMR. Ele também fornece permissões para acessar outros AWS recursos, como o Amazon Simple Storage Service e o Amazon Simple Notification Service, que muitos pipelines exigem. Se os objetos definidos em um pipeline não exigirem os recursos de um AWS serviço, recomendamos que você remova as permissões para acessar esse serviço. Por exemplo, se seu pipeline não definir um [Nó do Dynamo DBData](dp-object-dynamodbdatanode.md) ou usar a ação [SnsAlarm](dp-object-snsalarm.md), recomendamos que você remova as instruções de permissão para essas ações.
+ `111122223333`Substitua pelo ID AWS da sua conta.
+ Substitua `NameOfDataPipelineRole` pelo nome da função do pipeline (a função à qual essa política está anexada).
+ Substitua `NameOfDataPipelineResourceRole` pelo nome da função da instância EC2.
+ Substitua `us-west-1` pela região apropriada para sua aplicação.

### Política gerenciada padrão para a função de instância do EC2
<a name="dp-resource-role-example-policy"></a>

O conteúdo de `AmazonEC2RoleforDataPipelineRole` é mostrado abaixo. Essa é a política gerenciada anexada à função de recurso padrão para AWS Data Pipeline,`DataPipelineDefaultResourceRole`. Ao definir uma função de recurso para seu pipeline, recomendamos que você comece com essa política de permissões e, em seguida, remova as permissões para ações de AWS serviço que não são necessárias.

É exibida a versão 3 da política, que é a versão mais recente no momento da preparação deste artigo. Veja a versão mais recente da política usando o console do 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": ["*"]
    }]
}
```

------

## Criação AWS Data Pipeline e edição de funções do IAM para permissões de função
<a name="dp-iam-roles-new"></a>

Use os procedimentos a seguir para criar funções para AWS Data Pipeline usar o console do IAM. O processo consiste em duas etapas. Primeiro, você deve criar uma política de permissões para anexar à função. Em seguida, crie uma função e anexe a política a ela. Depois de criar uma função, você pode alterar as permissões da função ao anexar e desanexar políticas de permissões.

**nota**  
Quando você cria funções para AWS Data Pipeline usar o console conforme descrito abaixo, o IAM cria e anexa as políticas de confiança apropriadas que a função exige.

**Para criar uma política de permissões para usar com uma função para AWS Data Pipeline**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Políticas** e, em seguida, **Criar política**.

1. <a name="step3"></a>Selecione a guia **JSON**.

1. Se você estiver criando uma função de pipeline, copie e cole o conteúdo do exemplo de política em [Exemplo de política de permissões da função de pipeline](#dp-role-example-policy), editando-o conforme apropriado para seus requisitos de segurança. Como alternativa, se você estiver criando uma função de instância de EC2 personalizada, faça o mesmo com o exemplo em [Política gerenciada padrão para a função de instância do EC2](#dp-resource-role-example-policy).

1. Selecione **Revisar política**.

1. Insira um nome e uma descrição opcional, como, por exemplo, `MyDataPipelineRolePolicy`, e uma **Descrição** opcional e, então, selecione **Criar política**.

1. Anote o nome da política. Você precisa dele ao criar a função.

**Para criar uma função do IAM para AWS Data Pipeline**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Funções** e, então, selecione **Criar função**.

1. Em **Selecione um caso de uso**, selecione **Pipeline de dados**.

1. Em **Selecione seu caso de uso**, siga um destes procedimentos:
   + Selecione `Data Pipeline` para criar uma função de pipeline.
   + Selecione `EC2 Role for Data Pipeline` para criar uma função de recurso.

1. Escolha **Próximo: Permissões**.

1. Se a política padrão para AWS Data Pipeline estiver listada, siga as etapas a seguir para criar a função e editá-la de acordo com as instruções do próximo procedimento. Caso contrário, insira o nome da política que você criou no procedimento acima e selecione-a na lista.

1. Selecione **Próximo: Tags**, insira as tags a serem adicionadas à função e selecione **Próximo: Revisão**.

1. Insira um nome para a função, como, por exemplo, `MyDataPipelineRole`, e uma **Descrição** opcional e, em seguida, selecione **Criar função**.

**Para anexar ou desanexar uma política de permissões para uma função do IAM para AWS Data Pipeline**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Funções**

1. Na caixa de pesquisa, comece digitando o nome da função que você deseja editar — por exemplo, **DataPipelineDefaultRole**ou **MyDataPipelineRole**— e escolha o **nome da função na lista**.

1. Na guia **Permissões**, faça o seguinte:
   + Para desanexar uma política de permissões, em **Políticas de permissões**, selecione o botão remover na extremidade direita da entrada da política. Selecione **Desanexar** quando solicitado para confirmar.
   + Para anexar uma política que você criou anteriormente, selecione **Anexar políticas**. Na caixa de pesquisa, digite o nome da política que você deseja editar, selecione-o na lista e selecione **Anexar política**.

## Alterar as funções de um pipeline existente
<a name="dp-iam-change-console"></a>

Se você quiser atribuir uma função de pipeline ou função de recurso diferente a um pipeline, você pode usar o editor de arquitetura no AWS Data Pipeline console.

**Para editar as funções atribuídas a um pipeline usando o console**

1. Abra o AWS Data Pipeline console em [https://console.aws.amazon.com/datapipeline/](https://console.aws.amazon.com/datapipeline/).

1. Selecione o pipeline na lista e selecione **Ações**, **Editar**.

1. No painel direito do editor de arquitetura, selecione **Outros.**

1. Nas listas **Função do Recurso** e **Função**, escolha as funções AWS Data Pipeline que você deseja atribuir e, em seguida, escolha **Salvar**.