Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Prasyarat pengoptimalan tabel
Pengoptimal tabel mengasumsikan izin AWS Identity and Access Management (IAM) peran yang Anda tentukan saat Anda mengaktifkan opsi pengoptimalan (pemadatan, retensi snapshot, dan penghapusan file yatim piatu) untuk sebuah tabel. Anda dapat membuat peran tunggal untuk semua pengoptimal atau membuat peran terpisah untuk setiap pengoptimal.
catatan
Pengoptimal penghapusan file yatim piatu tidak memerlukan izin atau. glue:updateTable
s3:putObject
Pengoptimal kedaluwarsa snapshot dan pemadatan memerlukan set izin yang sama.
IAMPeran harus memiliki izin untuk membaca data dan memperbarui metadata di Katalog Data. Anda dapat membuat IAM peran dan melampirkan kebijakan inline berikut:
-
Tambahkan kebijakan sebaris berikut yang memberikan izin baca/tulis Amazon S3 di lokasi untuk data yang tidak terdaftar AWS Lake Formation. Kebijakan ini juga mencakup izin untuk memperbarui tabel di Katalog Data, dan mengizinkan AWS Glue untuk menambahkan log di Amazon CloudWatch log dan publikasikan metrik. Untuk data sumber di Amazon S3 yang tidak terdaftar di Lake Formation, akses ditentukan oleh kebijakan IAM izin untuk Amazon S3 dan AWS Glue tindakan.
Dalam kebijakan inline berikut, ganti
bucket-name
dengan nama bucket Amazon S3 Andaaws-account-id
,region
dan dengan yang valid AWS nomor akun dan Wilayah Katalog Data,database_name
dengan nama database Anda, dantable_name
dengan nama tabel.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::
<bucket-name>
/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<bucket-name>
" ] }, { "Effect": "Allow", "Action": [ "glue:UpdateTable", "glue:GetTable" ], "Resource": [ "arn:aws:glue:<region>
:<aws-account-id>
:table/<database-name>
/<table-name>
", "arn:aws:glue:<region>
:<aws-account-id>
:database/<database-name>
", "arn:aws:glue:<region>
:<aws-account-id>
:catalog" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>
:<aws-account-id>
:log-group:/aws-glue/iceberg-compaction/logs:*", "arn:aws:logs:<region>
:<aws-account-id>
:log-group:/aws-glue/iceberg-retention/logs:*", "arn:aws:logs:<region>
:<aws-account-id>
:log-group:/aws-glue/iceberg-orphan-file-deletion/logs:*" } ] } -
Gunakan kebijakan berikut untuk mengaktifkan pemadatan data yang terdaftar di Lake Formation.
Jika peran pengoptimalan tidak memiliki izin
IAM_ALLOWED_PRINCIPALS
grup yang diberikan pada tabel, peran tersebut memerlukan Lake FormationALTER
DESCRIBE
,INSERT
danDELETE
izin di atas tabel.Untuk informasi selengkapnya tentang mendaftarkan bucket Amazon S3 dengan Lake Formation, lihat Menambahkan lokasi Amazon S3 ke data lake Anda.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "glue:UpdateTable", "glue:GetTable" ], "Resource": [ "arn:aws:glue:
<region>
:<aws-account-id>
:table/<databaseName>
/<tableName>
", "arn:aws:glue:<region>
:<aws-account-id>
:database/<database-name>
", "arn:aws:glue:<region>
:<aws-account-id>
:catalog" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:<region>
:<aws-account-id>
:log-group:/aws-glue/iceberg-compaction/logs:*", "arn:aws:logs:<region>
:<aws-account-id>
:log-group:/aws-glue/iceberg-retention/logs:*", "arn:aws:logs:<region>
:<aws-account-id>
:log-group:/aws-glue/iceberg-orphan-file-deletion/logs:*" } ] } -
(Opsional) Untuk mengoptimalkan tabel Iceberg dengan data di bucket Amazon S3 yang dienkripsi menggunakan enkripsi sisi Server, peran pemadatan memerlukan izin untuk mendekripsi objek Amazon S3 dan menghasilkan kunci data baru untuk menulis objek ke bucket terenkripsi. Tambahkan kebijakan berikut ke yang diinginkan AWS KMS kunci. Kami hanya mendukung enkripsi tingkat ember.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
<aws-account-id>
:role/<optimizer-role-name>
" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" } -
(Opsional) Untuk lokasi data yang terdaftar di Lake Formation, peran yang digunakan untuk mendaftarkan lokasi memerlukan izin untuk mendekripsi objek Amazon S3 dan menghasilkan kunci data baru untuk menulis objek ke bucket terenkripsi. Untuk informasi selengkapnya, lihat Mendaftarkan lokasi Amazon S3 terenkripsi.
-
(Opsional) Jika AWS KMS kunci disimpan di tempat yang berbeda AWS akun, Anda perlu menyertakan izin berikut ke peran pemadatan.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": ["arn:aws:kms:
<REGION>
:<KEY_OWNER_ACCOUNT_ID>
:key/<KEY_ID>
" ] } ] } -
Peran yang Anda gunakan untuk menjalankan pemadatan harus memiliki
iam:PassRole
izin pada peran tersebut.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::
<account-id>
:role/<optimizer-role-name>
" ] } ] } -
Tambahkan kebijakan kepercayaan berikut ke peran AWS Glue layanan untuk mengambil IAM peran untuk menjalankan proses pemadatan.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }