암호화를 위한 고객 관리형 키 사용 - Amazon Managed Workflows for Apache Airflow

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

암호화를 위한 고객 관리형 키 사용

사용자 환경의 데이터 암호화를 위해 고객 관리형 키를 옵션으로 제공할 수 있습니다. 고객 관리형 KMS 키는 Amazon MWAA 환경 인스턴스 및 워크플로용 리소스를 저장하는 Amazon S3 버킷과 동일한 리전에 생성해야 합니다. 지정하는 고객 관리형 키가 환경을 구성하는 데 사용하는 계정이 아닌 다른 계정에 있는 경우, 크로스 계정 액세스를 위해 ARN을 이용하여 해당 키를 지정해 주어야 합니다. 키 생성에 대한 자세한 내용은 AWS Key Management Service 개발자 가이드키 생성을 참조하십시오.

지원되는 항목

AWS KMS 기능: 지원

AWS KMS 키 ID 또는 ARN

AWS KMS 키 별칭

아니요

AWS KMS 다중 리전 키

아니요

암호화를 위한 권한 사용

이 단원에서는 데이터를 암호화하고 복호화하기 위해 Amazon MWAA에서 고객 관리형 KMS 키에 연결하는 권한을 설명합니다.

작동 방식

고객 관리형 KMS AWS KMS 키에 대해 지원되는 리소스 기반 액세스 제어 메커니즘에는 키 정책과 부여라는 두 가지가 있습니다.

키 정책은 권한이 대부분 정적이고 동기 서비스 모드에 이용되는 경우에 사용합니다. 권한 부여는 서비스에서 자체 또는 다른 계정에 대해 서로 다른 액세스 권한을 정의해야 하는 경우와 같이 보다 동적이고 세분화된 권한이 필요한 경우에 사용됩니다.

Amazon MWAA는 네 가지 권한 부여 정책을 사용하여 고객 관리형 KMS 키에 연결합니다. 이는 CloudWatch 로그, Amazon SQS 대기열, Aurora PostgreSQL 데이터베이스 데이터베이스, Secrets Manager 시크릿, Amazon S3 버킷 및 DynamoDB 테이블에 저장된 데이터를 암호화하는 환경에 필요한 세분화된 권한 때문입니다.

Amazon MWAA 환경을 생성하고 고객 관리형 KMS 키를 지정하면, Amazon MWAA는 사용자의 고객 관리형 KMS 키에 권한 부여 정책을 연결합니다. 이러한 정책을 통해 airflow.region}.amazonaws.com의 Amazon MWAA는 고객 관리형 KMS 키를 사용하여 Amazon MWAA 소유 리소스를 사용자를 대신하여 암호화할 수 있습니다.

Amazon MWAA는 사용자를 대신해서 추가 권한을 생성하여 지정된 KMS 키에 연결합니다. 여기에는 환경을 삭제할 경우 권한 부여를 폐기하고, 고객 관리형 KMS 키를 CSE (클라이언트 측 암호화) 에 사용하고, Secrets Manager의 고객 관리 키로 보호되는 비밀에 액세스하는 데 필요한 AWS Fargate 실행 역할에 사용하는 정책이 포함됩니다.

권한 부여 정책

Amazon MWAA는 사용자를 대신하여 고객 관리형 KMS 키에 다음과 같은 리소스 기반 정책 권한을 추가합니다. 이러한 정책을 통해 권한 피부여자와 주체(Amazon MWAA)가 정책에 정의된 작업을 수행할 수 있습니다.

권한 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" ] }

고객 관리형 키에 대한 키 정책 연결

Amazon MWAA에서 자체 고객 관리형 KMS 키를 사용하기로 선택한 경우, Amazon MWAA에서 데이터를 암호화하는 데 사용할 수 있도록 다음 정책을 그 키에 연결해 주어야 합니다.

Amazon MWAA 환경에 사용한 고객 관리형 KMS 키가 아직 작동하도록 구성되지 않은 경우 암호화된 로그를 허용하도록 키 정책을 업데이트해야 합니다. CloudWatch CloudWatch 자세한 내용은 서비스 사용 중 로그 데이터 암호화를 참조하십시오. CloudWatch AWS Key Management Service

다음 예는 CloudWatch 로그의 키 정책을 나타냅니다. 리전에 대해 제공된 샘플 값을 대체합니다.

{ "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:*:*" } } }