

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á.

# Pré-requisitos: perfil do IAM e acesso ao Amazon S3
<a name="bulk-load-tutorial-IAM"></a>

Carregar dados de um bucket do Amazon Simple Storage Service (Amazon S3) requer AWS Identity and Access Management uma função (IAM) que tenha acesso ao bucket. O Amazon Neptune assume essa função de carregar os dados.

**nota**  
Você poderá carregar dados criptografados do Amazon S3 se ele foi criptografado usando o modo `SSE-S3` do Amazon S3. Nesse caso, o Neptune pode personificar suas credenciais e emitir chamadas `s3:getObject` em seu nome.  
Você também pode carregar dados criptografados do Amazon S3 que foram criptografados usando o modo `SSE-KMS`, desde que o perfil do IAM inclua as permissões necessárias para acessar o AWS KMS. Sem AWS KMS as permissões adequadas, a operação de carregamento em massa falha e retorna uma `LOAD_FAILED` resposta.  
No momento, o Neptune não é compatível com o carregamento de dados criptografados do Amazon S3 usando o modo `SSE-C`.

As seções a seguir mostram como usar uma política do IAM gerenciada para criar um perfil do IAM para acessar recursos do Amazon S3 e, depois, associar o perfil ao seu cluster do Neptune.

**Topics**
+ [Criar um perfil do IAM para permitir que o Amazon Neptune acesse os recursos do Amazon S3](bulk-load-tutorial-IAM-CreateRole.md)
+ [Adicionar o perfil do IAM a um cluster do Amazon Neptune](bulk-load-tutorial-IAM-add-role-cluster.md)
+ [Criar o endpoint da VPC do Amazon S3](bulk-load-tutorial-vpc.md)
+ [Encadear perfis do IAM no Amazon Neptune](bulk-load-tutorial-chain-roles.md)

**nota**  
Essas instruções exigem que você tenha acesso ao console do IAM e permissões para gerenciar perfis e políticas do IAM. Para obter mais informações, consulte [Permissões para trabalhar no console AWS de gerenciamento](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_permissions-required.html#Credentials-Permissions-overview-console) no *Guia do usuário do IAM*.  
O console do Amazon Neptune exige que o usuário tenha as seguintes permissões do IAM para associar o perfil ao cluster do Neptune:  

```
iam:GetAccountSummary on resource: *
iam:ListAccountAliases on resource: *
iam:PassRole on resource: * with iam:PassedToService restricted to rds.amazonaws.com
```

# Criar um perfil do IAM para permitir que o Amazon Neptune acesse os recursos do Amazon S3
<a name="bulk-load-tutorial-IAM-CreateRole"></a>

Use a política gerenciada do IAM `AmazonS3ReadOnlyAccess` para criar um perfil do IAM que permitirá ao Amazon Neptune acessar os recursos do Amazon S3.

**Como criar um perfil do IAM que permita ao Neptune acessar o Amazon S3**

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 **Perfis**.

1. Escolha **Criar Perfil**.

1. Em **Serviço da AWS **, escolha **S3**.

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

1. Use a caixa de filtro para filtrar pelo termo **S3** e marque a caixa ao lado de **ReadOnlyAccessAmazonS3**.
**nota**  
Essa política concede as permissões `s3:Get*` e `s3:List*` a todos os buckets. As próximas etapas restringem o acesso à função usando a política de confiança.  
O carregador requer apenas as permissões `s3:Get*` e `s3:List*` para o bucket a partir do qual você está realizando o carregamento, para que também possa restringir essas permissões pelo recurso do Amazon S3.  
Se o bucket do S3 foi criptografado, você precisa adicionar permissões `kms:Decrypt`

1. Escolha **Próximo: revisar**.

1. Defina **Nome do perfil** como um nome para o perfil do IAM, por exemplo, `NeptuneLoadFromS3`. Você também pode adicionar um valor **Descrição do perfil**, como: "Permitir que o Neptune acesse os recursos do Amazon S3 em seu nome".

1. Selecione **Criar função**.

1. No painel de navegação, escolha **Perfis**.

1. No campo **Search (Pesquisar)**, digite o nome da função que você criou e selecione a função quando ela aparecer na lista.

1. Na guia **Trust Relationships (Relacionamentos confiáveis)**, selecione **Edit Trust Relationship (Editar relacionamento confiável)**.

1. No campo de texto, cole a política de confiança a seguir.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "rds.amazonaws.com"
           ]
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. Selecione **Atualizar política de confiança**.

1. Siga as etapas em [Adicionar o perfil do IAM a um cluster do Amazon Neptune](bulk-load-tutorial-IAM-add-role-cluster.md).

# Adicionar o perfil do IAM a um cluster do Amazon Neptune
<a name="bulk-load-tutorial-IAM-add-role-cluster"></a>

Use o console para adicionar o perfil do IAM a um cluster do Amazon Neptune. Isso permite que qualquer instância de banco de dados do Neptune no cluster assuma o perfil e carregue do Amazon S3.

**nota**  
O console do Amazon Neptune exige que o usuário tenha as seguintes permissões do IAM para associar o perfil ao cluster do Neptune:  

```
iam:GetAccountSummary on resource: *
iam:ListAccountAliases on resource: *
iam:PassRole on resource: * with iam:PassedToService restricted to rds.amazonaws.com
```

**Como adicionar um perfil do IAM a um cluster do Amazon Neptune**

1. [Faça login no AWS Management Console e abra o console do Amazon Neptune em casa. https://console.aws.amazon.com/neptune/](https://console.aws.amazon.com/neptune/home)

1. No painel de navegação, escolha **Bancos de dados**.

1. Selecione o identificador de cluster que deseja modificar.

1. Selecione a guia **Conectividade e segurança**.

1. Na seção Perfis do IAM, selecione o perfil criado na seção anterior.

1. Escolha **Add role (adicionar função)**.

1. Aguarde até que o perfil do IAM se torne acessível para o cluster para usá-lo.

# Criar o endpoint da VPC do Amazon S3
<a name="bulk-load-tutorial-vpc"></a>

O carregador do Neptune exige um endpoint da VPC do tipo Gateway para Amazon S3.

**Para configurar o acesso ao Amazon S3**

1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon VPC em. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. No painel de navegação, escolha **Endpoints**.

1. Escolha **Create Endpoint** (Criar endpoint).

1. Selecione o **Nome do serviço** `com.amazonaws.region.s3` para o endpoint do tipo Gateway.
**nota**  
Se a região aqui estiver incorreta, verifique se a região do console está correta.

1. Selecione a VPC que contém a instância de banco de dados do Neptune (ela está listada para a instância de banco de dados no console do Neptune).

1. Marque a caixa de seleção ao lado das tabelas de rotas associadas às sub-redes relacionados ao cluster. Se tiver apenas uma tabela de rotas, você deverá selecionar essa caixa.

1. Escolha **Criar endpoint**.

Para obter informações sobre criação do endpoint, consulte [VPC Endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html#create-vpc-endpoint) no *Guia do usuário da Amazon VPC*. Para obter informações sobre as limitações dos endpoints da VPC, consulte [VPC Endpoints for Amazon S3](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html).

**Próximas etapas**  
Agora que concedeu acesso ao bucket do Amazon S3, você pode se preparar para carregar os dados. Para obter informações sobre os formatos compatíveis, consulte [Formatos de dados de carga](bulk-load-tutorial-format.md).

# Encadear perfis do IAM no Amazon Neptune
<a name="bulk-load-tutorial-chain-roles"></a>

**Importante**  
O novo atributo de carregamento em massa entre contas introduzido na [versão 1.2.1.0.R3 do mecanismo](engine-releases-1.2.1.0.R3.md), que utiliza o encadeamento de perfis do IAM, pode, em alguns casos, causar degradação do desempenho de carregamento em massa. Como resultado, as atualizações das versões do mecanismo compatíveis com esse atributo foram temporariamente suspensas até que o problema seja resolvido.

Ao associar um perfil ao cluster, seu cluster poderá assumir esse perfil para obter acesso aos dados armazenados no Amazon S3. A partir da [versão 1.2.1.0.R3 do mecanismo](engine-releases-1.2.1.0.R3.md), se esse perfil não tiver acesso a todos os recursos necessários, você poderá encadear um ou mais perfis adicionais que o cluster poderá assumir para obter acesso a outros recursos. Cada perfil na cadeia assume o próximo perfil na cadeia, até que o cluster assuma o perfil no final da cadeia.

Para encadear perfis, você estabelece uma relação de confiança entre eles. Por exemplo, para encadear o `RoleB` com o `RoleA`, o `RoleA` precisa ter uma política de permissões que o possibilite assumir o `RoleB` e `RoleB` deve ter uma política de confiança que o permita transmitir as permissões de volta ao `RoleA`. Para obter mais informações, consulte [Using IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html).

O primeiro perfil da cadeia deve ser associado ao cluster que está carregando dados.

O primeiro perfil e cada perfil subsequente que assumir o perfil seguinte na cadeia devem ter:
+ Uma política que inclua uma declaração específica com o efeito `Allow` na ação `sts:AssumeRole`.
+ O nome do recurso da Amazon (ARN) do próximo perfil em um elemento `Resource`.

**nota**  
O bucket de destino do Amazon S3 deve estar na mesma AWS região do cluster.

## Acesso entre contas usando perfis encadeados
<a name="bulk-load-tutorial-chain-cross-account"></a>

É possível conceder acesso entre contas encadeando um perfil ou perfis pertencentes a outra conta. Quando o cluster assume temporariamente um perfil pertencente a outra conta, ele pode obter acesso aos recursos dessa conta.

Por exemplo, suponha que a **Conta A** queira acessar dados em um bucket do Amazon S3 que pertença à **Conta B**:
+ A **conta A cria uma** função AWS de serviço para Neptune `RoleA` chamada e a anexa a um cluster.
+ A **Conta B** cria um perfil chamado `RoleB` que é autorizado a acessar os dados no bucket da **Conta B**.
+ A **Conta A** associa uma política de permissões ao `RoleA` que permite a ele assumir o `RoleB`.
+ A **Conta B** atribui uma política de confiança ao `RoleB` que permite a ele transmitir as permissões de volta ao `RoleA`.
+ Para acessar os dados no bucket da **Conta B**, a **Conta A** executa um comando do carregador usando um parâmetro `iamRoleArn` que encadeia `RoleA` e `RoleB`. Durante a operação do carregador, `RoleA` assume temporariamente `RoleB` para acessar o bucket do Amazon S3 na **Conta B**.

![\[Diagrama que ilustra o acesso entre contas usando perfis encadeados\]](http://docs.aws.amazon.com/pt_br/neptune/latest/userguide/images/cross-account-bulk-load.png)


Por exemplo, o `RoleA` teria uma política de confiança que estabelecesse uma relação de confiança com o Neptune:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
          "Service": "rds.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

O `RoleA` também teria uma política de permissão que permitisse a ele assumir o `RoleB`, que é de propriedade da **Conta B**:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Stmt1487639602000",
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": "arn:aws:iam::111122223333:role/RoleB"
        }
    ]
}
```

------

Por outro lado, o `RoleB` teria uma política de confiança para estabelecer uma relação de confiança com o `RoleA`:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/RoleA"
            }
        }
    ]
}
```

------

O `RoleB` também precisaria de permissão para acessar dados no bucket do Amazon S3 localizado na **Conta B**.

## Criação de um AWS Security Token Service endpoint VPC (STS)
<a name="bulk-load-tutorial-sts-endpoint"></a>

O carregador Neptune exige um VPC AWS STS endpoint para quando você está encadeando funções do IAM para acesso privado por meio de endereços IP privados. AWS STS APIs Você pode se conectar diretamente de uma Amazon VPC a AWS STS um VPC Endpoint de forma segura e escalável. Quando você usa um endpoint da VPC de interface, ele fornece um melhor procedimento de segurança, pois você não precisa abrir firewalls de tráfego de saída. Ele também oferece os outros benefícios do uso de endpoints da Amazon VPC.

Ao usar um VPC Endpoint, o tráfego para AWS STS não é transmitido pela Internet e nunca sai da rede Amazon. Sua VPC está conectada com segurança, AWS STS sem riscos de disponibilidade ou restrições de largura de banda no tráfego da rede. Para obter mais informações, consulte [Using AWS STS interface VPC endpoints](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts_vpce.html).

**Para configurar o acesso para AWS Security Token Service (STS)**

1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon VPC em. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. No painel de navegação, escolha **Endpoints**.

1. Escolha **Create Endpoint** (Criar endpoint).

1. Selecione o **Nome do serviço** `com.amazonaws.region.sts` para o endpoint do tipo Interface.

1. Selecione a **VPC** que contém a instância de banco de dados do Neptune e a instância do EC2.

1. Marque a caixa de seleção ao lado da sub-rede na qual a instância do EC2 está presente. Não é possível selecionar várias sub-redes em uma mesma zona de disponibilidade.

1. Em IP address type (Tipo de endereço IP), escolha uma das seguintes opções:
   + **IPv4**— Atribua IPv4 endereços às interfaces de rede do seu terminal. Essa opção é suportada somente se todas as sub-redes selecionadas tiverem intervalos de IPv4 endereços.
   + **IPv6**— Atribua IPv6 endereços às interfaces de rede do seu terminal. Essa opção é suportada somente se todas as sub-redes selecionadas forem IPv6 sub-redes somente.
   + **Dualstack** — atribua IPv6 endereços IPv4 e endereços às suas interfaces de rede de endpoints. Essa opção é suportada somente se todas as sub-redes selecionadas tiverem intervalos de IPv6 endereços IPv4 e ambos.

1. Em **Grupos de segurança**, selecione os grupos de segurança para associar às interfaces de rede do endpoint para o endpoint da VPC. Você precisaria selecionar todos os grupos de segurança associados à instância de banco de dados do Neptune e à instância do EC2.

1. Em **Policy** (Política), selecione **Full access** (Acesso total) para permitir todas as operações de todas as entidades principais em todos os recursos no endpoint da VPC. Ou então selecione **Custom** (Personalizar) para anexar uma política de endpoint da VPC que controle as permissões das entidades principais para realizar ações em recursos sobre o endpoint da VPC. Essa opção ficará disponível somente se o serviço for compatível com as políticas de endpoint da VPC. Para obter mais informações, consulte [Endpoint policies](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html).

1. (*Opcional*) Para adicionar uma tag, escolha **Adicionar nova tag** e insira a chave e o valor da tag que você deseja.

1. Escolha **Criar endpoint**.

Para obter mais informações sobre criação de endpoints, consulte [VPC Endpoints](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) no Guia do usuário do Amazon VPC. Observe que o endpoint da VPC do Amazon STS é um pré-requisito obrigatório para o encadeamento de perfis do IAM.

Agora que você concedeu acesso ao AWS STS endpoint, pode se preparar para carregar os dados. Para obter informações sobre os formatos compatíveis, consulte [Formatos de dados de carga](bulk-load-tutorial-format.md).

## Encadear perfis em um comando de carregador
<a name="bulk-load-tutorial-loader-chain"></a>

Você pode especificar o encadeamento de funções ao executar um comando do carregador incluindo uma lista de funções ARNs separada por vírgula no parâmetro. `iamRoleArn`

Embora na maioria das vezes você precise ter apenas dois perfis em uma cadeia, certamente é possível encadear três ou mais. Por exemplo, esse comando do carregador encadeia três perfis:

```
curl -X POST https://localhost:8182/loader \
  -H 'Content-Type: application/json' \
  -d '{
        "source" : "s3://(the target bucket name)/(the target date file name)",
        "iamRoleArn" : "arn:aws:iam::(Account A ID):role/(RoleA),arn:aws:iam::(Account B ID):role/(RoleB),arn:aws:iam::(Account C ID):role/(RoleC)",
        "format" : "csv",
        "region" : "us-east-1"
      }'
```