暗号化のためのカスタマーマネージドキーの使用 - Amazon Managed Workflows for Apache Airflow

暗号化のためのカスタマーマネージドキーの使用

オプションで、環境内のデータ暗号化するための カスタマーマネージドキー を提供できます。カスタマーマネージド KMS キーは、Amazon MWAA 環境インスタンスと、ワークフローのリソースを保存する Amazon S3 バケットと同じリージョンに作成する必要があります。指定するカスタマーマネージド KMS キーが、クラスターの構成に使用するアカウントとは異なるアカウントにある場合は、その ARN を使用してキーをクロスアカウントアクセスに指定する必要があります。キーの作成の詳細については、AWS Key Management Service デベロッパーガイドキーの作成 を参照してください。

サポート対象

AWS KMS 機能 サポート

AWS KMSキー ID または ARN

はい

AWS KMSキーエイリアス

いいえ

AWS KMSマルチリージョンキー

いいえ

暗号化のための許可の使用

このトピックでは、データの暗号化および復号化のために、Amazon MWAA がお客様に代わってカスタマーマネージド KMS キーに付与する許可について説明します。

仕組み

カスタマーマネージド KMS キーに対して AWS KMS がサポートするリソースベースのアクセス制御メカニズムには、キーポリシー許可 の 2 つがあります。

キーポリシーは、権限がほとんど静的で、同期サービスモードで使用される場合に使用されます。許可は、サービスが自身や他のアカウントに異なるアクセス許可を定義する必要がある場合など、より動的で詳細な権限が必要な場合に使用されます。

Amazon MWAA では、4 つの付与ポリシーを使用してカスタマーマネージド KMS キーにアタッチします。これは、CloudWatch Logs、Amazon SQS キュー、Aurora PostgreSQL データベース、Secrets Manager シークレット、Amazon S3 バケット、DynamoDB テーブルからの保管中のデータを暗号化するために環境に必要な、きめ細かいアクセス許可があるためです。

Amazon MWAA 環境を作成してカスタマーマネージド KMS キーを指定すると、Amazon MWAA はその許可ポリシーをカスタマーマネージド KMS キーにアタッチします。これらのポリシーにより、airflow.us-east-1.amazonaws.com 内の Amazon MWAA はお客様のカスタマーマネージド KMS キーを使用して、お客様に代わって Amazon MWAA が所有するリソースを暗号化することができます。

Amazon MWAA は、お客様に代わって指定された KMS キーに追加の権限を作成し、アタッチします。これには、環境を削除した場合に許可を取り消すポリシー、クライアント側の暗号化 (CSE) にカスタマーマネージド KMS キーを使用するポリシー、Secrets Manager のカスタマーマネージドキーで保護されているシークレットにアクセスする必要がある AWS Fargate 実行ロールに関するポリシーが含まれます。

許可ポリシー

Amazon MWAA は、お客様に代わって以下の リソースベースのポリシー 許可をカスタマーマネージドの KMS キーに追加します。これらのポリシーにより、被付与者とプリンシパル (Amazon MWAA) は、ポリシーで定義されたアクションを実行できます。

許可 1: データプレーンリソースの作成に使用

{ "Name": "mwaa-grant-for-env-mgmt-role-environment name", "GranteePrincipal": "airflow.us-east-1.amazonaws.com", "RetiringPrincipal": "airflow.us-east-1.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.us-east-1.amazonaws.com", "RetiringPrincipal": "airflow.us-east-1.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.us-east-1.amazonaws.com", "RetiringPrincipal": "airflow.us-east-1.amazonaws.com", "Operations": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ] }

許可 4: バックエンドシークレットにアクセスするための Fargate 実行ロールに使用

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

カスタマーマネージドキーへのキーポリシーの適用

Amazon MWAA で独自のカスタマーマネージド KMS キーを使用する場合は、Amazon MWAA がキーを使用してデータを暗号化できるように、以下のポリシーをキーにアタッチする必要があります。

Amazon MWAA 環境に使用したカスタマーマネージド KMS キーが CloudWatch と連携するようにまだ構成されていない場合は、暗号化された CloudWatch Logs を許可するように キーポリシー を更新する必要があります。詳細については、AWS Key Management Service サービスを使用して CloudWatch ログのログデータを暗号化する を参照してください。

次の例は、CloudWatch ログのキーポリシーを表しています。リージョンに提供されているサンプル値に置き換えてください。

{ "Effect": "Allow", "Principal": { "Service": "logs.us-east-1.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-east-1:*:*" } } }