本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用由客户托管的密钥进行加密
您可以选择为环境中的数据加密提供由客户托管的密钥。您必须在与您的 Amazon MWAA 环境实例和存储工作流程资源的 Amazon S3 存储桶相同的区域中创建客户托管KMS密钥。如果您指定的客户托管KMS密钥与您用于配置环境的账户不同,则必须使用该密钥来指定ARN用于跨账户访问的密钥。有关创建密钥的更多信息,请参阅《Amazon Key Management Service 开发人员指南》中的创建密钥。
支持什么?
Amazon KMS 特征 | 支持 |
---|---|
是 |
|
否 |
|
否 |
使用授权进行加密。
本主题介绍了 Amazon 代表您向客户托管KMS密钥MWAA附加的授权,用于加密和解密您的数据。
工作方式
客户托管KMS密钥支持两种基于资源的访问控制机制:密钥策略和授权。 Amazon KMS
当权限主要是静态且在同步服务模式下使用时,使用密钥政策。当需要更动态和更精细的权限时,例如当某服务需要为自己或其他账户定义不同的访问权限时,就会使用授权。
Amazon 对您的客户托管KMS密钥MWAA使用并附加了四项授予政策。这是因为环境需要精细权限才能加密来自 CloudWatch 日志、亚马逊SQS队列、Aurora Postgre SQL 数据库数据库、Secrets Manager 密钥、Amazon S3 存储桶和 DynamoDB 表的静态数据。
当您创建亚马逊MWAA环境并指定客户托管KMS密钥时,亚马逊会将授予政策MWAA附加到您的客户托管KMS密钥。这些政策允许亚马逊MWAA使用您的客户托管KMS密钥代表您加密亚马逊拥有的资源MWAA。airflow.
region
}.amazonaws.com
Amazon 代表您MWAA创建并附加对指定KMS密钥的额外授权。这包括在删除环境后取消授权、使用客户托管KMS密钥进行客户端加密 (CSE) 以及 Amazon Fargate 执行角色需要在 Secrets Manager 中访问受客户托管密钥保护的机密的政策。
授权策略
Amazon 代表您向客户托管KMS密钥MWAA添加以下基于资源的政策授权。这些政策允许被授权人和委托人 (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密钥MWAA,则必须将以下策略附加到密钥上,以允许亚马逊MWAA使用它来加密您的数据。
如果您在 Amazon MWAA 环境中使用的客户托管KMS密钥尚未配置为可用 CloudWatch,则必须更新密钥策略以允许使用加密 CloudWatch 日志。有关更多信息,请参阅 CloudWatch 使用 Amazon Key Management Service 服务加密日志数据。
以下示例代表了 Lo CloudWatch gs 的密钥策略。替换为该区域提供的样本值。
{ "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
:*:*" } } }