將加密與 Amazon S3 事件爬蟲程式搭配使用 - AWS Glue

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

將加密與 Amazon S3 事件爬蟲程式搭配使用

本節說明僅在 SQS 上使用加密,或在 SQS 和 Amazon S3 上使用加密。

僅在 SQS 上啟用加密

Amazon SQS 預設會在傳輸過程中提供加密。若要新增選用的伺服器端加密 (SSE) 到佇列中,您可以在編輯面板中連接客戶主金鑰 (CMK)。這表示 SQS 會將 SQS 伺服器上的所有靜態客戶資料加密。

建立客戶主金鑰 (CMK)
  1. 選擇 Key Management Service (KMS) (金鑰管理服務 (KMS)) > Customer Managed Keys (客戶受管金鑰) > Create key (建立金鑰)。

  2. 依照以下步驟新增您自己的別名和說明。

  3. 新增您希望能夠使用此金鑰的個別 IAM 角色。

  4. 在金鑰政策中,將另一個陳述式新增至「陳述式」清單,讓您的自訂金鑰政策為 Amazon SNS 提供足夠的金鑰使用許可。

    "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" } ]
在佇列上啟用伺服器端加密 (SSE)
  1. 選擇 Amazon SQS > Queues (佇列) > sqs_queue_name > Encryption (加密) 索引標籤。

  2. 選擇 Edit (編輯),然後向下捲動到 Encryption (加密) 下拉式功能表。

  3. 選取 Enabled (啟用) 以新增 SSE。

  4. 選取您之前建立的 CMK,而不是名稱為 alias/aws/sqs 的預設金鑰。

    新增此金鑰後,您的「Encryption (加密)」索引標籤會以新增的金鑰更新。

注意

Amazon SQS 會自動刪除在佇列上存在超過訊息保留期間上限的訊息。預設的訊息保留期間為 4 天。若要避免遺失事件,請變更 SQS MessageRetentionPeriod 到最大的 14 天。

在 SQS 和 Amazon S3 上啟用加密

在 SQS 上啟用伺服器端加密 (SSE)
  1. 請遵循 僅在 SQS 上啟用加密 中的步驟。

  2. 在 CMK 設定的最後一個步驟中,給予 Amazon S3 足夠的金鑰使用許可。

    將下列項目貼到「陳述式」清單中:

    "Statement": [ { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" } ]
在 Amazon S3 儲存貯體上啟用伺服器端加密 (SSE)
  1. 請遵循 僅在 SQS 上啟用加密 中的步驟。

  2. 執行下列任意一項:

    • 若要為整個 S3 儲存貯體啟用 SSE,請瀏覽至 Properties (屬性) 索引標籤。

      您可以在其中啟用 SSE 並選擇要使用的加密類型。Amazon S3 提供 Amazon S3 為您建立、管理和使用的加密金鑰,或者可以從 KMS 中選擇金鑰。

    • 若要在特定資料夾上啟用 SSE,請按一下目標資料夾旁的核取方塊,然後選擇 Actions (動作) 下拉式功能表下的 Edit server-side encryption (編輯伺服器端加密)。

常見問答集

為什麼發佈到 Amazon SNS 主題的訊息不會傳遞到已啟用伺服器端加密 (SSE) 的訂閱 Amazon SQS 佇列?

仔細檢查您的 Amazon SQS 佇列是否正在使用:

  1. 由客戶管理的客戶主金鑰 (CMK)。不是 SQS 提供的預設金鑰。

  2. (1) 中的 CMK 包括一個自訂金鑰政策,其為 Amazon SNS 提供足夠的金鑰使用許可。

如需詳細資訊,請參閱知識中心的這篇文章

我已訂閱電子郵件通知,但是當我編輯 Amazon S3 儲存貯體時,沒有收到任何電子郵件更新。

請按一下電子郵件中的「Confirm Subscription (確認訂閱)」連結,確定您已確認電子郵件地址。您可以透過檢查 SNS 主題下的 Subscriptions (訂閱) 資料表來驗證確認狀態。

選擇 Amazon SNS > Topics (主題) > sns_topic_name > Subscriptions table (訂閱資料表)。

如果您遵循我們的必要條件指令碼,您會發現 sns_topic_name 等於您的 sqs_queue_name。其看起來與下列類似:

在我的 SQS 佇列上啟用伺服器端加密後,只有我新增的一些資料夾顯示在資料表中。為什麼我遺失了一些 Parquet?

如果在 SQS 佇列上啟用 SSE 之前進行了 Amazon S3 儲存貯體變更,爬蟲程式可能不會拾取這些變更。若要確保您已編目 S3 儲存貯體的所有更新,請以清單模式 (「編目所有資料夾」) 再次執行爬蟲程式。另一種選擇是透過建立啟用 S3 事件的新爬蟲程式來重新開始編目。