Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Akses lintas akun Lintas wilayah ke tabel DynamoDB

Mode fokus
Akses lintas akun Lintas wilayah ke tabel DynamoDB - AWS Glue

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

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

AWS Glue Pekerjaan ETL mendukung akses lintas wilayah dan lintas akun ke tabel DynamoDB. AWS Glue Pekerjaan ETL mendukung pembacaan data dari tabel DynamoDB AWS Akun lain, dan menulis data ke tabel DynamoDB AWS Akun lain. AWS Glue juga mendukung pembacaan dari tabel DynamoDB di wilayah lain, dan menulis ke tabel DynamoDB di wilayah lain. Bagian ini memberikan petunjuk tentang pengaturan akses, dan menyediakan contoh skrip.

Prosedur dalam bagian ini me-referensi tutorial IAM untuk menciptakan IAM role dan memberikan akses ke peran. Tutorial ini juga membahas asumsi peran, tetapi di sini Anda akan menggunakan skrip pekerjaan untuk mengambil peran dalam AWS Glue. Tutorial ini juga berisi informasi tentang praktik lintas akun umum. Untuk informasi selengkapnya, lihat Tutorial: Mendelegasikan Akses di Seluruh AWS Akun Menggunakan Peran IAM di Panduan Pengguna IAM.

Membuat peran

Ikuti langkah 1 dalam tutorial untuk membuat IAM role di akun A. Ketika menentukan izin peran, Anda dapat memilih untuk melampirkan kebijakan yang ada seperti AmazonDynamoDBReadOnlyAccess, atau AmazonDynamoDBFullAccess untuk mengizinkan peran untuk membaca/menulis dari dan ke DynamoDB. Contoh berikut menunjukkan cara membuat sebuah peran bernama DynamoDBCrossAccessRole, dengan kebijakan izin AmazonDynamoDBFullAccess.

Berikan akses ke peran tersebut

Ikuti langkah 2 dalam tutorial di Panduan Pengguna IAM untuk mengizinkan akun B untuk beralih ke peran yang baru dibuat. Contoh berikut membuat sebuah kebijakan baru dengan pernyataan berikut:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "<DynamoDBCrossAccessRole's ARN>" } }

Kemudian, Anda dapat melampirkan kebijakan ini ke yang ingin group/role/user Anda gunakan untuk mengakses DynamoDB.

Asumsikan peran dalam AWS Glue skrip tugas

Sekarang, Anda dapat masuk ke akun B dan membuat AWS Glue pekerjaan. Untuk membuat sebuah tugas, lihat petunjuk di Mengkonfigurasi properti pekerjaan untuk pekerjaan Spark di AWS Glue.

Dalam skrip tugas tersebut, Anda perlu menggunakan parameter dynamodb.sts.roleArn untuk mengambil peran DynamoDBCrossAccessRole. Dengan asumsi peran ini akan memungkinkan Anda untuk mendapatkan kredensial sementara, yang perlu digunakan untuk mengakses DynamoDB di akun B. Tinjau skrip contoh ini.

Untuk pembacaan lintas akun di seluruh wilayah (konektor ETL):

import sys from pyspark.context import SparkContext from awsglue.context import GlueContext from awsglue.job import Job from awsglue.utils import getResolvedOptions args = getResolvedOptions(sys.argv, ["JOB_NAME"]) glue_context= GlueContext(SparkContext.getOrCreate()) job = Job(glue_context) job.init(args["JOB_NAME"], args) dyf = glue_context.create_dynamic_frame_from_options( connection_type="dynamodb", connection_options={ "dynamodb.region": "us-east-1", "dynamodb.input.tableName": "test_source", "dynamodb.sts.roleArn": "<DynamoDBCrossAccessRole's ARN>" } ) dyf.show() job.commit()

Untuk pembacaan lintas akun di seluruh wilayah (konektor ELT):

import sys from pyspark.context import SparkContext from awsglue.context import GlueContext from awsglue.job import Job from awsglue.utils import getResolvedOptions args = getResolvedOptions(sys.argv, ["JOB_NAME"]) glue_context= GlueContext(SparkContext.getOrCreate()) job = Job(glue_context) job.init(args["JOB_NAME"], args) dyf = glue_context.create_dynamic_frame_from_options( connection_type="dynamodb", connection_options={ "dynamodb.export": "ddb", "dynamodb.tableArn": "<test_source ARN>", "dynamodb.sts.roleArn": "<DynamoDBCrossAccessRole's ARN>" } ) dyf.show() job.commit()

Untuk pembacaan dan penulisan lintas akun di seluruh wilayah:

import sys from pyspark.context import SparkContext from awsglue.context import GlueContext from awsglue.job import Job from awsglue.utils import getResolvedOptions args = getResolvedOptions(sys.argv, ["JOB_NAME"]) glue_context= GlueContext(SparkContext.getOrCreate()) job = Job(glue_context) job.init(args["JOB_NAME"], args) dyf = glue_context.create_dynamic_frame_from_options( connection_type="dynamodb", connection_options={ "dynamodb.region": "us-east-1", "dynamodb.input.tableName": "test_source" } ) dyf.show() glue_context.write_dynamic_frame_from_options( frame=dyf, connection_type="dynamodb", connection_options={ "dynamodb.region": "us-west-2", "dynamodb.output.tableName": "test_sink", "dynamodb.sts.roleArn": "<DynamoDBCrossAccessRole's ARN>" } ) job.commit()
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.