Concatenazione di ruoli IAM 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à.

Concatenazione di ruoli IAM in Amazon Neptune

Importante

La nuova funzionalità di caricamento in blocco multi-account introdotta nel rilascio del motore 1.2.1.0.R3, che sfrutta il concatenamento dei ruoli IAM, può in alcuni casi causare un peggioramento delle prestazioni di caricamento in blocco. 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 ulteriori informazioni, consulta Utilizzo di ruoli IAM.

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.

  • Il nome della risorsa Amazon (ARN) del ruolo successivo in un elemento Resource.

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 VPC (STS)

Il loader Neptune richiede un AWS STS endpoint VPC per quando concatenate i ruoli IAM per accedere privatamente alle API tramite indirizzi IP privati. AWS STS Puoi connetterti direttamente da un Amazon VPC a AWS STS un endpoint VPC in modo sicuro e scalabile. L'utilizzo di un endpoint VPC dell'interfaccia offre un migliore assetto di sicurezza in quanto non è necessario aprire firewall per il traffico in uscita. Offre inoltre gli altri vantaggi derivanti dall'utilizzo degli endpoint Amazon VPC.

Quando si utilizza un endpoint VPC, 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 vincoli di larghezza di banda sul traffico di rete. Per ulteriori informazioni, consulta Utilizzo di endpoint VPC dell'interfaccia AWS STS.

Per configurare l'accesso per (STS) AWS Security Token Service
  1. Accedi AWS Management Console e apri la console Amazon VPC 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 il VPC che contiene l'istanza database Neptune e l'istanza EC2.

  6. Seleziona la casella di controllo accanto alla sottorete in cui è presente l'istanza EC2. 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: consente di assegnare indirizzi IPv4 alle interfacce di rete dell'endpoint. Questa opzione è supportata solo se tutte le sottoreti selezionate dispongono di intervalli di indirizzi IPv4.

    • IPv6: consente di assegnare indirizzi IPv6 alle interfacce di rete dell'endpoint. Questa opzione è supportata solo se tutte le sottoreti selezionate sono sottoreti solo IPv6.

    • Dualstack: consente di assegnare sia indirizzi IPv4 che IPv6 alle interfacce di rete dell'endpoint. Questa opzione è supportata solo se tutte le sottoreti selezionate dispongono di intervalli di indirizzi IPv4 e IPv6.

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

  9. Per Policy, seleziona Full access (Accesso completo) per consentire tutte le operazioni da parte di tutti i principali su tutte le risorse dell'endpoint VPC. In caso contrario, seleziona Custom (Personalizza) per allegare una policy dell'endpoint VPC in grado di verificare le autorizzazioni di cui dispongono i principali per eseguire operazioni sulle risorse dell'endpoint VPC. Questa opzione è disponibile solo se il servizio supporta le policy dell'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 ulteriori informazioni sulla creazione dell'endpoint, consulta Endpoint VPC nella Guida per l'utente di Amazon VPC. Tieni presente che l'endpoint VPC di Amazon STS è un prerequisito obbligatorio per il concatenamento dei ruoli IAM.

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 dello strumento di caricamento includendo un elenco separato da virgole di ARN di ruoli nel parametro 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" }'