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á.
Encadear perfis do IAM no Amazon Neptune
Importante
O novo atributo de carregamento em massa entre contas introduzido na versão 1.2.1.0.R3 do mecanismo, 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, 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.
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çãosts: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
É 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 oRoleB
.A Conta B atribui uma política de confiança ao
RoleB
que permite a ele transmitir as permissões de volta aoRoleA
.Para acessar os dados no bucket da Conta B, a Conta A executa um comando do carregador usando um parâmetro
iamRoleArn
que encadeiaRoleA
eRoleB
. Durante a operação do carregador,RoleA
assume temporariamenteRoleB
para acessar o bucket do Amazon S3 na Conta B.

Por exemplo, o RoleA
teria uma política de confiança que estabelecesse uma relação de confiança com o Neptune:
{ "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:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1487639602000", "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::
(Account B ID)
: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
:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::
(Account A ID)
: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)
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.
Para configurar o acesso para AWS Security Token Service (STS)
Faça login no AWS Management Console e abra o console da Amazon VPC em. https://console.aws.amazon.com/vpc/
No painel de navegação, escolha Endpoints.
Escolha Create Endpoint (Criar endpoint).
Selecione o Nome do serviço
com.amazonaws.region.sts
para o endpoint do tipo Interface.Escolha a VPC que contém sua instância e instância de banco de dados Neptune. EC2
Marque a caixa de seleção ao lado da sub-rede na qual sua EC2 instância está presente. Não é possível selecionar várias sub-redes em uma mesma zona de disponibilidade.
-
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.
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 anexados à sua instância e instância de banco de dados Neptune. EC2
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.
(Opcional) Para adicionar uma tag, escolha Adicionar nova tag e insira a chave e o valor da tag que você deseja.
Escolha Criar endpoint.
Para obter mais informações sobre criação de endpoints, consulte VPC Endpoints 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.
Encadear perfis em um comando de carregador
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" }'