使用客戶受管金鑰進行加密 - Amazon Managed Workflows for Apache Airflow

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

使用客戶受管金鑰進行加密

您可以選擇性地為環境中的資料加密提供客戶受管金鑰。您必須在與 Amazon MWAA環境執行個體和 Amazon S3 儲存貯體相同的區域中建立客戶受管KMS金鑰,以便存放工作流程的資源。如果您指定的客戶受管KMS金鑰與您用於設定環境的金鑰位於不同的帳戶中,您必須使用 來指定金鑰ARN以進行跨帳戶存取。如需建立金鑰的詳細資訊,請參閱 AWS Key Management Service 開發人員指南 中的建立金鑰

支援的內容

AWS KMS 功能 支援

AWS KMS 金鑰 ID 或 ARN

AWS KMS 金鑰別名

AWS KMS 多區域金鑰

使用Grant for Encryption

本主題說明 授予 Amazon 代表您MWAA連接到客戶受管KMS金鑰,以加密和解密您的資料。

運作方式

AWS KMS 客戶受管KMS金鑰支援兩種資源型存取控制機制:金鑰政策和授予

當許可大部分為靜態,並用於同步服務模式時,會使用金鑰政策。當需要更動態和精細的許可時,例如服務需要為自己或其他帳戶定義不同的存取權限時,就會使用授予。

Amazon MWAA使用 並將四個授予政策連接至您的客戶受管KMS金鑰。這是因為環境從 CloudWatch Logs、Amazon SQS佇列、Aurora PostgreSQL 資料庫、Secrets Manager 秘密、Amazon S3 儲存貯體和 DynamoDB 資料表加密靜態資料所需的精細許可。

當您建立 Amazon MWAA環境並指定客戶受管KMS金鑰時,Amazon 會將授予政策MWAA連接至客戶受管KMS金鑰。這些政策允許 Amazon MWAA 使用airflow.region}.amazonaws.com客戶受管KMS金鑰,代表您加密 Amazon 擁有的資源MWAA。

Amazon 會代表您MWAA建立並附加其他授予至指定的KMS金鑰。這包括刪除環境時淘汰授予的政策、使用客戶受管KMS金鑰進行用戶端加密 (CSE),以及需要存取 Secrets Manager 中受客戶受管金鑰保護之秘密的 AWS Fargate 執行角色。

授予政策

Amazon 會代表您MWAA將下列資源型政策授予新增至客戶受管KMS金鑰。這些政策允許承授者和委託人 (AmazonMWAA) 執行政策中定義的動作。

授予 1:用於建立資料平面資源

{ "Name": "mwaa-grant-for-env-mgmt-role-environment name", "GranteePrincipal": "airflow.region.amazonaws.com", "RetiringPrincipal": "airflow.region.amazonaws.com", "Operations": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:RetireGrant" ] }

授予 2:用於ControllerLambdaExecutionRole存取

{ "Name": "mwaa-grant-for-lambda-exec-environment name", "GranteePrincipal": "airflow.region.amazonaws.com", "RetiringPrincipal": "airflow.region.amazonaws.com", "Operations": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:RetireGrant" ] }

授予 3:用於CfnManagementLambdaExecutionRole存取

{ "Name": " mwaa-grant-for-cfn-mgmt-environment name", "GranteePrincipal": "airflow.region.amazonaws.com", "RetiringPrincipal": "airflow.region.amazonaws.com", "Operations": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ] }

授予 4:用於 Fargate 執行角色以存取後端秘密

{ "Name": "mwaa-fargate-access-for-environment name", "GranteePrincipal": "airflow.region.amazonaws.com", "RetiringPrincipal": "airflow.region.amazonaws.com", "Operations": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:RetireGrant" ] }

將金鑰政策連接至客戶受管金鑰

如果您選擇將自己的客戶受管KMS金鑰與 Amazon 搭配使用MWAA,則必須將下列政策連接至金鑰,讓 Amazon MWAA使用它來加密您的資料。

如果您用於 Amazon MWAA環境的客戶受管KMS金鑰尚未設定為使用 CloudWatch,您必須更新金鑰政策以允許加密 CloudWatch 日誌。如需詳細資訊,請參閱 CloudWatch 使用 AWS Key Management Service 服務 中的加密日誌資料

下列範例代表 CloudWatch Logs 的金鑰政策。取代為 區域提供的範例值。

{ "Effect": "Allow", "Principal": { "Service": "logs.us-west-2.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "*", "Condition": { "ArnLike": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-west-2:*:*" } } }