為什麼我在有附加強制執行 SSE-KMS 加密的政策的 S3 儲存貯體中看不到 Amazon EMR 叢集日誌?

1 分的閱讀內容
0

我的 Amazon EMR 叢集日誌不會封存到我指定的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。S3 儲存貯體有一個附加政策,可透過 AWS Key Management Service (SSE-KMS) 強制執行伺服器端加密。日誌寫入失敗,並出現 403 錯誤,如下所示: 2020-01-15 04:01:25,247 INFO logspusher-6: Failed to upload 126 logs: USE: /emr/instance-state/instance-state.log-2020-01-14-20-15.gz reason: Access Denied (服務: Amazon S3;狀態代碼: 403;錯誤代碼: AccessDenied;請求 ID: 8B99FE94D1678AAB)

簡短說明

為 Amazon EMR 叢集啟用日誌記錄功能時,LogPusher 服務會將叢集日誌封存到指定的 S3 儲存貯體。LogPusher 寫入日誌使用 AES-256 加密,而不是 SSE-KMS。若要將日誌寫入具有 SSE-KMS 加密政策的 S3 儲存貯體,請使用 sync 命令手動上傳檔案。

**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請確認您使用的是最新版本的 AWS CLI

解決方法

**注意:**使用 Amazon EMR 5.30.0 及更新版本 (Amazon EMR 6.0.0 除外),您可以使用 AWS KMS 客戶受管金鑰加密存放在 Amazon S3 中的日誌檔案

1.    使用 SSH 連線至主節點

2.    找到您要複製的日誌檔案。例如,步驟日誌會儲存在主節點上的 /mnt/var/log/hadoop/steps 中。

3.    若要將日誌檔案複製到 S3 儲存貯體,請搭配使用 sync 命令與 --sse-kms-key-id 欄位。範例:

aws s3 sync /mnt/var/log/hadoop/steps/ s3://awsexamplebucket/elasticmapreduce/${cluster_id}/steps/ --sse aws:kms --sse-kms-key-id 17246c74-6ff4-4adb-86e5-76f7f1603f00

您可以使用 cron 作業來自動執行 sync 命令。若要設定 Cron 作業,請在啟動 Amazon EMR 叢集時在所有節點上執行 custom bootstrap action


相關資訊

透過儲存在 AWS Key Management Service 中的 AWS KMS 金鑰使用伺服器端加密來保護資料

當我在 Amazon S3 儲存貯體上使用 AWS KMS 啟用預設加密時,新物件或現有物件會發生什麼情況?

AWS 官方
AWS 官方已更新 3 年前