Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengakses DAX di seluruh akun AWS
Bayangkan Anda memiliki klaster DynamoDB Accelerator (DAX) yang berjalan di AWS satu akun (akun A), dan kluster DAX harus dapat diakses dari instans Amazon Elastic Compute Cloud (Amazon EC2) di akun lain (akun B). AWS Dalam tutorial ini, Anda mencapai hal ini dengan meluncurkan instans EC2 di akun B dengan peran IAM dari akun B. Lalu, Anda menggunakan kredensial keamanan sementara dari instans EC2 untuk mengambil peran IAM dari akun A. Terakhir, Anda menggunakan kredensial keamanan sementara dari pengambilan peran IAM di akun A untuk membuat panggilan aplikasi melalui koneksi peering Amazon VPC ke klaster DAX di akun A. Untuk melakukan tugas-tugas ini, Anda akan memerlukan akses administratif di kedua akun AWS .
penting
Klaster DAX tidak dapat mengakses tabel DynamoDB dari akun yang berbeda.
Menyiapkan IAM
-
Buat file teks bernama
AssumeDaxRoleTrust.jsonberisi konten berikut, yang mengizinkan Amazon EC2 untuk bekerja atas nama Anda. -
Di akun B, buat peran yang dapat digunakan oleh Amazon EC2 saat meluncurkan instans.
aws iam create-role \ --role-name AssumeDaxRole \ --assume-role-policy-document file://AssumeDaxRoleTrust.json -
Buat file teks bernama
AssumeDaxRolePolicy.jsondengan konten berikut, yang memungkinkan kode berjalan pada instans EC2 di akun B untuk mengambil peran IAM di akun A. GantiaccountAdengan ID aktual akun A. -
Tambahkan kebijakan tersebut ke peran yang baru Anda buat.
aws iam put-role-policy \ --role-name AssumeDaxRole \ --policy-name AssumeDaxRolePolicy \ --policy-document file://AssumeDaxRolePolicy.json -
Buat profil instans untuk mengizinkan instans menggunakan peran.
aws iam create-instance-profile \ --instance-profile-name AssumeDaxInstanceProfile -
Kaitkan peran dengan profil instans.
aws iam add-role-to-instance-profile \ --instance-profile-name AssumeDaxInstanceProfile \ --role-name AssumeDaxRole -
Buat file teks bernama
DaxCrossAccountRoleTrust.jsonberisi konten berikut, yang mengizinkan akun B mengambil peran akun A. GantiaccountBdengan ID aktual akun B. -
Di akun A, buat peran yang dapat diambil oleh akun B.
aws iam create-role \ --role-name DaxCrossAccountRole \ --assume-role-policy-document file://DaxCrossAccountRoleTrust.json -
Buat file teks bernama
DaxCrossAccountPolicy.jsonyang mengizinkan akses ke klaster DAX. Gantidax-cluster-arndengan Nama Sumber Daya Amazon (ARN) yang benar dari cluster DAX Anda. -
Di akun A, tambahkan kebijakan ke peran tersebut.
aws iam put-role-policy \ --role-name DaxCrossAccountRole \ --policy-name DaxCrossAccountPolicy \ --policy-document file://DaxCrossAccountPolicy.json
Menyiapkan VPC
-
Temukan grup subnet klaster DAX akun A. Ganti
cluster-namedengan nama cluster DAX yang harus diakses akun B.aws dax describe-clusters \ --cluster-namecluster-name--query 'Clusters[0].SubnetGroup' -
Dengan menggunakan itu
subnet-group, temukan VPC cluster.aws dax describe-subnet-groups \ --subnet-group-namesubnet-group\ --query 'SubnetGroups[0].VpcId' -
Dengan menggunakan itu
vpc-id, temukan CIDR VPC.aws ec2 describe-vpcs \ --vpcvpc-id\ --query 'Vpcs[0].CidrBlock' -
Dari akun B, buat VPC menggunakan CIDR yang berbeda dan tidak tumpang tindih dari yang ditemukan di langkah sebelumnya. Kemudian, buat setidaknya satu subnet. Anda dapat menggunakan wizard pembuatan VPC di Konsol Manajemen AWS atau. AWS CLI
-
Dari akun B, minta koneksi peering ke VPC akun A seperti yang dijelaskan di Membuat dan menerima koneksi peering VPC. Dari akun A, terima koneksi.
-
Dari akun B, temukan tabel perutean VPC baru. Ganti
vpc-iddengan ID VPC yang Anda buat di akun B.aws ec2 describe-route-tables \ --filters 'Name=vpc-id,Values=vpc-id' \ --query 'RouteTables[0].RouteTableId' -
Tambahkan rute untuk mengirim lalu lintas yang dibuat untuk CIDR akun A ke koneksi peering VPC. Ingatlah untuk mengganti masing-masing
user input placeholderdengan nilai yang benar untuk akun Anda.aws ec2 create-route \ --route-table-idaccountB-route-table-id\ --destination-cidraccountA-vpc-cidr\ --vpc-peering-connection-idpeering-connection-id -
Dari akun A, temukan tabel rute cluster DAX menggunakan tabel yang
vpc-idAnda temukan sebelumnya.aws ec2 describe-route-tables \ --filters 'Name=vpc-id, Values=accountA-vpc-id' \ --query 'RouteTables[0].RouteTableId' -
Dari akun A, tambahkan rute untuk mengirim lalu lintas yang dibuat untuk CIDR akun B ke koneksi peering VPC. Ganti masing-masing
user input placeholderdengan nilai yang benar untuk akun Anda.aws ec2 create-route \ --route-table-idaccountA-route-table-id\ --destination-cidraccountB-vpc-cidr\ --vpc-peering-connection-idpeering-connection-id -
Dari akun B, luncurkan instans EC2 di VPC yang Anda buat sebelumnya. Berikan
AssumeDaxInstanceProfile. Anda dapat menggunakan wizard peluncuran di Konsol Manajemen AWS atau AWS CLI. Perhatikan grup keamanan instans. -
Dari akun A, temukan grup keamanan yang digunakan oleh klaster DAX. Ingatlah untuk mengganti
cluster-namedengan nama cluster DAX Anda.aws dax describe-clusters \ --cluster-namecluster-name\ --query 'Clusters[0].SecurityGroups[0].SecurityGroupIdentifier' -
Perbarui grup keamanan klaster DAX untuk mengizinkan lalu lintas masuk dari grup keamanan instans EC2 yang Anda buat di akun B. Ingatlah untuk mengganti
user input placeholdersdengan nilai yang benar untuk akun Anda.aws ec2 authorize-security-group-ingress \ --group-idaccountA-security-group-id\ --protocol tcp \ --port 8111 \ --source-groupaccountB-security-group-id\ --group-owneraccountB-id
Pada titik ini, aplikasi pada instans EC2 akun B dapat menggunakan profil instans untuk mengasumsikan peran arn:aws:iam:: dan menggunakan klaster DAX.accountA-id:role/DaxCrossAccountRole
Mengubah klien DAX untuk mengizinkan akses lintas akun
catatan
AWS Security Token Service (AWS STS) kredensil adalah kredensil sementara. Beberapa klien menangani pembaruan secara otomatis, sementara klien lain memerlukan logika tambahan untuk memperbarui kredensialnya. Sebaiknya Anda mengikuti panduan dokumentasi yang sesuai.