Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
AWS Kontenübergreifender Zugriff auf DAX
Stellen Sie sich vor, Sie haben einen DynamoDB Accelerator (DAX) -Cluster, der in einem AWS Konto (Konto A) läuft und der DAX-Cluster muss von einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance in einem anderen AWS Konto (Konto B) aus zugänglich sein. In diesem Tutorial starten Sie dazu eine EC2 Instance in Konto B mit einer IAM-Rolle von Konto B. Anschließend verwenden Sie temporäre Sicherheitsanmeldedaten von der EC2 Instance, um eine IAM-Rolle von Konto A anzunehmen. Schließlich verwenden Sie die temporären Sicherheitsanmeldedaten von der Übernahme der IAM-Rolle in Konto A, um Anwendungsaufrufe über eine Amazon VPC-Peering-Verbindung zum DAX-Cluster in Konto A durchzuführen. Um diese Aufgaben ausführen zu können, benötigen Sie Administratorzugriff für beide Konten. AWS
Wichtig
Es ist nicht möglich, dass ein DAX-Cluster von einem anderen Konto aus auf eine DynamoDB-Tabelle zugreift.
Themen
IAM-einrichten
-
Erstellen Sie eine Textdatei
AssumeDaxRoleTrust.jsonmit dem folgenden Inhalt, die es Amazon ermöglicht, in Ihrem Namen EC2 zu arbeiten. -
Erstellen Sie in Konto B eine Rolle, die Amazon beim Starten von Instances verwenden EC2 kann.
aws iam create-role \ --role-name AssumeDaxRole \ --assume-role-policy-document file://AssumeDaxRoleTrust.json -
Erstellen Sie eine Textdatei
AssumeDaxRolePolicy.jsonmit dem folgenden Inhalt, die es Code ermöglicht, der auf der EC2 Instance in Konto B ausgeführt wird, eine IAM-Rolle in Konto A anzunehmen.accountAErsetzen Sie sie durch die tatsächliche ID von Konto A. -
Fügen Sie diese Richtlinie der gerade erstellten Rolle hinzu.
aws iam put-role-policy \ --role-name AssumeDaxRole \ --policy-name AssumeDaxRolePolicy \ --policy-document file://AssumeDaxRolePolicy.json -
Erstellen Sie ein Instance-Profil, damit Instances die Rolle verwenden können.
aws iam create-instance-profile \ --instance-profile-name AssumeDaxInstanceProfile -
Ordnen Sie die Rolle dem Instance-Profil zu.
aws iam add-role-to-instance-profile \ --instance-profile-name AssumeDaxInstanceProfile \ --role-name AssumeDaxRole -
Erstellen Sie die Textdatei
DaxCrossAccountRoleTrust.jsonmit dem folgenden Inhalt, der es Konto B gestattet, eine Rolle von Kontos A zu übernehmen.accountBDurch die tatsächliche ID von Konto B ersetzen. -
Erstellen Sie in Konto A die Rolle, die Konto B übernehmen kann.
aws iam create-role \ --role-name DaxCrossAccountRole \ --assume-role-policy-document file://DaxCrossAccountRoleTrust.json -
Erstellen Sie eine Textdatei mit dem Namen
DaxCrossAccountPolicy.json, die den Zugriff auf den DAX-Cluster ermöglicht.dax-cluster-arnErsetzen Sie es durch den richtigen Amazon-Ressourcennamen (ARN) Ihres DAX-Clusters. -
Fügen Sie in Konto A die Richtlinie zur Rolle hinzu.
aws iam put-role-policy \ --role-name DaxCrossAccountRole \ --policy-name DaxCrossAccountPolicy \ --policy-document file://DaxCrossAccountPolicy.json
Richten Sie eine VPC ein
-
Suchen Sie die Subnetzgruppe des DAX-Clusters von Konto A.
cluster-nameErsetzen Sie es durch den Namen des DAX-Clusters, auf den Konto B zugreifen muss.aws dax describe-clusters \ --cluster-namecluster-name--query 'Clusters[0].SubnetGroup' -
Suchen Sie damit
subnet-groupdie VPC des Clusters.aws dax describe-subnet-groups \ --subnet-group-namesubnet-group\ --query 'SubnetGroups[0].VpcId' -
Suchen Sie damit
vpc-idden CIDR der VPC.aws ec2 describe-vpcs \ --vpcvpc-id\ --query 'Vpcs[0].CidrBlock' -
Erstellen Sie in Konto B eine VPC mit einer anderen, nicht überlappenden CIDR als der, die im im vorherigen Schritt gefunden wurde. Erstellen Sie dann mindestens ein Subnetz. Sie können entweder den VPC-Erstellungsassistenten in AWS Management Console oder in verwenden. AWS CLI
-
Fordern Sie in Konto B eine Peering-Verbindung mit der VPC von Konto A an, wie unter Erstellen und Akzeptieren einer VPC-Peering-Verbindung beschrieben. Akzeptieren Sie die Verbindung in Konto A.
-
Suchen Sie in Konto B die Routingtabelle der neuen VPC.
vpc-idErsetzen Sie durch die ID der VPC, die Sie in Konto B erstellt haben.aws ec2 describe-route-tables \ --filters 'Name=vpc-id,Values=vpc-id' \ --query 'RouteTables[0].RouteTableId' -
Fügen Sie eine Route hinzu, um Datenverkehr für die CIDR von Konto A an die VPC-Peering-Verbindung zu senden. Denken Sie daran, jeden Wert
user input placeholderdurch die richtigen Werte für Ihre Konten zu ersetzen.aws ec2 create-route \ --route-table-idaccountB-route-table-id\ --destination-cidraccountA-vpc-cidr\ --vpc-peering-connection-idpeering-connection-id -
Suchen Sie von Konto A aus nach der Routing-Tabelle des DAX-Clusters, indem
vpc-idSie die zuvor gefundene Tabelle verwenden.aws ec2 describe-route-tables \ --filters 'Name=vpc-id, Values=accountA-vpc-id' \ --query 'RouteTables[0].RouteTableId' -
Fügen Sie in Konto A eine Route hinzu, um Datenverkehr für die CIDR von Konto B an die VPC-Peering-Verbindung zu senden. Ersetzen Sie jeden
user input placeholderWert durch die richtigen Werte für Ihre Konten.aws ec2 create-route \ --route-table-idaccountA-route-table-id\ --destination-cidraccountB-vpc-cidr\ --vpc-peering-connection-idpeering-connection-id -
Starten Sie von Konto B aus eine EC2 Instance in der VPC, die Sie zuvor erstellt haben. Ordnen Sie ihr das
AssumeDaxInstanceProfilezu. Sie können entweder den Startassistenten im AWS Management Console oder im AWS CLIverwenden. Notieren Sie sich die Sicherheitsgruppe der Instance. -
Suchen Sie in Konto A die Sicherheitsgruppe, die vom DAX-Cluster verwendet wird. Denken Sie daran, es
cluster-namedurch den Namen Ihres DAX-Clusters zu ersetzen.aws dax describe-clusters \ --cluster-namecluster-name\ --query 'Clusters[0].SecurityGroups[0].SecurityGroupIdentifier' -
Aktualisieren Sie die Sicherheitsgruppe des DAX-Clusters, um eingehenden Datenverkehr von der Sicherheitsgruppe der EC2 Instance zuzulassen, die Sie in Konto B erstellt haben. Denken Sie daran, die
user input placeholdersdurch die richtigen Werte für Ihre Konten zu ersetzen.aws ec2 authorize-security-group-ingress \ --group-idaccountA-security-group-id\ --protocol tcp \ --port 8111 \ --source-groupaccountB-security-group-id\ --group-owneraccountB-id
Zu diesem Zeitpunkt kann eine Anwendung auf der EC2 Instanz von Konto B das Instanzprofil verwenden, um die arn:aws:iam:: Rolle zu übernehmen und den DAX-Cluster zu verwenden.accountA-id:role/DaxCrossAccountRole
Ändern des DAX-Clients, um den kontoübergreifenden Zugriff zu erlauben
Anmerkung
AWS Security Token Service (AWS STS) Anmeldeinformationen sind temporäre Anmeldeinformationen. Einige Clients nehmen automatisch Aktualisierungen vor, während andere zusätzliche Logik benötigen, um die Anmeldeinformationen zu aktualisieren. Wir empfehlen Ihnen, die Anleitung der entsprechenden Dokumentation zu befolgen.