AWS Glue에서 암호화 설정 - AWS Glue

AWS Glue에서 암호화 설정

다음 예제 작업 흐름에는 AWS Glue로 암호화를 사용할 때 구성하는 옵션이 강조되어 있습니다. 이 예제는 특정 AWS Key Management Service(AWS KMS) 키 사용을 설명하지만 사용자의 특정 요구에 따라 다른 설정을 선택할 수도 있습니다. 이 작업 흐름에는 AWS Glue 설정 시 암호화에 관한 옵션만 강조 표시되어 있습니다.

  1. AWS Glue 콘솔 사용자가 모든 AWS Glue API 작업(예: "glue:*")을 허용하는 권한 정책을 사용하지 않을 경우에는 다음 작업이 허용되는지 확인하십시오.

    • "glue:GetDataCatalogEncryptionSettings"

    • "glue:PutDataCatalogEncryptionSettings"

    • "glue:CreateSecurityConfiguration"

    • "glue:GetSecurityConfiguration"

    • "glue:GetSecurityConfigurations"

    • "glue:DeleteSecurityConfiguration"

  2. 암호화된 카탈로그에 액세스하거나 이에 쓰는 모든 클라이언트(즉, 콘솔 사용자, 크롤러, 작업 또는 개발 엔드포인트)에는 다음 권한이 필요합니다.

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:Encrypt" ], "Resource": "<key-arns-used-for-data-catalog>" } }
  3. 암호화된 연결 암호에 액세스하는 사용자 또는 역할은 다음 권한이 필요합니다.

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "<key-arns-used-for-password-encryption>" } }
  4. 암호화된 데이터를 Amazon S3에 기록하는 추출, 변환, 로드 작업 역할은 다음 권한이 있어야 합니다.

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": "<key-arns-used-for-s3>" } }
  5. 암호화된 Amazon CloudWatch Logs를 기록하는 ETL 작업 또는 크롤러는 키 정책(IAM 정책 아님)에 다음 권한이 있어야 합니다.

    { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "<arn of key used for ETL/crawler cloudwatch encryption>" }

    키 정책에 대한 자세한 내용은 AWS Key Management Service Developer GuideUsing Key Policies in AWS KMS를 참조하세요.

  6. 암호화된 작업 북마크를 사용하는 ETL 작업은 다음 권한이 있어야 합니다.

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt" ], "Resource": "<key-arns-used-for-job-bookmark-encryption>" } }
  7. AWS Glue 콘솔의 탐색 창에서 설정을 선택합니다.

    1. [데이터 카탈로그 설정(Data catalog settings)] 페이지에서 [메타데이터 암호화(Metadata encryption)]를 선택하여 Data Catalog를 암호화합니다. 이 옵션은 사용자가 선택한 AWS KMS 키로 Data Catalog의 모든 객체를 암호화합니다.

    2. AWS KMS 키(AWS KMS key)의 경우 aws/glue를 선택합니다. 직접 만든 고객 마스터 키(CMK)를 선택할 수도 있습니다.

    중요

    AWS Glue에서는 대칭 고객 마스터 키(CMK)만 지원합니다. AWS KMS 키(AWS KMS key) 목록에는 대칭 키만 표시됩니다. 그러나 AWS KMS 키 ARN 선택(Choose a AWS KMS key ARN)을 선택하면 콘솔에서 모든 키 유형의 ARN을 입력할 수 있습니다. 대칭 키에 대한 ARN만 입력해야 합니다.

    암호화가 활성화된 경우 Data Catalog에 액세스하는 클라이언트는 AWS KMS 권한이 있어야 합니다.

  8. 탐색 창에서 보안 구성을 선택합니다. 보안 구성은 AWS Glue 프로세스를 구성할 때 사용할 수 있는 보안 속성 세트입니다. 그런 다음 보안 구성 추가를 선택합니다. 구성에서 다음 옵션 중 하나를 선택합니다.

    1. S3 암호화를 선택합니다. 암호화 모드SSE-KMS를 선택합니다. AWS KMS키aws/s3을 선택합니다(사용자에게 이 키를 사용할 권한이 있어야 합니다). 이제 작업이 Amazon S3에 기록한 데이터로 AWS 관리형 AWS Glue AWS KMS 키를 사용할 수 있습니다.

    2. CloudWatch Logs 암호화를 선택하고 CMK를 선택합니다. 사용자에게 이 키를 사용할 권한이 있어야 합니다. 자세한 내용은 AWS Key Management Service Developer GuideEncrypt Log Data in CloudWatch Logs Using AWS KMS를 참조하세요.

      중요

      AWS Glue에서는 대칭 고객 마스터 키(CMK)만 지원합니다. AWS KMS 키(AWS KMS key) 목록에는 대칭 키만 표시됩니다. 그러나 AWS KMS 키 ARN 선택(Choose a AWS KMS key ARN)을 선택하면 콘솔에서 모든 키 유형의 ARN을 입력할 수 있습니다. 대칭 키에 대한 ARN만 입력해야 합니다.

    3. 고급 속성을 선택하고 작업 북마크 암호화를 선택합니다. AWS KMS키aws/glue를 선택합니다(사용자에게 이 키를 사용할 권한이 있어야 합니다). 이제 Amazon S3에 기록된 작업 북마크를 AWS Glue AWS KMS 키로 암호화할 수 있습니다.

  9. 탐색 창에서 연결을 선택합니다.

    1. 연결 추가를 선택하여 ETL 작업의 대상인 Java Database Connectivity(JDBC) 데이터 스토어에 대한 연결을 생성합니다.

    2. Secure Sockets Layer(SSL) 암호화를 사용하도록 강제하려면 Require SSL connection(SSL 연결 요구)을 선택하고 연결을 테스트합니다.

  10. 탐색 창에서 작업을 선택합니다.

    1. 작업 추가를 선택하여 데이터를 변환하는 작업을 만듭니다.

    2. 작업 정의에서 생성한 보안 구성을 선택합니다.

  11. AWS Glue 콘솔에서 온디맨드 작업을 실행합니다. 작업에서 작성한 Amazon S3 데이터, 작업에서 작성한 CloudWatch Logs 및 작업 북마크가 모두 암호화되어 있는지 확인합니다.