Mengenkripsi Katalog Data Anda - AWS Glue

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

Mengenkripsi Katalog Data Anda

AWS Glue Data Catalogenkripsi memberikan keamanan yang ditingkatkan untuk data sensitif Anda. AWS Glueterintegrasi dengan AWS Key Management Service (AWS KMS) untuk mengenkripsi metadata yang disimpan dalam Katalog Data. Anda dapat mengaktifkan atau menonaktifkan pengaturan enkripsi untuk sumber daya di Katalog Data menggunakan AWS Glue konsol atauAWS CLI.

Saat Anda mengaktifkan enkripsi untuk Katalog Data Anda, semua objek baru yang Anda buat akan dienkripsi. Saat Anda menonaktifkan enkripsi, objek baru yang Anda buat tidak akan dienkripsi, tetapi objek terenkripsi yang ada akan tetap dienkripsi.

Anda dapat mengenkripsi seluruh Katalog Data menggunakan kunci enkripsi AWS terkelola atau kunci enkripsi yang dikelola pelanggan. Untuk informasi selengkapnya tentang tipe dan status utama, lihat AWS Key Management Servicekonsep di Panduan AWS Key Management Service Pengembang.

kunci terkelola AWS

AWSkunci terkelola adalah kunci KMS di akun Anda yang dibuat, dikelola, dan digunakan atas nama Anda oleh AWS layanan yang terintegrasi dengannyaAWS KMS. Anda dapat melihat kunci AWS terkelola di akun Anda, melihat kebijakan utamanya, dan mengaudit penggunaannya di AWS CloudTrail log. Namun, Anda tidak dapat mengelola kunci ini atau mengubah izinnya.

Enkripsi saat istirahat secara otomatis terintegrasi dengan AWS KMS untuk mengelola kunci AWS terkelola AWS Glue yang digunakan untuk mengenkripsi metadata Anda. Jika kunci AWS terkelola tidak ada saat Anda mengaktifkan enkripsi metadata, AWS KMS secara otomatis membuat kunci baru untuk Anda.

Untuk informasi selengkapnya, lihat kunci AWS terkelola.

Kunci yang dikelola pelanggan

Kunci yang dikelola pelanggan adalah kunci KMS Akun AWS yang Anda buat, miliki, dan kelola. Anda memiliki kontrol penuh atas kunci KMS ini. Anda dapat:

  • Menetapkan dan memelihara kebijakan utama mereka, kebijakan IAM, dan hibah

  • Aktifkan dan nonaktifkan

  • Putar materi kriptografi mereka

  • Tambahkan tag

  • Buat alias yang merujuknya

  • Jadwalkan mereka untuk dihapus

Untuk informasi selengkapnya tentang mengelola izin kunci terkelola pelanggan, lihat Kunci terkelola pelanggan.

penting

AWS Gluehanya mendukung kunci yang dikelola pelanggan simetris. Daftar kunci KMS hanya menampilkan tombol simetris. Namun, jika Anda memilih Pilih ARN kunci KMS, konsol memungkinkan Anda memasukkan ARN untuk semua jenis kunci. Pastikan bahwa Anda hanya memasukkan ARN untuk kunci simetris.

Untuk membuat kunci terkelola pelanggan simetris, ikuti langkah-langkah untuk membuat kunci terkelola pelanggan simetris di Panduan AWS Key Management Service Pengembang.

Saat Anda mengaktifkan enkripsi Katalog Data saat istirahat, jenis sumber daya berikut dienkripsi menggunakan kunci KMS:

  • Basis data

  • Tabel

  • Partisi

  • Versi tabel

  • Statistik kolom

  • Fungsi yang ditetapkan pengguna

  • Tampilan Katalog Data

AWS Gluekonteks enkripsi

Konteks enkripsi adalah kumpulan opsional pasangan kunci-nilai yang berisi informasi kontekstual tambahan tentang data. AWS KMSmenggunakan konteks enkripsi sebagai data otentikasi tambahan untuk mendukung enkripsi yang diautentikasi. Bila Anda menyertakan konteks enkripsi dalam permintaan untuk mengenkripsi data, AWS KMS mengikat konteks enkripsi ke data terenkripsi. Untuk mendekripsi data, Anda menyertakan konteks enkripsi yang sama dalam permintaan. AWS Gluemenggunakan konteks enkripsi yang sama di semua operasi AWS KMS kriptografi, di mana kuncinya glue_catalog_id dan nilainya adalah. catalogId

"encryptionContext": { "glue_catalog_id": "111122223333" }

Bila Anda menggunakan kunci AWS terkelola atau kunci terkelola pelanggan simetris untuk mengenkripsi Katalog Data Anda, Anda juga dapat menggunakan konteks enkripsi dalam catatan audit dan log untuk mengidentifikasi bagaimana kunci tersebut digunakan. Konteks enkripsi juga muncul di log yang dihasilkan oleh AWS CloudTrail atau Amazon CloudWatch log.

Mengaktifkan enkripsi

Anda dapat mengaktifkan enkripsi untuk AWS Glue Data Catalog objek Anda di pengaturan Katalog Data di AWS Glue konsol atau dengan menggunakanAWS CLI.

Console
Untuk mengaktifkan enkripsi menggunakan konsol
  1. Masuk ke AWS Management Console, lalu buka konsol AWS Glue di https://console.aws.amazon.com/glue/.

  2. Pilih Katalog Data di panel navigasi.

  3. Pada halaman pengaturan Katalog Data, pilih kotak centang Enkripsi metadata, dan pilih kunci. AWS KMS

    Bila Anda mengaktifkan enkripsi, jika Anda tidak menentukan kunci terkelola pelanggan, pengaturan enkripsi menggunakan kunci KMS AWS terkelola.

  4. (Opsional) Saat Anda menggunakan kunci yang dikelola pelanggan untuk mengenkripsi Katalog Data Anda, Katalog Data menyediakan opsi untuk mendaftarkan peran IAM untuk mengenkripsi dan mendekripsi sumber daya. Anda harus memberikan izin peran IAM yang AWS Glue dapat diambil atas nama Anda. Ini termasuk AWS KMS izin untuk mengenkripsi dan mendekripsi data.

    Saat Anda membuat sumber daya baru di Katalog Data, AWS Glue asumsikan peran IAM yang disediakan untuk mengenkripsi data. Demikian pula, ketika konsumen mengakses sumber daya, AWS Glue mengasumsikan peran IAM untuk mendekripsi data. Jika Anda mendaftarkan peran IAM dengan izin yang diperlukan, prinsipal panggilan tidak lagi memerlukan izin untuk mengakses kunci dan mendekripsi data.

    penting

    Anda dapat mendelegasikan operasi KMS ke peran IAM hanya jika Anda menggunakan kunci yang dikelola pelanggan untuk mengenkripsi sumber daya Katalog Data. Fitur delegasi peran KMS tidak mendukung penggunaan kunci AWS terkelola untuk mengenkripsi sumber daya Katalog Data saat ini.

    Awas

    Bila Anda mengaktifkan peran IAM untuk mendelegasikan operasi KMS, Anda tidak dapat lagi mengakses sumber daya Katalog Data yang sebelumnya dienkripsi dengan kunci terkelola. AWS

    1. Untuk mengaktifkan peran IAM yang AWS Glue dapat diasumsikan untuk mengenkripsi dan mendekripsi data atas nama Anda, pilih opsi Delegasikan operasi KMS ke peran IAM.

    2. Selanjutnya, pilih peran IAM.

      Untuk membuat peran IAM, lihat Membuat peran IAM untuk. AWS Glue

      Peran IAM yang AWS Glue mengasumsikan untuk mengakses Katalog Data harus memiliki izin untuk mengenkripsi dan mendekripsi metadata dalam Katalog Data. Anda dapat membuat peran IAM, dan melampirkan kebijakan inline berikut:

      • Tambahkan kebijakan berikut untuk menyertakan AWS KMS izin untuk mengenkripsi dan mendekripsi Katalog Data.

        { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:<region>:<account-id>:key/<key-id>" } ] }
      • Selanjutnya, tambahkan kebijakan kepercayaan berikut ke peran AWS Glue layanan untuk mengambil peran IAM.

        { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
      • Selanjutnya, tambahkan iam:PassRole izin ke peran IAM.

        { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<encryption-role-name>" ] } ] }

    Saat Anda mengaktifkan enkripsi, jika Anda belum menentukan peran IAM AWS Glue untuk diasumsikan, prinsipal yang mengakses Katalog Data harus memiliki izin untuk melakukan operasi API berikut:

    • kms:Decrypt

    • kms:Encrypt

    • kms:GenerateDataKey

AWS CLI
Untuk mengaktifkan enkripsi menggunakan SDK atau AWS CLI
  • Gunakan Operasi API PutDataCatalogEncryptionSettings. Jika tidak ada kunci yang ditentukan, AWS Glue gunakan kunci enkripsi AWS terkelola untuk akun pelanggan untuk mengenkripsi Katalog Data.

    aws glue put-data-catalog-encryption-settings \ --data-catalog-encryption-settings '{ "EncryptionAtRest": { "CatalogEncryptionMode": "SSE-KMS-WITH-SERVICE-ROLE", "SseAwsKmsKeyId": "arn:aws:kms:<region>:<account-id>:key/<key-id>", "CatalogEncryptionServiceRole":"arn:aws:iam::<account-id>:role/<encryption-role-name>" } }'

Saat Anda mengaktifkan enkripsi, semua objek yang Anda buat di objek Katalog Data dienkripsi. Jika Anda menghapus pengaturan ini, objek yang Anda buat di Katalog Data tidak lagi dienkripsi. Anda dapat terus mengakses objek terenkripsi yang ada di Katalog Data dengan izin KMS yang diperlukan.

penting

Kunci AWS KMS harus tetap tersedia di penyimpanan kunci AWS KMS untuk setiap objek yang dienkripsi dengannya dalam Katalog Data. Jika Anda menghapus kunci tersebut, maka objek tidak dapat lagi didekripsi. Anda mungkin ingin melakukan hal ini dalam beberapa skenario untuk mencegah akses ke metadata Katalog Data.

Memantau kunci KMS Anda untuk AWS Glue

Saat Anda menggunakan kunci KMS dengan sumber daya Katalog Data Anda, Anda dapat menggunakan AWS CloudTrail atau Amazon CloudWatch Log untuk melacak permintaan yang AWS Glue dikirim. AWS KMS AWS CloudTrailmemantau dan merekam operasi KMS yang AWS Glue memanggil untuk mengakses data yang dienkripsi oleh kunci KMS Anda.

Contoh berikut adalah AWS CloudTrail peristiwa untuk Decrypt dan GenerateDataKey operasi.

Decrypt
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAXPHTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAXPHTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2024-01-10T14:33:56Z", "mfaAuthenticated": "false" } }, "invokedBy": "glue.amazonaws.com" }, "eventTime": "2024-01-10T15:18:11Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "eu-west-2", "sourceIPAddress": "glue.amazonaws.com", "userAgent": "glue.amazonaws.com", "requestParameters": { "encryptionContext": { "glue_catalog_id": "111122223333" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "43b019aa-34b8-4798-9b98-ee968b2d63df", "eventID": "d7614763-d3fe-4f84-a1e1-3ca4d2a5bbd5", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:<region>:111122223333:key/<key-id>" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "sessionCredentialFromConsole": "true" }
GenerateDataKey
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAXPHTESTANDEXAMPLE:V_00_GLUE_KMS_GENERATE_DATA_KEY_111122223333", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/V_00_GLUE_KMS_GENERATE_DATA_KEY_111122223333", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAXPHTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "AKIAIOSFODNN7EXAMPLE", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2024-01-05T21:15:47Z", "mfaAuthenticated": "false" } }, "invokedBy": "glue.amazonaws.com" }, "eventTime": "2024-01-05T21:15:47Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "eu-west-2", "sourceIPAddress": "glue.amazonaws.com", "userAgent": "glue.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:eu-west-2:AKIAIOSFODNN7EXAMPLE:key/AKIAIOSFODNN7EXAMPLE", "encryptionContext": { "glue_catalog_id": "111122223333" }, "keySpec": "AES_256" }, "responseElements": null, "requestID": "64d1783a-4b62-44ba-b0ab-388b50188070", "eventID": "1c73689b-2ef2-443b-aed7-8c126585ca5e", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:eu-west-2:111122223333:key/AKIAIOSFODNN7EXAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }