Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan integrasi antara sumber dan target memerlukan beberapa prasyarat seperti mengkonfigurasi peran IAM yang AWS Glue digunakan untuk mengakses data dari sumber dan menulis ke target, dan penggunaan kunci KMS untuk mengenkripsi data di lokasi perantara atau target.
Topik
Menyiapkan sumber daya sumber
Lakukan tugas penyiapan berikut seperti yang diperlukan untuk sumber Anda.
Menyiapkan peran sumber
Bagian ini menjelaskan bagaimana Anda meneruskan peran sumber untuk memungkinkan integrasi nol-ETL mengakses koneksi Anda. Ini juga hanya berlaku untuk sumber SaaS.
catatan
Untuk membatasi akses ke hanya beberapa koneksi, Anda dapat terlebih dahulu membuat koneksi untuk mendapatkan koneksi ARN. Lihat Mengkonfigurasi sumber untuk integrasi nol-ETL.
Buat peran yang memiliki izin untuk integrasi untuk mengakses koneksi:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GlueConnections",
"Effect": "Allow",
"Action": [
"glue:GetConnections",
"glue:GetConnection"
],
"Resource": [
"arn:aws:glue:*:<accountId>:catalog",
"arn:aws:glue:us-east-1:<accountId>:connection/*"
]
},
{
"Sid": "GlueActionBasedPermissions",
"Effect": "Allow",
"Action": [
// Fetch entities:
"glue:ListEntities",
// Refresh connection credentials:
"glue:RefreshOAuth2Tokens"
],
"Resource": [
"*"
]
}
]
}
Kebijakan kepercayaan:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"glue.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
Menyiapkan sumber daya target
Lakukan tugas penyiapan berikut seperti yang diperlukan untuk target integrasi AWS Glue data Catalog Data atau Amazon Redshift data warehouse.
Untuk integrasi dengan target AWS Glue database:
Untuk integrasi dengan target datawarehouse Amazon Redshift:
Menyiapkan AWS Glue database
Untuk integrasi yang menggunakan AWS Glue database:
Untuk menyiapkan database target di Katalog AWS Glue Data dengan lokasi Amazon S3:
Di halaman beranda AWS Glue konsol, pilih Database di bawah Katalog Data.
Pilih Tambahkan database di pojok kanan atas. Jika Anda telah membuat database, pastikan lokasi dengan Amazon S3 URI disetel untuk database.
Masukkan nama dan Lokasi (URI S3). Perhatikan bahwa lokasi diperlukan untuk integrasi nol-ETL. Klik Buat database setelah selesai.
catatan
Bucket Amazon S3 harus berada di wilayah yang sama dengan database. AWS Glue
Untuk informasi tentang cara membuat database baru AWS Glue, lihat Memulai Katalog AWS Glue Data.
Anda juga dapat menggunakan create-database
CLI untuk membuat database di. AWS Glue Perhatikan bahwa LocationUri
in --database-input
diperlukan.
Mengoptimalkan tabel Iceberg
Setelah tabel dibuat oleh AWS Glue dalam database target, Anda dapat mengaktifkan pemadatan untuk mempercepat kueri di Amazon Athena. Untuk informasi tentang pengaturan sumber daya (Peran IAM) untuk pemadatan, lihat Prasyarat pengoptimalan tabel.
Untuk informasi selengkapnya tentang pengaturan pemadatan pada AWS Glue tabel yang dibuat oleh integrasi, lihat Mengoptimalkan tabel Gunung Es.
Menyediakan kebijakan Resource Based Access (RBAC) katalog
Untuk integrasi yang menggunakan AWS Glue database, tambahkan izin berikut ke katalog Kebijakan RBAC untuk memungkinkan integrasi antara sumber dan target.
catatan
Untuk integrasi lintas akun, kebijakan peran Alice (pengguna yang membuat integrasi) dan kebijakan sumber daya katalog perlu mengizinkan glue:CreateInboundIntegration
sumber daya. Untuk akun yang sama, kebijakan sumber daya atau kebijakan peran yang mengizinkan glue:CreateInboundIntegration
sumber daya sudah cukup. Kedua skenario masih perlu glue.amazonaws.com
diizinkanglue:AuthorizeInboundIntegration
.
Anda dapat mengakses pengaturan Katalog di bawah Katalog Data. Kemudian berikan izin berikut dan isi informasi yang hilang.
{
"Version": "2012-10-17",
"Statement": [
{ // Allow Alice to create Integration on Target Database
"Principal": {
"AWS": [
"arn:aws:iam::<source-account-id>:user/Alice"
]
},
"Effect": "Allow",
"Action": [
"glue:CreateInboundIntegration"
],
"Resource": [
"arn:aws:glue:<region>:<Target-Account-Id>:catalog",
"arn:aws:glue:<region>:<Target-Account-Id>:database/DatabaseName"
],
"Condition": {
"StringLike": {
"aws:SourceArn": "arn:aws:dynamodb:<region>:<Account>:table/<table-name>"
}
}
},
{ // Allow Glue to Authorize the Inbound Integration on behalf of Bob
"Principal": {
"Service": [
"glue.amazonaws.com"
]
},
"Effect": "Allow",
"Action": [
"glue:AuthorizeInboundIntegration"
],
"Resource": [
"arn:aws:glue:<region>:<Target-Account-Id>:catalog",
"arn:aws:glue:<region>:<Target-Account-Id>:database/DatabaseName"
],
"Condition": {
"StringEquals": {
"aws:SourceArn": "arn:aws:dynamodb:<region>:<account-id>:table/<table-name>"
}
}
}
]
}
Membuat peran IAM target
Buat peran IAM target dengan izin dan hubungan kepercayaan berikut:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::<target iceberg table s3 bucket>",
"Effect": "Allow"
},
{
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::<target iceberg table s3 bucket>/prefix/*",
"Effect": "Allow"
},
{
"Action": [
"glue:GetDatabase"
],
"Resource": [
"arn:aws:glue:<region>:<account-id>:catalog",
"arn:aws:glue:<region>:<account-id>:database/DatabaseName"
],
"Effect": "Allow"
},
{
"Action": [
"glue:CreateTable",
"glue:GetTable",
"glue:UpdateTable",
"glue:GetTableVersion",
"glue:GetTableVersions",
"glue:GetResourcePolicy"
],
"Resource": [
"arn:aws:glue:<region>:<account-id>:catalog",
"arn:aws:glue:<region>:<account-id>:database/<DatabaseName>",
"arn:aws:glue:<region>:<account-id>:table/<DatabaseName>/*"
],
"Effect": "Allow"
},
{
"Action": [
"cloudwatch:PutMetricData"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"cloudwatch:namespace": "AWS/Glue/ZeroETL"
}
},
"Effect": "Allow"
},
{
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Tambahkan kebijakan kepercayaan berikut untuk mengizinkan AWS Glue layanan mengambil peran:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "glue.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Membuat gudang data Amazon Redshift
Jika target integrasi nol-ETL Anda adalah gudang data Amazon Redshift, buat gudang data jika Anda belum memilikinya. Untuk membuat workgroup Amazon Redshift Tanpa Server, lihat Membuat workgroup dengan namespace. Untuk membuat klaster Amazon Redshift, lihat Membuat klaster.
Workgroup atau cluster Amazon Redshift target harus mengaktifkan enable_case_sensitive_identifier
parameter agar integrasi berhasil. Untuk informasi selengkapnya tentang mengaktifkan sensitivitas huruf besar, lihat Mengaktifkan sensitivitas huruf besar untuk gudang data Anda di panduan pengelolaan Amazon Redshift.
Setelah grup kerja Amazon Redshift atau pengaturan cluster selesai, Anda perlu mengonfigurasi gudang data Anda. Lihat Memulai integrasi Nol-ETL di Panduan Manajemen Pergeseran Merah Amazon untuk informasi selengkapnya.
Menyiapkan VPC untuk integrasi nol-ETL Anda
Untuk menyiapkan VPC untuk integrasi nol-ETL Anda:
Buka VPC > Your VPCs dan pilih Create VPC.
Pilih VPC dan lainnya.
Tetapkan nama VPC Anda.
Atur IPv4 CIDR: 10.0.0.0/16.
Atur jumlah AZ ke 1.
Atur jumlah subnet publik dan pribadi menjadi 1.
Setel gateway NAT ke None.
Setel titik akhir VPC ke S3 Gateway.
Aktifkan nama host DNS dan resolusi DNS.
Pergi ke Endpoints dan pilih Create Endpoint.
Buat titik akhir untuk layanan ini di subnet pribadi VPC Anda (gunakan grup keamanan default):
com.amazonaws.us-east-1.lambda
com.amazonaws.us-east-1.glue
com.amazonaws.us-east-1.sts
Buat AWS Glue koneksi:
Buka AWS Glue> Koneksi data dan pilih Buat koneksi.
Pilih Jaringan.
Pilih VPC, Subnet (pribadi), dan Grup Keamanan default yang Anda buat.
Menyiapkan peran target untuk VPC
Peran target harus memiliki izin ini (selain izin lain yang diperlukan oleh ETl integrasi Nol):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CustomerVpc",
"Effect": "Allow",
"Action": [
"ec2:CreateTags",
"ec2:DeleteTags",
"ec2:DescribeRouteTables",
"ec2:DescribeVpcEndpoints",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSubnets",
"ec2:CreateNetworkInterface",
"ec2:DeleteNetworkInterface",
"glue:GetConnection"
],
"Resource": [
"*"
]
}
]
}
Menyiapkan properti sumber daya target leg
Jika Anda menggunakan CLI, atur properti sumber daya target leg ke AWS Glue database target yang Anda buat. Lewati peran target ARN, serta nama AWS Glue koneksi.
aws glue create-integration-resource-property \
--resource-arn arn:aws:glue:us-east-1:<account-id>:database/exampletarget \
--target-processing-properties '{"RoleArn" : "arn:aws:iam::<account-id>:role/example-role", "ConnectionName":"example-vpc-3"}' \
--endpoint-url https://example.amazonaws.com --region us-east-1
Kemungkinan kesalahan klien
Berikut ini adalah kemungkinan kesalahan klien untuk integrasi yang dikonfigurasi dengan VPC.
Pesan kesalahan | Tindakan yang diperlukan |
---|---|
Peran yang diberikan tidak berwenang untuk melakukan lem: GetConnection pada koneksi. Tambahkan izin ini ke kebijakan peran, lalu tunggu integrasi pulih. | Perbarui kebijakan peran |
Peran yang diberikan tidak berwenang untuk melakukan ec2:DescribeSubnets. Tambahkan izin ini ke kebijakan peran, lalu tunggu integrasi pulih. | Perbarui kebijakan peran |
Peran yang diberikan tidak berwenang untuk melakukan ec2:DescribeSecurityGroups. Tambahkan izin ini ke kebijakan peran, lalu tunggu integrasi pulih. | Perbarui kebijakan peran |
Peran yang diberikan tidak berwenang untuk melakukan ec2:DescribeVpcEndpoints. Tambahkan izin ini ke kebijakan peran, lalu tunggu integrasi pulih. | Perbarui kebijakan peran |
Peran yang diberikan tidak berwenang untuk melakukan ec2:DescribeRouteTables. Tambahkan izin ini ke kebijakan peran, lalu tunggu integrasi pulih. | Perbarui kebijakan peran |
Peran yang diberikan tidak berwenang untuk melakukan ec2:CreateTags. Tambahkan izin ini ke kebijakan peran, lalu tunggu integrasi pulih. | Perbarui kebijakan peran |
Peran yang diberikan tidak berwenang untuk melakukan ec2:CreateNetworkInterface. Tambahkan izin ini ke kebijakan peran, lalu tunggu integrasi pulih. | Perbarui kebijakan peran |
Subnet koneksi yang disediakan tidak berisi titik akhir S3 atau gateway NAT yang valid. Perbarui subnet, lalu tunggu integrasi pulih. | Perbarui titik akhir subnet VPC |
Subnet koneksi tidak ditemukan. Perbarui subnet koneksi, dan kemudian tunggu integrasi pulih. | Perbarui & GLU; koneksi |
Grup keamanan koneksi tidak ditemukan. Perbarui grup keamanan koneksi, lalu tunggu integrasi pulih. | Perbarui & GLU; koneksi |
Tidak dapat terhubung ke S3 melalui koneksi VPC yang disediakan. Perbarui konfigurasi subnet, lalu tunggu integrasi pulih. | Perbarui titik akhir subnet VPC |
Tidak dapat terhubung ke Lambda melalui koneksi VPC yang disediakan. Perbarui konfigurasi subnet, lalu tunggu integrasi pulih. | Perbarui titik akhir subnet VPC |
Menyiapkan integrasi lintas akun nol-ETL
Untuk menyiapkan integrasi lintas akun nol-ETL:
Konfigurasikan Kebijakan Sumber Daya target seperti yang dijelaskan dalamMenyediakan kebijakan Resource Based Access (RBAC) katalog. Pastikan bahwa peran akun sumber secara eksplisit diizinkan pada sumber daya target.
Periksa apakah peran akun sumber (peran yang digunakan untuk membuat integrasi) memiliki yang berikut:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt123456789012", "Action": [ "glue:CreateInboundIntegration" ], "Effect": "Allow", "Resource": [ "arn:aws:glue:<region>:<target-account-id>:catalog", "arn:aws:glue:<region>:<target-account-id>:database/DatabaseName" ] }] }
Buat integrasi seperti yang dijelaskan dalamMembuat integrasi.