設定 AWS Glue 中的加密 - AWS 連接詞

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 AWS Glue 中的加密

以下範例任務流程重點說明,您在 AWS Glue 中使用加密時應設定的選項。範例中示範特定 AWS Key Management Service​ (AWS KMS​) 金鑰的用法,但您可能會根據自己的特殊需要選擇其他設定。此任務流程僅重點說明與設定 AWS Glue​ 時的加密相關的選項。

  1. 如果 AWS Glue 主控台的使用者未使用允許所有 AWS Glue API 操作 (例如 "glue:*") 的許可政策,請確認允許以下動作:

    • "glue:GetDataCatalogEncryptionSettings"

    • "glue:PutDataCatalogEncryptionSettings"

    • "glue:CreateSecurityConfiguration"

    • "glue:GetSecurityConfiguration"

    • "glue:GetSecurityConfigurations"

    • "glue:DeleteSecurityConfiguration"

  2. 存取或寫入加密目錄的任何用戶端 - 也就是任何主控台使用者、爬蟲程式、任務或開發端點,都需要以下許可。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:Encrypt" ], "Resource": "<key-arns-used-for-data-catalog>" } }
  3. 存取加密連線密碼的任何使用者或角色皆需要以下許可。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "<key-arns-used-for-password-encryption>" } }
  4. 將加密資料寫入 Amazon S3​ 的任何擷取、轉換和載入 (ETL) 任務角色都需要以下許可。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": "<key-arns-used-for-s3>" } }
  5. 任何撰寫加密 Amazon CloudWatch Logs​ 的 ETL 任務或爬蟲程式都需要在金鑰和 IAM 政策中具有以下許可。

    在金鑰政策 (而非 IAM 政策) 中:

    { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "<arn of key used for ETL/crawler cloudwatch encryption>" }

    如需金鑰政策的相關詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的在 AWS KMS 中使用金鑰政策

    在 IAM 政策中連接 logs:AssociateKmsKey 許可:

    { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": [ "logs:AssociateKmsKey" ], "Resource": "<arn of key used for ETL/crawler cloudwatch encryption>" }
  6. 任何使用加密任務書籤的 ETL 任務都需要以下許可。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt" ], "Resource": "<key-arns-used-for-job-bookmark-encryption>" } }
  7. 在 AWS Glue 主控台上的導覽窗格中,選擇 Settings (設定)

    1. Data catalog settings (資料目錄設定) 頁面上,選取 Metadata encryption (中繼資料加密)。此選項會使用您選擇的 ​AWS KMS 金鑰將資料目錄中的所有物件加密。

    2. 如為 AWS KMS 金鑰,選擇 aws/glue。您也可以選擇您建立的 AWS KMS 索引鍵。

    重要

    AWS Glue 僅支援對稱客戶主金鑰 (CMK)。AWS KMS key (KMS 金鑰) 清單僅會顯示對稱金鑰。不過,如果您選取 Choose a AWS KMS key ARN (選擇 KMS 金鑰 ARN),主控台可讓您輸入任何金鑰類型的 ARN。請確定您僅輸入對稱金鑰的 ARN。

    啟用加密時,存取資料目錄的用戶端必須具有 AWS KMS​ 許可。

  8. 在導覽窗格中,選擇 Security configurations (安全組態)。安全組態是一組安全屬性,可用來設定 AWS Glue 程序。然後選擇 Add security configuration (新增安全組態)。在組態中,選擇以下任一個選項:

    1. 選取 S3 encryption (S3 加密)。針對 Encryption mode (加密模式) 選擇 SSE-KMS。針對 AWS KMS key (金鑰),選擇 aws/s3 (確認使用者具有使用此金鑰的許可)。這樣就可讓任務寫入 Amazon S3​ 的資料使用 AWS 受管 AWS Glue​ AWS KMS​ 金鑰。

    2. 選取 CloudWatch logs encryption (CloudWatch Logs 加密),然後選擇某個 CMK。(請確認使用者具有使用此金鑰的許可)。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的使用 AWS KMS 在 CloudWatch Logs 中加密日誌資料

      重要

      AWS Glue 僅支援對稱客戶主金鑰 (CMK)。AWS KMS key (KMS 金鑰) 清單僅會顯示對稱金鑰。不過,如果您選取 Choose a AWS KMS key ARN (選擇 KMS 金鑰 ARN),主控台可讓您輸入任何金鑰類型的 ARN。請確定您僅輸入對稱金鑰的 ARN。

    3. 選擇 Advanced properties (進階屬性),並選取 Job bookmark encryption (任務書籤加密)。針對 AWS KMS key (金鑰),選擇 aws/glue (確認使用者具有使用此金鑰的許可)。這樣就可利用 AWS Glue AWS KMS 金鑰將寫入 Amazon S3 的任務書籤加密。

  9. 在導覽窗格中,選擇 Connections (連線)。

    1. 選擇 Add connection (新增連線) 建立與 Java Database Connectivity (JDBC) 資料存放區的連線,這是您 ETL 任務的目標。

    2. 若要強制使用 Secure Sockets Layer (SSL) 加密,請選取 Require SSL connection (需要 SSL 連接) 並測試連線。

  10. 在導覽窗格中,選擇 Jobs (任務)

    1. 選擇 Add job (新增任務) 建立轉換資料的任務。

    2. 在任務定義中,選擇您建立的安全組態。

  11. 在 AWS Glue 主控台上,隨需執行您的任務。確認任務寫入的任何 Amazon S3 資料、任務寫入的 CloudWatch Logs 以及任務書籤都已全部加密。