本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將敏感組態資料儲存在 AWS Secrets Manager中
Amazon 會以純文字EMR描述並列出發出自訂組態資料 (例如 DescribeCluster
和 ListInstanceGroups
) API的操作。Amazon 與 EMR整合 AWS Secrets Manager ,以便您可以將資料儲存在 Secrets Manager 中,並在組態ARN中使用秘密。如此一來,您就不會EMR將敏感組態資料以純文字傳遞至 Amazon,並公開至外部 APIs。如果您指出金鑰值對包含儲存在 Secrets Manager 中的秘密ARN的 ,Amazon 會在將組態資料傳送至叢集時EMR擷取此秘密。Amazon 使用外部 APIs 顯示組態時,EMR不會傳送註釋。
建立秘密
若要建立機密,請遵循《AWS Secrets Manager 使用者指南》的建立 AWS Secrets Manager 機密中的步驟進行。在步驟 3 中,您必須選擇純文字欄位,才能輸入敏感值。
請注意,雖然 Secrets Manager 允許秘密包含最多 65536 個位元組,但 Amazon 會將屬性金鑰 (不含註釋) 的合併長度和擷取的秘密值EMR限制為 1024 個字元。
授予 Amazon EMR存取權以擷取秘密
Amazon EMR使用IAM服務角色為您佈建和管理叢集。Amazon 的服務角色會EMR定義 Amazon 的允許動作,EMR當其佈建資源並執行未在叢集中執行的 Amazon EC2執行個體內容中執行的服務層級任務時。如需服務角色的詳細資訊,請參閱 Amazon 的服務角色 EMR(EMR 角色) 和 自訂IAM角色 。
若要允許 Amazon 從 Secrets Manager EMR擷取秘密值,請在啟動叢集時將下列政策陳述式新增至您的 Amazon EMR角色。
{ "Sid":"AllowSecretsRetrieval", "Effect":"Allow", "Action":"secretsmanager:GetSecretValue", "Resource":[ "arn:aws:secretsmanager:
<region>
:<aws-account-id>
:secret:<secret-name>
" ] }
如果您使用客戶管理的 建立秘密 AWS KMS key,您還必須為您使用的金鑰將kms:Decrypt
許可新增至 Amazon EMR角色。如需詳細資訊,請參閱《AWS Secrets Manager 使用者指南》中的 AWS Secrets Manager的身分驗證與存取控制。
在組態分類中使用機密
您可以將EMR.secret@
註釋新增至任何組態屬性,以指示其鍵值對包含 ARN ,用於儲存在 Secrets Manager 中的秘密。
下列範例顯示如何在組態分類ARN中提供秘密:
{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"
<sensitive-access-key>
", "EMR.secret@presto.s3.secret-key":"arn:aws:secretsmanager:<region>
:<aws-account-id>
:secret:<secret-name>
" } }
當您建立叢集並提交註釋組態時,Amazon 會EMR驗證組態屬性。如果您的組態有效,Amazon 會從組態EMR中刪除註釋,並從 Secrets Manager 擷取秘密,以在將秘密套用至叢集之前建立實際組態:
{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"
<sensitive-access-key>
", "presto.s3.secret-key":"<my-secret-key-retrieved-from-Secrets-Manager>
" } }
當您呼叫 等動作時DescribeCluster
,Amazon 會EMR傳回叢集上目前的應用程式組態。如果應用程式組態屬性標記為包含秘密 ARN,則DescribeCluster
呼叫傳回的應用程式組態會包含 ARN,而不是秘密值。這可確保機密值僅在叢集上可見:
{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"
<sensitive-access-key>
", "presto.s3.secret-key":"arn:aws:secretsmanager:<region>
:<aws-account-id>
:secret:<secret-name>
" } }
更新機密值
每當連接的執行個體群組啟動、重新設定或調整大小時,Amazon 都會從註釋組態EMR擷取秘密值。您可以使用 Secret Manager 來修改在執行中叢集的組態中使用的機密值。執行此操作時,您可以向您想要接收更新值的每個執行個體群組提交重新組態請求。如需有關如何重新設定執行個體群組的詳細資訊,以及執行此操作時要考慮的事項,請參閱 重新設定執行中叢集中的執行個體群組。