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à.
Accesso a DAX su più account AWS
Immagina di avere un cluster DynamoDB Accelerator (DAX) in esecuzione in AWS un account (account A) e che il cluster DAX debba essere accessibile da un'istanza Amazon Elastic Compute Cloud (Amazon EC2) in un altro account (account B). AWS In questo tutorial puoi eseguire questa operazione avviando un'istanza EC2 nell'account B con un ruolo dall'account B. Quindi puoi utilizzare le credenziali di sicurezza temporanee dell'istanza EC2 per assumere un ruolo IAM dall'account A. Infine, utilizzi le credenziali di sicurezza temporanee per assumere il ruolo IAM nell'account A per effettuare chiamate all'applicazione tramite una connessione peering di Amazon VPC al cluster DAX nell'account A. Per eseguire queste attività è necessario l'accesso amministrativo in entrambi gli account AWS .
Importante
Non è possibile fare in modo che un cluster DAX acceda a una tabella DynamoDB da un account diverso.
Argomenti
Configurazione di IAM
-
Crea un file di testo denominato
AssumeDaxRoleTrust.jsoncon il seguente contenuto che consente a Amazon EC2 di lavorare per conto tuo. -
Nell'account B, creare un ruolo che Amazon EC2 può utilizzare durante l'avvio delle istanze.
aws iam create-role \ --role-name AssumeDaxRole \ --assume-role-policy-document file://AssumeDaxRoleTrust.json -
Crea un file di testo denominato
AssumeDaxRolePolicy.jsoncon il seguente contenuto, che consente al codice in esecuzione sull'istanza EC2 nell'account B di assumere un ruolo IAM nell'account A. Sostituiscilo con l'ID effettivo dell'account A.accountA -
Aggiungi la policy al ruolo appena creato.
aws iam put-role-policy \ --role-name AssumeDaxRole \ --policy-name AssumeDaxRolePolicy \ --policy-document file://AssumeDaxRolePolicy.json -
Crea un profilo di istanza per consentire alle istanze di utilizzare il ruolo.
aws iam create-instance-profile \ --instance-profile-name AssumeDaxInstanceProfile -
Associa il ruolo al profilo di istanza.
aws iam add-role-to-instance-profile \ --instance-profile-name AssumeDaxInstanceProfile \ --role-name AssumeDaxRole -
Crea un file di testo denominato
DaxCrossAccountRoleTrust.jsoncon il contenuto seguente che consente all'account B di assumere un ruolo dell'account A. SostituisciaccountBcon l'ID effettivo dell'account B. -
Nell'account A, crea il ruolo che l'account B può assumere.
aws iam create-role \ --role-name DaxCrossAccountRole \ --assume-role-policy-document file://DaxCrossAccountRoleTrust.json -
Crea un file di testo denominato
DaxCrossAccountPolicy.jsonche consente l'accesso al cluster DAX. Sostituiscilodax-cluster-arncon l'Amazon Resource Name (ARN) corretto del tuo cluster DAX. -
Nell'account A, aggiungi la policy al ruolo.
aws iam put-role-policy \ --role-name DaxCrossAccountRole \ --policy-name DaxCrossAccountPolicy \ --policy-document file://DaxCrossAccountPolicy.json
Configurazione di un VPC
-
Individuare il gruppo di sottoreti del cluster DAX dell'account A. Sostituiscilo
cluster-namecon il nome del cluster DAX a cui deve accedere l'account B.aws dax describe-clusters \ --cluster-namecluster-name--query 'Clusters[0].SubnetGroup' -
Usandolo
subnet-group, trova il VPC del cluster.aws dax describe-subnet-groups \ --subnet-group-namesubnet-group\ --query 'SubnetGroups[0].VpcId' -
Usandolo
vpc-id, trova il CIDR del VPC.aws ec2 describe-vpcs \ --vpcvpc-id\ --query 'Vpcs[0].CidrBlock' -
Dall'account B, crea un VPC utilizzando un CIDR diverso, non sovrapposto rispetto a quello trovato nel passaggio precedente. Quindi, crea almeno una subnet. È possibile utilizzare la procedura guidata per la creazione di VPC in o in. AWS Management Console AWS CLI
-
Dall'account B, richiedi una connessione peering al VPC dell'account A come descritto in Creazione e accettazione di una connessione peering VPC. Dall'account A, accetta la connessione.
-
Dall'account B, trova la tabella di routing del nuovo VPC. Sostituisci
vpc-idcon l'ID del VPC che hai creato nell'account B.aws ec2 describe-route-tables \ --filters 'Name=vpc-id,Values=vpc-id' \ --query 'RouteTables[0].RouteTableId' -
Aggiungi un percorso per inviare il traffico destinato al CIDR dell'account A alla connessione peering VPC. Ricordati di sostituirli
user input placeholdercon i valori corretti per i tuoi account.aws ec2 create-route \ --route-table-idaccountB-route-table-id\ --destination-cidraccountA-vpc-cidr\ --vpc-peering-connection-idpeering-connection-id -
Dall'account A, trova la tabella di routing del cluster DAX utilizzando la tabella di routing
vpc-idche hai trovato in precedenza.aws ec2 describe-route-tables \ --filters 'Name=vpc-id, Values=accountA-vpc-id' \ --query 'RouteTables[0].RouteTableId' -
Dall'account A, aggiungi un percorso per inviare il traffico destinato al CIDR dell'account B alla connessione peering VPC. Sostituisci
user input placeholderognuna con i valori corretti per i tuoi account.aws ec2 create-route \ --route-table-idaccountA-route-table-id\ --destination-cidraccountB-vpc-cidr\ --vpc-peering-connection-idpeering-connection-id -
Dall'account B, avvia un'istanza EC2 nel VPC creato in precedenza. Assegnarle il nome
AssumeDaxInstanceProfile. È possibile utilizzare la procedura guidata di avvio in AWS Management Console o in. AWS CLI Prendi nota del gruppo di sicurezza dell'istanza. -
Dall'account A, individua il gruppo di sicurezza utilizzato dal cluster DAX. Ricordarsi di sostituirlo
cluster-namecon il nome del cluster DAX.aws dax describe-clusters \ --cluster-namecluster-name\ --query 'Clusters[0].SecurityGroups[0].SecurityGroupIdentifier' -
Aggiorna il gruppo di sicurezza del cluster DAX per consentire il traffico in entrata dal gruppo di sicurezza dell'istanza EC2 che hai creato nell'account B. Ricordati di sostituirlo
user input placeholderscon i valori corretti per i tuoi account.aws ec2 authorize-security-group-ingress \ --group-idaccountA-security-group-id\ --protocol tcp \ --port 8111 \ --source-groupaccountB-security-group-id\ --group-owneraccountB-id
A questo punto, un'applicazione nell'istanza EC2 dell'account B è in grado di utilizzare il profilo dell'istanza per assumere il ruolo arn:aws:iam:: e utilizzare il cluster DAX.accountA-id:role/DaxCrossAccountRole
Modifica del client DAX per consentire l'accesso multi-account
Nota
AWS Security Token Service (AWS STS) le credenziali sono credenziali temporanee. Alcuni client gestiscono automaticamente l'aggiornamento, mentre altri richiedono una logica aggiuntiva per aggiornare le credenziali. Consigliamo di seguire le indicazioni della documentazione appropriata.