AWS Secrets Manager에 민감한 구성 데이터 저장 - Amazon EMR

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

AWS Secrets Manager에 민감한 구성 데이터 저장

Amazon은 사용자 지정 구성 데이터(예: DescribeClusterListInstanceGroups)를 내보내는 API 작업을 일반 텍스트로 EMR 설명하고 나열합니다. Amazon은 와 EMR 통합되어 Secrets Manager에 데이터를 저장하고 구성ARN에서 보안 암호를 사용할 AWS Secrets Manager 수 있습니다. 이렇게 하면 민감한 구성 데이터를 일반 텍스트로 AmazonEMR에 전달하지 않고 외부 에 노출하지 않습니다APIs. 키-값 페어에 Secrets Manager에 저장된 보안 암호에 ARN 대한 이 포함되어 있음을 나타내는 경우 Amazon은 구성 데이터를 클러스터로 전송할 때 이 보안 암호를 EMR 검색합니다. AmazonEMR은 외부에서 구성을 표시할 때 주석APIs을 보내지 않습니다.

보안 암호 생성

보안 암호를 생성하려면 AWS Secrets Manager 사용 설명서에서 AWS Secrets Manager 보안 암호 생성의 단계를 따릅니다. 3단계에서는 일반 텍스트 필드를 선택하여 민감한 값을 입력해야 합니다.

Secrets Manager는 보안 암호에 최대 65536바이트를 포함할 수 있도록 허용하지만 Amazon은 속성 키(주석 제외)와 검색된 보안 암호 값의 총 길이를 1024자로 EMR 제한합니다.

Amazon에 보안 암호를 검색할 수 있는 EMR 액세스 권한 부여

Amazon은 IAM 서비스 역할을 EMR 사용하여 클러스터를 프로비저닝하고 관리합니다. Amazon의 서비스 역할은 리소스를 프로비저닝하고 클러스터 내에서 실행되는 Amazon EC2 인스턴스의 컨텍스트에서 수행되지 않는 서비스 수준 작업을 수행할 EMR 때 Amazon에 허용되는 작업을 EMR 정의합니다. 서비스 역할에 대한 자세한 내용은 Amazon 서비스 역할EMR(EMR 역할) IAM 역할 사용자 지정 을 참조하세요.

AmazonEMR이 Secrets Manager에서 보안 암호 값을 검색할 수 있도록 하려면 클러스터를 시작할 때 Amazon EMR 역할에 다음 정책 설명을 추가합니다.

{ "Sid":"AllowSecretsRetrieval", "Effect":"Allow", "Action":"secretsmanager:GetSecretValue", "Resource":[ "arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" ] }

고객 관리형 로 보안 암호를 생성하는 경우 사용하는 키에 대한 Amazon EMR 역할의 kms:Decrypt 권한도 추가해야 AWS KMS key합니다. 자세한 내용은 AWS Secrets Manager User GuideAuthentication and access control for AWS Secrets Manager를 참조하세요.

구성 분류에서 보안 암호 사용

모든 구성 속성에 EMR.secret@ 주석을 추가하여 키-값 페어에 Secrets Manager에 저장된 보안 암호에 ARN 대한 이 포함되어 있음을 나타낼 수 있습니다.

다음 예제에서는 구성 분류ARN에서 암호를 제공하는 방법을 보여줍니다.

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "EMR.secret@presto.s3.secret-key":"arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" } }

클러스터를 생성하고 주석이 달린 구성을 제출하면 Amazon은 구성 속성을 EMR 검증합니다. 구성이 유효한 경우 Amazon은 구성에서 주석을 EMR 제거하고 Secrets Manager에서 보안 암호를 검색하여 클러스터에 적용하기 전에 실제 구성을 생성합니다.

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "presto.s3.secret-key":"<my-secret-key-retrieved-from-Secrets-Manager>" } }

와 같은 작업을 호출하면 DescribeClusterAmazon은 클러스터에서 현재 애플리케이션 구성을 EMR 반환합니다. 애플리케이션 구성 속성에 보안 암호가 포함된 것으로 표시된 ARN경우DescribeCluster, 호출에서 반환된 애플리케이션 구성에는 보안 암호 값이 ARN 아닌 이 포함됩니다. 이렇게 하면 클러스터에서만 보안 암호 값을 볼 수 있습니다.

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "presto.s3.secret-key":"arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" } }

보안 암호 값 업데이트

Amazon은 연결된 인스턴스 그룹이 시작, 재구성 또는 크기 조정될 때마다 주석이 달린 구성에서 보안 암호 값을 EMR 검색합니다. Secrets Manager를 사용하여 실행 중인 클러스터의 구성에 사용되는 보안 암호 값을 수정할 수 있습니다. 이렇게 하면 업데이트된 값을 수신할 각 인스턴스 그룹에 재구성 요청을 제출할 수 있습니다. 인스턴스 그룹을 재구성하는 방법 및 재구성 시 고려할 사항에 대한 자세한 내용은 실행 중인 클러스터에서 인스턴스 그룹 재구성 섹션을 참조하세요.