Pertimbangan integrasi lintas akun dengan CMK - Amazon DynamoDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pertimbangan integrasi lintas akun dengan CMK

Saat Anda mencoba mengintegrasikan dari DynamoDB ke Amazon Redshift, tindakan awal diluncurkan dari Amazon Redshift. Tanpa izin yang tepat, tindakan ini dapat mengakibatkan kegagalan diam. Bagian berikut merinci izin yang diperlukan untuk integrasi lintas akun ini.

AWS KMS Kebijakan dan izin yang diperlukan

Ganti placeholder berikut dalam contoh:

  • 111122223333: Akun AWS ID tempat Amazon Redshift di-host

  • 444455556666: Akun AWS ID tempat DynamoDB di-host

  • REDSHIFT_ROLE_NAME: Nama peran IAM yang digunakan oleh Amazon Redshift

  • REGION: Di Wilayah AWS mana sumber daya Anda berada

  • TABLE_NAME: Nama tabel DynamoDB Anda

  • KMS_KEY_ID: ID kunci KMS Anda

Kebijakan kunci KMS di akun DynamoDB

Kebijakan AWS KMS utama berikut memungkinkan akses lintas akun antara layanan DynamoDB dan Amazon Redshift Anda. Dalam contoh ini, akun 444455556666 berisi tabel dan kunci DynamoDB AWS KMS , sedangkan akun 111122223333 berisi cluster Amazon Redshift yang memerlukan akses untuk mendekripsi data.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow Redshift to use the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/REDSHIFT_ROLE_NAME" }, "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*" } ] }

Kebijakan IAM untuk peran Amazon Redshift (di akun Amazon Redshift)

Kebijakan IAM berikut memungkinkan layanan Amazon Redshift mengakses tabel DynamoDB dan kunci enkripsi AWS KMS terkait dalam skenario lintas akun. Dalam contoh ini, akun 444455556666 berisi sumber daya AWS KMS dan kunci DynamoDB yang perlu diakses oleh layanan Amazon Redshift.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowDynamoDBAccess", "Effect": "Allow", "Action": [ "dynamodb:DescribeTable", "dynamodb:BatchGetItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:BatchGetItem", "dynamodb:GetItem", "dynamodb:GetRecords", "dynamodb:GetShardIterator", "dynamodb:DescribeStream", "dynamodb:ListStreams" ], "Resource": [ "arn:aws:dynamodb:*:444455556666:table/TABLE_NAME", "arn:aws:dynamodb:*:444455556666:table/TABLE_NAME/stream/*" ] }, { "Sid": "AllowKMSAccess", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "arn:aws:kms:us-east-1:444455556666:key/KMS_KEY_ID" } ] }

Hubungan kepercayaan untuk peran Amazon Redshift

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Kebijakan DynamoDB Table (jika menggunakan kebijakan berbasis sumber daya)

Kebijakan berbasis sumber daya berikut memungkinkan layanan Amazon Redshift di akun 111122223333 untuk mengakses tabel dan Streams DynamoDB di akun 444455556666. Lampirkan kebijakan ini ke tabel DynamoDB Anda untuk mengaktifkan akses lintas akun.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowRedshiftAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/REDSHIFT_ROLE_NAME" }, "Action": [ "dynamodb:DescribeTable", "dynamodb:BatchGetItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:BatchGetItem", "dynamodb:GetItem", "dynamodb:GetRecords", "dynamodb:GetShardIterator", "dynamodb:DescribeStream", "dynamodb:ListStreams" ], "Resource": [ "arn:aws:dynamodb:*:444455556666:table/TABLE_NAME", "arn:aws:dynamodb:*:444455556666:table/TABLE_NAME/stream/*" ] } ] }

Pertimbangan penting

  1. Pastikan kunci KMS berada di wilayah yang sama dengan tabel DynamoDB Anda.

  2. Kunci KMS harus berupa kunci yang dikelola pelanggan (CMK), bukan kunci. Kunci yang dikelola AWS

  3. Jika Anda menggunakan tabel global DynamoDB, konfigurasikan izin untuk semua wilayah yang relevan.

  4. Pertimbangkan untuk menambahkan pernyataan kondisi untuk membatasi akses berdasarkan titik akhir VPC atau rentang IP.

  5. Untuk meningkatkan keamanan, pertimbangkan untuk menggunakan aws:PrincipalOrgID kondisi untuk membatasi akses ke organisasi Anda.

  6. Pantau penggunaan kunci KMS melalui CloudTrail dan CloudWatch metrik.