Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Accès au DAX sur plusieurs comptes AWS
Imaginez que vous avez un cluster DynamoDB Accelerator (DAX) exécuté sur AWS un compte (compte A) et que le cluster DAX doit être accessible depuis une instance Amazon Elastic Compute Cloud (Amazon EC2) d'un autre compte (compte B). AWS Dans ce didacticiel, vous pouvez accomplir cela en lançant une instance EC2 dans le compte B avec un rôle IAM du compte B. Vous utilisez ensuite des informations d’identification de sécurité temporaires de l’instance EC2 pour endosser un rôle IAM du compte A. Enfin, vous utilisez les informations d’identification de sécurité temporaires afin d’endosser le rôle IAM dans le compte A pour effectuer des appels d’application via une connexion d’appairage de VPC Amazon sur le cluster DAX dans le compte A. Pour effectuer ces tâches, vous devez disposer d’un accès administratif dans les deux comptes AWS .
Important
Il n’est pas possible de faire accéder un cluster DAX à une table DynamoDB d’un autre compte.
Rubriques
Configurer IAM
-
Créez un fichier texte nommé
AssumeDaxRoleTrust.jsonavec le contenu suivant pour permettre à Amazon EC2 de travailler pour vous. -
Dans le compte B, créez un rôle qu’Amazon EC2 peut utiliser lors du lancement d’instances.
aws iam create-role \ --role-name AssumeDaxRole \ --assume-role-policy-document file://AssumeDaxRoleTrust.json -
Créez un fichier texte nommé
AssumeDaxRolePolicy.jsonavec le contenu suivant, qui permet au code exécuté sur l'instance EC2 du compte B d'assumer un rôle IAM dans le compte A. Remplacez-leaccountApar l'identifiant réel du compte A. -
Ajoutez cette stratégie au rôle que vous venez de créer.
aws iam put-role-policy \ --role-name AssumeDaxRole \ --policy-name AssumeDaxRolePolicy \ --policy-document file://AssumeDaxRolePolicy.json -
Créez un profil d’instance pour autoriser les instances à utiliser le rôle.
aws iam create-instance-profile \ --instance-profile-name AssumeDaxInstanceProfile -
Associez le rôle au profil d’instance.
aws iam add-role-to-instance-profile \ --instance-profile-name AssumeDaxInstanceProfile \ --role-name AssumeDaxRole -
Créez un fichier texte nommé
DaxCrossAccountRoleTrust.jsonavec le contenu suivant, ce qui permet au compte B d’assumer un rôle du compte A. RemplacezaccountBpar l'identifiant réel du compte B. -
Dans le compte A, créez le rôle que le compte B peut assumer.
aws iam create-role \ --role-name DaxCrossAccountRole \ --assume-role-policy-document file://DaxCrossAccountRoleTrust.json -
Créez un fichier texte nommé
DaxCrossAccountPolicy.jsonpermettant l’accès au cluster DAX.dax-cluster-arnRemplacez-le par le nom de ressource Amazon (ARN) correct de votre cluster DAX. -
Dans le compte A, ajoutez la stratégie au rôle.
aws iam put-role-policy \ --role-name DaxCrossAccountRole \ --policy-name DaxCrossAccountPolicy \ --policy-document file://DaxCrossAccountPolicy.json
Configuration d’un VPC
-
Recherchez le groupe de sous-réseaux du cluster DAX du compte A.
cluster-nameRemplacez-le par le nom du cluster DAX auquel le compte B doit accéder.aws dax describe-clusters \ --cluster-namecluster-name--query 'Clusters[0].SubnetGroup' -
À l'aide de cela
subnet-group, trouvez le VPC du cluster.aws dax describe-subnet-groups \ --subnet-group-namesubnet-group\ --query 'SubnetGroups[0].VpcId' -
À l'aide de cela
vpc-id, trouvez le CIDR du VPC.aws ec2 describe-vpcs \ --vpcvpc-id\ --query 'Vpcs[0].CidrBlock' -
À partir du compte B, créez un VPC à l’aide d’un CIDR sans chevauchement différent de celui trouvé à l’étape précédente. Ensuite, créez au moins un sous-réseau. Vous pouvez utiliser l'assistant de création de VPC dans le AWS Management Console ou le. AWS CLI
-
À partir du compte B, demandez une connexion d’appairage au VPC du compte A, comme décrit dans Création et acceptation d’une connexion d’appairage de VPC. À partir du compte A, acceptez la connexion.
-
Dans le compte B, recherchez la table de routage du nouveau VPC. Remplacez
vpc-idpar l'ID du VPC que vous avez créé dans le compte B.aws ec2 describe-route-tables \ --filters 'Name=vpc-id,Values=vpc-id' \ --query 'RouteTables[0].RouteTableId' -
Ajoutez une route pour envoyer le trafic destiné au CIDR du compte A à la connexion d’appairage du VPC. N'oubliez pas de
user input placeholderremplacer chacune par les valeurs correctes pour vos comptes.aws ec2 create-route \ --route-table-idaccountB-route-table-id\ --destination-cidraccountA-vpc-cidr\ --vpc-peering-connection-idpeering-connection-id -
À partir du compte A, recherchez la table de routage du cluster DAX à l'aide de celle
vpc-idque vous avez trouvée précédemment.aws ec2 describe-route-tables \ --filters 'Name=vpc-id, Values=accountA-vpc-id' \ --query 'RouteTables[0].RouteTableId' -
À partir du compte A, ajoutez une route pour envoyer le trafic destiné au CIDR du compte B à la connexion d’appairage du VPC. Remplacez chacune
user input placeholderpar les valeurs correctes pour vos comptes.aws ec2 create-route \ --route-table-idaccountA-route-table-id\ --destination-cidraccountB-vpc-cidr\ --vpc-peering-connection-idpeering-connection-id -
À partir du compte B, lancez une instance EC2 dans le VPC que vous avez créé précédemment. Attribuez-lui
AssumeDaxInstanceProfile. Vous pouvez utiliser l'assistant de lancement dans le AWS Management Console ou le AWS CLI. Notez le groupe de sécurité de l’instance. -
Dans le compte A, recherchez le groupe de sécurité qu’utilise le cluster DAX. N'oubliez pas de
cluster-nameremplacer par le nom de votre cluster DAX.aws dax describe-clusters \ --cluster-namecluster-name\ --query 'Clusters[0].SecurityGroups[0].SecurityGroupIdentifier' -
Mettez à jour le groupe de sécurité du cluster DAX pour autoriser le trafic entrant en provenance du groupe de sécurité de l'instance EC2 que vous avez créée dans le compte B. N'oubliez pas de
user input placeholdersremplacer le par les valeurs correctes pour vos comptes.aws ec2 authorize-security-group-ingress \ --group-idaccountA-security-group-id\ --protocol tcp \ --port 8111 \ --source-groupaccountB-security-group-id\ --group-owneraccountB-id
À ce stade, une application sur l’instance EC2 du compte B peut utiliser le profil d’instance pour endosser le rôle arn:aws:iam:: et utiliser le cluster DAX.accountA-id:role/DaxCrossAccountRole
Modifier le client DAX pour autoriser l’accès intercompte
Note
AWS Security Token Service (AWS STS) les informations d'identification sont des informations d'identification temporaires. Certains clients gèrent l’actualisation automatiquement, tandis que d’autres nécessitent une logique supplémentaire pour actualiser les informations d’identification. Nous vous recommandons de suivre les instructions de la documentation appropriée.