Concatenamento IAM dei ruoli in Amazon Neptune - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Concatenamento IAM dei ruoli in Amazon Neptune

Importante

La nuova funzionalità di caricamento in blocco tra account introdotta nella versione 1.2.1.0.R3 del motore che sfrutta il concatenamento dei IAM ruoli può in alcuni casi causare un peggioramento delle prestazioni di carico di massa. Di conseguenza, gli aggiornamenti ai rilasci del motore che supportano questa funzionalità sono stati temporaneamente sospesi fino alla risoluzione del problema.

Quando si collega un ruolo al cluster, il cluster può assumere tale ruolo per accedere ai dati archiviati in Amazon S3. A partire dal rilascio del motore 1.2.1.0.R3, se quel ruolo non ha accesso a tutte le risorse necessarie, è possibile concatenare uno o più ruoli aggiuntivi che il cluster può assumere per accedere ad altre risorse. Ogni ruolo nella catena assume il ruolo successivo nella catena, fino a quando il cluster non assume il ruolo alla fine della catena.

Per concatenare i ruoli, è possibile stabilire una relazione di trust tra di essi. Ad esempio, per concatenare RoleB a RoleA, RoleA deve disporre di una policy di autorizzazioni che gli consenta di assumere RoleB e RoleB deve disporre di una policy di trust che gli consenta di passare le proprie autorizzazioni a RoleA. Per IAMulteriori informazioni, vedere Utilizzo dei ruoli.

Il primo ruolo di una catena deve essere collegato al cluster che sta caricando i dati.

Il primo ruolo e ogni ruolo successivo che assume il ruolo seguente nella catena devono avere:

  • Una policy che include una dichiarazione specifica con l'effetto Allow sull'azione sts:AssumeRole.

  • L'Amazon Resource Name (ARN) del ruolo successivo in un Resource elemento.

Nota

Il bucket Amazon S3 di destinazione deve trovarsi nella stessa AWS regione del cluster.

Accesso multi-account tramite ruoli concatenati

È possibile concedere l'accesso multi-account concatenando uno o più ruoli che appartengono a un altro account. Quando il cluster assume temporaneamente un ruolo appartenente a un altro account, può accedere alle relative risorse.

Supponiamo, ad esempio, che l'Account A voglia accedere ai dati in un bucket Amazon S3 che appartiene all'Account B:

  • L'account A crea un ruolo AWS di servizio RoleA denominato per Neptune e lo collega a un cluster.

  • L'Account B crea un ruolo denominato RoleB autorizzato ad accedere ai dati in un bucket dell'Account B.

  • L'Account A collega una policy di autorizzazioni a RoleA che gli consente di assumere RoleB.

  • L'Account B collega una policy di trust a RoleB che gli consente di passare le proprie autorizzazioni a RoleA.

  • Per accedere ai dati nel bucket dell'Account B, l'Account A esegue un comando dello strumento di caricamento con un parametro iamRoleArn che concatena RoleA e RoleB. Per la durata dell'operazione loader, RoleA assume temporaneamente il ruolo RoleB per accedere al bucket Amazon S3 nell'Account B.

Diagramma che illustra l'accesso multi-account tramite ruoli concatenati

Ad esempio, RoleA avrà una policy di trust che stabilisce una relazione di trust con Neptune:

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

RoleA avrà anche una policy di autorizzazione che gli consente di assumere il ruolo RoleB, che è di proprietà dell'Account B:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1487639602000", "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::(Account B ID):role/RoleB" } ] }

Al contrario, RoleB avrà una policy di trust per stabilire una relazione di trust con RoleA:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": { "AWS": "arn:aws:iam::(Account A ID):role/RoleA" } } ] }

RoleB avrà inoltre bisogno dell'autorizzazione per accedere ai dati nel bucket Amazon S3 situato nell'Account B.

Creazione di un AWS Security Token Service endpoint () STS VPC

Il loader Neptune richiede VPC un endpoint AWS STS per quando si IAM concatenano ruoli a cui accedere privatamente tramite indirizzi IP privati. AWS STS APIs Puoi connetterti direttamente da Amazon VPC a AWS STS un VPC Endpoint in modo sicuro e scalabile. Quando si utilizza un VPC endpoint di interfaccia, si ottiene un livello di sicurezza migliore perché non è necessario aprire firewall per il traffico in uscita. Offre inoltre gli altri vantaggi dell'utilizzo degli VPC endpoint Amazon.

Quando si utilizza un VPC endpoint, il traffico verso AWS STS non viene trasmesso su Internet e non esce mai dalla rete Amazon. Il tuo VPC è connesso in modo sicuro AWS STS senza rischi di disponibilità o limiti di larghezza di banda sul traffico di rete. Per ulteriori informazioni, consulta Utilizzo degli endpoint dell'interfaccia. AWS STS VPC

Per configurare l'accesso per AWS Security Token Service () STS
  1. Accedi a AWS Management Console e apri la VPC console Amazon all'indirizzo https://console.aws.amazon.com/vpc/.

  2. Nel pannello di navigazione, seleziona Endpoints (Endpoint).

  3. Scegliere Create Endpoint (Crea endpoint).

  4. Scegli il Nome servizio com.amazonaws.region.sts per l'endpoint di tipo Interfaccia.

  5. Scegli VPCquello che contiene l'istanza e l'istanza di Neptune DB. EC2

  6. Seleziona la casella di controllo accanto alla sottorete in cui è presente l'EC2istanza. Non è possibile selezionare più sottoreti dalla stessa zona di disponibilità.

  7. Per IP address type (Tipo di indirizzo IP), seleziona una delle opzioni seguenti:

    • IPv4— Assegna IPv4 indirizzi alle interfacce di rete degli endpoint. Questa opzione è supportata solo se tutte le sottoreti selezionate hanno intervalli di indirizzi. IPv4

    • IPv6— Assegna IPv6 indirizzi alle interfacce di rete degli endpoint. Questa opzione è supportata solo se tutte le sottoreti selezionate sono sottoreti -only. IPv6

    • Dualstack: assegna entrambi gli indirizzi alle interfacce di rete degli endpoint. IPv4 IPv6 Questa opzione è supportata solo se tutte le sottoreti selezionate hanno entrambi gli intervalli di indirizzi. IPv4 IPv6

  8. Per Gruppi di sicurezza, selezionare i gruppi di sicurezza da associare alle interfacce di rete degli endpoint per l'endpoint. VPC È necessario selezionare tutti i gruppi di sicurezza collegati all'istanza e all'istanza di Neptune DB. EC2

  9. Per Policy, seleziona Accesso completo per consentire tutte le operazioni da parte di tutti i principali su tutte le risorse dell'endpoint. VPC Altrimenti, seleziona Personalizzato per allegare una policy sull'VPCendpoint che controlli le autorizzazioni di cui dispongono i responsabili per eseguire azioni sulle risorse dell'endpoint. VPC Questa opzione è disponibile solo se il servizio supporta le policy degli endpoint. VPC Per ulteriori informazioni, consulta Policy di endpoint.

  10. (Facoltativo) Per aggiungere un tag, scegli Aggiungi nuovo tag e immetti la chiave e il valore del tag desiderati.

  11. Seleziona Crea endpoint.

Per informazioni sulla creazione dell'endpoint, consulta VPCEndpoints nella Amazon VPC User Guide. Tieni presente che Amazon STS VPC Endpoint è un prerequisito obbligatorio per il concatenamento dei IAM ruoli.

Ora che hai concesso l'accesso all' AWS STS endpoint, puoi prepararti a caricare i dati. Per ulteriori informazioni sui formati di dati supportati, consulta Formati dei dati di caricamento.

Concatenamento dei ruoli all'interno di un comando dello strumento di caricamento

È possibile specificare il concatenamento dei ruoli quando si esegue un comando loader includendo un elenco di ruoli separati da virgole nel parametro. ARNs iamRoleArn

Sebbene nella maggior parte dei casi sia necessario avere solo due ruoli in una catena, è sicuramente possibile concatenarne tre o più. Ad esempio, questo comando dello strumento di caricamento concatena tre ruoli:

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" }'