조사 결과의 민감한 데이터 샘플을 검색하기 위한 구성 옵션 및 요구 사항 - Amazon Macie

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

조사 결과의 민감한 데이터 샘플을 검색하기 위한 구성 옵션 및 요구 사항

Amazon Macie를 구성하고 사용하여 Macie가 개별 조사 결과에서 보고하는 민감한 데이터의 샘플을 검색하고 공개할 수 있습니다(선택 사항). 조사 결과의 민감한 데이터 샘플을 검색하여 공개하는 경우 Macie는 해당 민감한 데이터 검색 결과의 데이터를 사용하여 영향을 받는 Amazon Simple Storage Service(S3) 객체에서 민감한 데이터의 발생 위치를 찾습니다. 그런 다음, Macie는 영향을 받는 객체에서 해당 사건의 샘플을 추출합니다. Macie는 지정한 AWS Key Management Service(AWS KMS)키로 추출된 데이터를 암호화하고 암호화된 데이터를 캐시에 임시로 저장한 다음, 조사 결과에 대한 결과에서 해당 데이터를 반환합니다. Macie는 운영 문제 해결을 위해 일시적으로 추가 보존이 필요한 경우를 제외하고 추출 및 암호화 직후 캐시에서 데이터를 영구적으로 삭제합니다.

Macie는 사용자 계정의 Macie 서비스 연결 역할을 사용하여 영향을 받는 S3 객체에서 민감한 데이터 샘플을 찾거나, 검색하거나, 암호화하거나, 공개하지 않습니다. 대신 Macie는 사용자가 계정에 구성한 설정과 리소스를 사용합니다. Macie에서 설정을 구성하는 경우 영향을 받는 S3 객체에 액세스하는 방법을 지정하세요. 또한 샘플을 암호화하는 데 사용할 AWS KMS key를 지정합니다. 아시아 태평양(오사카) 및 이스라엘(텔아비브) 리전을 제외하고 현재 Macie를 사용할 수 있는 모든 AWS 리전에서 설정을 구성할 수 있습니다.

영향을 받는 S3 객체에 액세스하고 해당 객체에서 민감한 데이터 샘플을 검색하기 위한 두 가지 옵션이 있습니다. AWS Identity and Access Management(IAM) 사용자 보안 인증을 사용하거나 IAM 역할을 수임하도록 Macie를 구성할 수 있습니다.

  • IAM 사용자 보안 인증 사용 - 이 옵션을 통해 계정의 각 사용자는 개별 IAM ID를 사용하여 샘플을 찾고, 검색하고, 암호화하고, 공개합니다. 즉, 사용자가 필수 리소스와 데이터에 액세스하고 필요한 작업을 수행하도록 허용되는 경우 조사 결과의 민감한 데이터 샘플을 검색하고 공개할 수 있습니다.

  • IAM 역할 수임 - 이 옵션을 통해 Macie에 액세스 권한을 위임하는 IAM 역할을 생성합니다. 또한 역할에 대한 신뢰 및 권한 정책이 Macie의 역할 수임을 위한 모든 요구 사항을 충족하는지 확인합니다. 그런 다음 Macie는 계정 사용자가 조사 결과의 민감한 데이터 샘플을 찾고, 검색하고, 암호화하고, 공개하기로 선택할 때 해당 역할을 수임합니다.

조직의 위임된 Macie 관리자 계정, 조직의 Macie 멤버 계정, 독립 실행형 Macie 계정 등 모든 Macie 계정 유형의 각 구성을 사용할 수 있습니다.

다음 주제에서는 계정의 설정 및 리소스를 구성하는 방법을 결정하는 데 도움이 되는 옵션, 요구 사항, 고려 사항에 대해 설명합니다. 여기에는 IAM 역할에 연결할 신뢰 및 권한 정책이 포함됩니다. 민감한 데이터 샘플을 검색하고 공개하는 데 사용할 수 있는 추가 권장 사항 및 정책의 예는 AWS 보안 블로그의 How to use Amazon Macie to preview sensitive data in S3 buckets 블로그 게시물을 참조하세요.

사용할 액세스 방법 결정

AWS 환경에 가장 적합한 구성을 결정하는 경우 주요 고려 사항은 중앙에서 조직으로 관리되는 여러 Amazon Macie 계정이 환경에 포함되어 있는지 여부입니다. 조직의 위임된 Macie 관리자인 경우 IAM 역할을 수임하도록 Macie를 구성하면 조직 계정의 영향을 받는 S3 객체에서 민감한 데이터 샘플을 효율적으로 검색할 수 있습니다. 이 접근 방식을 사용하면 관리자 계정에 IAM 역할을 생성할 수 있습니다. 또한 해당하는 각 멤버 계정에 IAM 역할을 생성합니다. 관리자 계정의 역할은 Macie에 액세스 권한을 위임합니다. 멤버 계정의 역할은 관리자 계정의 역할에 크로스 계정 액세스 권한을 위임합니다. 구현되면 역할 체인을 사용하여 멤버 계정의 영향을 받는 S3 객체에 액세스할 수 있습니다.

또한 기본적으로 개별 조사 결과에 직접 액세스할 수 있는 사람이 누구인지도 고려합니다. 조사 결과의 민감한 데이터 샘플을 검색하고 공개하려면 사용자에게 먼저 조사 결과에 대한 액세스 권한이 있어야 합니다.

  • 민감한 데이터 검색 작업 – 작업을 생성한 계정만 해당 작업이 생성한 조사 결과에 액세스할 수 있습니다. Macie 관리자 계정인 경우 조직 내 모든 계정의 S3 버킷에 있는 객체를 분석하도록 작업을 구성할 수 있습니다. 따라서 작업을 통해 멤버 계정이 소유한 버킷의 객체에 대한 조사 결과가 생성될 수 있습니다. 멤버 계정이나 독립 실행형 Macie 계정이 있는 경우 해당 계정이 소유한 버킷의 객체만 분석하도록 작업을 구성할 수 있습니다.

  • 자동화된 민감한 데이터 검색 – Macie 관리자 계정만 조직의 계정을 대상으로 자동화된 검색이 생성하는 조사 결과에 액세스할 수 있습니다. 멤버 계정은 이러한 조사 결과에 액세스할 수 없습니다. 독립 실행형 Macie 계정인 경우 본인의 계정을 대상으로만 자동 검색이 생성하는 조사 결과에 액세스할 수 있습니다.

IAM 역할을 사용하여 영향을 받는 S3 객체에 액세스하려는 경우 다음 사항도 고려하세요.

  • 객체에서 민감한 데이터의 발생 위치를 찾으려면 조사 결과의 해당하는 민감한 데이터 검색 결과를 Macie가 해시 기반 메시지 인증 코드(HMAC) AWS KMS key로 서명한 S3 객체에 저장해야 합니다. Macie는 민감한 데이터 검색 결과의 무결성과 신뢰성을 확인할 수 있어야 합니다. 그러지 않으면 Macie가 민감한 데이터 샘플을 검색하는 IAM 역할을 수임하지 않습니다. 이는 계정의 S3 객체에 있는 데이터에 대한 액세스를 제한하기 위한 추가 가드레일입니다.

  • 고객 관리형 AWS KMS key로 암호화된 객체에서 민감한 데이터 샘플을 검색하려면 IAM 역할이 키를 사용하여 데이터를 해독하도록 허용해야 합니다. 더 구체적으로 말하면 키 정책은 역할이 kms:Decrypt 작업을 수행할 수 있도록 허용해야 합니다. 다른 서버측 암호화 유형의 경우 영향을 받는 객체를 해독하는 데 추가 권한이나 리소스가 필요하지 않습니다. 자세한 내용은 영향을 받는 S3 객체 암호 해독 섹션을 참조하세요.

  • 다른 계정의 객체에서 민감한 데이터 샘플을 검색하려면 현재 해당 AWS 리전의 계정에 대해 위임된 Macie 관리자여야 합니다. 또한 다음과 같습니다.

    • 현재 해당 리전의 멤버 계정에 대해 Macie가 활성화되어 있어야 합니다.

    • 멤버 계정에는 Macie 관리자 계정의 IAM 역할에 크로스 계정 액세스 권한을 위임하는 IAM 역할이 있어야 합니다. 역할의 이름은 Macie 관리자 계정과 멤버 계정에서 동일해야 합니다.

    • 멤버 계정의 IAM 역할에 대한 신뢰 정책에는 구성에 맞는 올바른 외부 ID를 지정하는 조건이 포함되어야 합니다. 이 ID는 Macie 관리자 계정의 설정을 구성한 후 Macie에서 자동으로 생성하는 고유한 영숫자 문자열입니다. 신뢰 정책에서 외부 ID를 사용하는 방법에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서에서 AWS 리소스에 대한 액세스 권한을 타사에 부여할 때 외부 ID를 사용하는 방법을 참조하세요.

    • 멤버 계정의 IAM 역할이 모든 Macie 요구 사항을 충족하는 경우 해당 계정의 객체에서 민감한 데이터 샘플을 검색하기 위해 멤버 계정에서 Macie 설정을 구성하고 활성화할 필요가 없습니다. Macie는 Macie 관리자 계정의 설정 및 IAM 역할과 멤버 계정의 IAM 역할만 사용합니다.

      작은 정보

      계정이 대규모 조직에 속해 있는 경우 AWS CloudFormation 템플릿 및 스택 세트를 사용하여 조직의 멤버 계정에 대한 IAM 역할을 프로비저닝하고 관리하는 것을 고려하세요. 템플릿과 스택 세트를 생성하고 사용하는 방법에 대한 자세한 내용은 AWS CloudFormation 사용 설명서를 참조하세요.

      시작점으로 사용할 수 있는 CloudFormation 템플릿을 검토하고 선택적으로 다운로드하려면 Amazon Macie 콘솔을 사용하면 됩니다. 콘솔의 탐색 창에 있는 설정에서 샘플 표시를 선택합니다. 편집을 선택한 다음 멤버 역할 권한 및 CloudFormation 템플릿 보기를 선택합니다.

이 섹션의 다음 주제에서는 각 구성 유형의 추가 세부 정보와 고려 사항에 대해 설명합니다. IAM 역할의 경우 여기에는 역할에 연결할 신뢰 및 권한 정책이 포함됩니다. 어떤 유형의 구성이 사용자 환경에 가장 적합한지 잘 모르겠다면 AWS 관리자에게 도움을 요청하세요.

IAM 사용자 보안 인증을 사용하여 영향을 받는 S3 객체에 액세스

IAM 사용자 보안 인증을 사용하여 민감한 데이터 샘플을 검색하도록 Amazon Macie를 구성하는 경우 Macie 계정의 각 사용자는 IAM ID를 사용하여 개별 조사 결과에 대한 샘플을 찾고, 검색하고, 암호화하고, 공개합니다. 즉, 사용자의 IAM ID가 필수 리소스와 데이터에 액세스하고 필요한 작업을 수행하도록 허용된 경우 조사 결과의 민감한 데이터 샘플을 검색하고 공개할 수 있습니다. 모든 필수 조치가 로그인AWS CloudTrail되어 있습니다.

특정 조사 결과의 민감한 데이터 샘플을 검색하고 공개하려면 사용자에게 조사 결과, 해당 민감한 데이터의 검색 결과, 영향을 받은 S3 버킷, 영향을 받은 S3 객체 등의 데이터와 리소스에 액세스할 수 있는 권한이 있어야 합니다. 또한 해당하는 경우 영향을 받는 객체를 암호화하는 데 사용된 AWS KMS key와 민감한 데이터 샘플을 암호화하는 데 사용하도록 Macie를 구성한 AWS KMS key를 사용할 수 있도록 허용해야 합니다. IAM 정책, 리소스 정책 또는 기타 권한 설정이 필수 액세스를 거부하는 경우 사용자는 조사 결과의 샘플을 검색하거나 공개할 수 없습니다.

이러한 유형의 구성을 설정하려면 다음과 같은 일반적인 작업을 완료하세요.

  1. 민감한 데이터 검색 결과의 리포지토리를 구성했는지 확인합니다.

  2. 민감한 데이터 샘플의 암호화에 AWS KMS key를 사용하도록 구성합니다.

  3. Macie에서 설정을 구성하기 위한 권한을 확인합니다.

  4. Macie에서 설정을 구성하고 활성화합니다.

이러한 작업 수행에 대한 자세한 내용은 조사 결과와 함께 민감한 데이터 샘플을 검색하고 공개하도록 Amazon Macie 구성 섹션을 참조하세요.

영향을 받는 S3 객체에 액세스하기 위해 IAM 역할 수임

IAM 역할을 수임하여 민감한 데이터 샘플을 검색하도록 Amazon Macie를 구성하려면 먼저 Macie에 액세스 권한을 위임하는 IAM 역할을 만듭니다. 역할에 대한 신뢰 및 권한 정책이 Macie의 역할 수임을 위한 모든 요구 사항을 충족하는지 확인합니다. Macie 계정 사용자가 조사 결과의 민감한 데이터 샘플을 검색하고 공개하도록 선택하면 Macie는 영향을 받은 S3 객체에서 샘플을 검색하는 역할을 수임합니다. Macie는 사용자가 조사 결과의 샘플을 검색하고 공개하도록 선택한 경우에만 역할을 수임합니다. Macie는 역할을 수임하기 위해 AWS Security Token Service(AWS STS) API의 AssumeRole 작업을 사용합니다. 모든 필수 조치가 로그인AWS CloudTrail되어 있습니다.

특정 조사 결과의 민감한 데이터 샘플을 검색하고 공개하려면 사용자가 조사 결과, 해당 민감한 데이터의 검색 결과, 민감한 데이터 샘플을 암호화하는 데 사용하도록 Macie를 구성한 AWS KMS key에 액세스할 수 있어야 합니다. IAM 역할은 Macie가 영향을 받는 S3 버킷 및 영향을 받는 S3 객체에 액세스할 수 있도록 허용해야 합니다. 또한 해당되는 경우 해당 역할은 영향을 받는 객체를 암호화하는 데 사용된 AWS KMS key를 사용할 수 있어야 합니다. IAM 정책, 리소스 정책 또는 기타 권한 설정이 필수 액세스를 거부하는 경우 사용자는 조사 결과의 샘플을 검색하거나 공개할 수 없습니다.

이러한 유형의 구성을 설정하려면 다음과 같은 일반적인 작업을 완료하세요. 조직의 멤버 계정인 경우 Macie 관리자와 함께 계정의 설정 및 리소스 구성 여부와 구성 방법을 결정합니다.

  1. 다음을 정의합니다.

    • Macie에 수임할 IAM 역할의 이름 계정이 조직에 속해 있는 경우 이 이름은 위임된 Macie 관리자 계정과 조직의 각 해당 멤버 계정에 대해 동일해야 합니다. 그러지 않으면 Macie 관리자는 해당 멤버 계정의 영향을 받는 S3 객체에 액세스할 수 없습니다.

    • IAM 역할에 연결할 IAM 권한 정책의 이름 계정이 조직에 속해 있는 경우 조직의 각 해당 멤버 계정에 대해 동일한 정책 이름을 사용하는 것이 좋습니다. 이를 통해 멤버 계정의 역할 프로비저닝 및 관리를 간소화할 수 있습니다.

  2. 민감한 데이터 검색 결과의 리포지토리를 구성했는지 확인합니다.

  3. 민감한 데이터 샘플의 암호화에 AWS KMS key를 사용하도록 구성합니다.

  4. Macie에서 IAM 역할을 생성하고 설정을 구성하기 위한 권한을 확인합니다.

  5. 조직의 위임된 Macie 관리자이거나 독립 실행형 Macie 계정인 경우:

    1. 계정에 대한 IAM 역할을 생성하고 구성합니다. 역할에 대한 신뢰 및 권한 정책이 Macie의 역할 수임을 위한 모든 요구 사항을 충족하는지 확인합니다. 이러한 요구 사항에 대한 자세한 내용은 다음 주제를 참조하세요.

    2. Macie에서 설정을 구성하고 활성화합니다. 그러면 Macie가 구성을 위한 외부 ID를 생성합니다. 조직의 Macie 관리자인 경우 이 ID를 기록해 두세요. 해당되는 각 멤버 계정의 IAM 역할에 대한 신뢰 정책에 이 ID가 지정되어 있어야 합니다.

  6. 조직의 멤버 계정인 경우:

    1. 계정의 IAM 역할에 대한 신뢰 정책에 지정할 외부 ID를 Macie 관리자에게 요청하세요. 또한 생성할 IAM 역할 및 권한 정책의 이름을 확인합니다.

    2. 계정에 대한 IAM 역할을 생성하고 구성합니다. 역할에 대한 신뢰 및 권한 정책이 Macie 관리자가 역할을 수임하는 데 필요한 모든 요구 사항을 충족하는지 확인합니다. 이러한 요구 사항에 대한 자세한 내용은 다음 주제를 참조하세요.

    3. (선택 사항) 사용자 계정의 영향을 받는 S3 객체에서 민감한 데이터 샘플을 검색하고 공개하려면 Macie에서 설정을 구성하고 활성화합니다. Macie가 IAM 역할을 수임하여 샘플을 검색하도록 하려면 먼저 계정에서 추가 IAM 역할을 생성하고 구성합니다. 이 추가적인 역할에 대한 신뢰 및 권한 정책이 Macie의 역할 수임을 위한 모든 요구 사항을 충족하는지 확인합니다. 그런 다음 Macie에서 설정을 구성하고 추가 역할의 이름을 지정합니다. 역할의 정책 요구 사항에 대한 자세한 내용은 다음 주제를 참조하세요.

이러한 작업 수행에 대한 자세한 내용은 조사 결과와 함께 민감한 데이터 샘플을 검색하고 공개하도록 Amazon Macie 구성 섹션을 참조하세요.

영향을 받는 S3 객체에 액세스하도록 IAM 역할 구성

IAM 역할을 사용하여 영향을 받는 S3 객체에 액세스하려면 먼저 Amazon Macie에 액세스 권한을 위임하는 역할을 생성하고 구성합니다. 역할에 대한 신뢰 및 권한 정책이 Macie의 역할 수임을 위한 모든 요구 사항을 충족하는지 확인합니다. 이 작업을 수행하는 방법은 보유하고 있는 Macie 계정의 유형에 따라 다릅니다.

다음 섹션에서는 각 Macie 계정 유형의 IAM 역할에 연결할 신뢰 및 권한 정책에 대해 자세히 설명합니다. 보유한 계정 유형에 해당하는 섹션을 선택하세요.

참고

조직의 멤버 계정인 경우 계정에 2개의 IAM 역할을 생성하고 구성해야 할 수도 있습니다.

  • Macie 관리자가 계정의 영향을 받는 S3 객체에서 민감한 데이터 샘플을 검색하고 공개할 수 있도록 허용하려면 관리자 계정이 수임할 수 있는 역할을 생성하고 구성합니다. 자세한 내용을 보려면 Macie 멤버 계정 섹션을 선택합니다.

  • 본인 계정의 영향을 받은 S3 객체에서 민감한 데이터 샘플을 검색하고 공개하려면 Macie가 수임할 수 있는 역할을 생성하고 구성합니다. 자세한 내용을 보려면 독립 실행형 Macie 계정 섹션을 선택합니다.

IAM 역할을 생성하고 구성하기 전에 Macie 관리자와 함께 계정에 적합한 구성을 결정합니다.

IAM을 사용하여 역할을 생성하는 방법에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서의 사용자 지정 신뢰 정책을 사용하여 역할 생성을 참조하세요.

조직의 위임된 Macie 관리자인 경우 먼저 IAM 정책 편집기를 사용하여 IAM 역할에 대한 권한 정책을 생성합니다. 정책은 다음과 같아야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RetrieveS3Objects", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "*" ] }, { "Sid": "AssumeMacieRevealRoleForCrossAccountAccess", "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::*:role/IAMRoleName" } ] }

여기서 IAMRoleName은 조직 내 계정의 영향을 받는 S3 객체에서 민감한 데이터 샘플을 검색할 때 Macie가 수임할 IAM 역할의 이름입니다. 이 값을 자신의 계정 또는 조직의 해당 멤버 계정에 대해 생성할 계획인 역할의 이름으로 바꿉니다. 이 이름은 Macie 관리자 계정과 해당하는 각 멤버 계정에서 동일해야 합니다.

참고

앞의 권한 정책에서 첫 번째 문에 있는 Resource 요소는 와일드카드 문자(*)를 사용합니다. 이를 통해 연결된 IAM 엔터티는 조직이 소유한 모든 S3 버킷에서 객체를 검색할 수 있습니다. 특정 버킷에 대해서만 이 액세스를 허용하려면 와일드카드 문자를 각 버킷의 Amazon 리소스 이름(ARN)으로 바꿉니다. 예를 들어 DOC-EXAMPLE-BUCKET이라는 버킷의 객체에만 액세스를 허용하려면 요소를 다음과 같이 바꿉니다.

"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"

개별 계정의 특정 S3 버킷에 있는 객체에 대한 액세스를 제한할 수도 있습니다. 이렇게 하려면 각 해당 계정의 IAM 역할에 대한 권한 정책에서 Resource 요소에 버킷 ARN을 지정합니다. 자세한 내용과 예제는 AWS Identity and Access Management 사용 설명서의 IAM JSON 정책 요소: Resource를 참조하세요.

IAM 역할에 대한 권한 정책을 생성한 후 역할을 생성하고 구성합니다. IAM 콘솔을 사용하여 이 작업을 수행하는 경우 역할에 대한 신뢰할 수 있는 엔터티 유형으로 사용자 지정 신뢰 정책을 선택합니다. 역할에 대해 신뢰할 수 있는 엔터티를 정의하는 신뢰 정책의 경우 다음을 지정합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowMacieReveal", "Effect": "Allow", "Principal": { "Service": "reveal-samples.macie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "accountID" } } } ] }

여기서 accountID는 AWS 계정의 계정 ID입니다. 이 값을 12자리 계정 ID로 바꿉니다.

앞의 신뢰 정책에서:

  • Principal 요소는 영향을 받는 S3 개체인 reveal-samples.macie.amazonaws.com에서 민감한 데이터 샘플을 검색할 때 Macie가 사용하는 서비스 주체를 지정합니다.

  • Action 요소는 서비스 주체가 수행할 수 있는 작업인 AWS Security Token Service(AWS STS) API의 AssumeRole 작업을 지정합니다.

  • Condition 요소는 aws:SourceAccount 전역 조건 컨텍스트 키를 사용하는 조건을 정의합니다. 이 조건에 따라 지정된 작업을 수행할 수 있는 계정이 결정됩니다. 이 경우 Macie가 지정된 계정(accountID)에 대해서만 역할을 수임할 수 있습니다. 이 조건은 Macie가 거래 중에 AWS STS와 혼동된 대리자로 사용되는 것을 방지하는 데 도움이 됩니다.

IAM 역할에 대한 신뢰 정책을 정의한 후 권한 정책을 역할에 연결합니다. 이 권한 정책은 역할 생성을 시작하기 전에 생성한 권한 정책이어야 합니다. 그런 다음 IAM의 나머지 단계를 완료하여 역할 생성 및 구성을 완료합니다. 완료하면 Macie에서 설정을 구성하고 활성화합니다.

Macie 멤버 계정이고 Macie 관리자가 계정의 영향을 받는 S3 객체에서 민감한 데이터 샘플을 검색하여 공개할 수 있도록 허용하려면 먼저 Macie 관리자에게 다음 정보를 요청합니다.

  • 생성하려는 IAM 역할의 이름 사용자 계정의 이름과 조직의 Macie 관리자 계정 이름이 동일해야 합니다.

  • 역할에 연결할 IAM 권한 정책의 이름

  • 역할에 대한 신뢰 정책에 지정할 외부 ID 이 ID는 Macie 관리자 구성을 위해 Macie에서 생성한 외부 ID여야 합니다.

이 정보를 받은 후 IAM 정책 편집기를 사용하여 역할에 대한 권한 정책을 생성합니다. 정책은 다음과 같아야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RetrieveS3Objects", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "*" ] } ] }

앞의 권한 정책은 연결된 IAM 엔터티가 계정의 모든 S3 버킷에서 객체를 검색하도록 허용합니다. 이는 정책의 Resource 요소가 와일드카드 문자(*)를 사용하기 때문입니다. 특정 버킷에 대해서만 이 액세스를 허용하려면 와일드카드 문자를 각 버킷의 Amazon 리소스 이름(ARN)으로 바꿉니다. 예를 들어 DOC-EXAMPLE-BUCKET2이라는 버킷의 객체에만 액세스를 허용하려면 요소를 다음과 같이 바꿉니다.

"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET2/*"

자세한 내용과 예제는 AWS Identity and Access Management 사용 설명서의 IAM JSON 정책 요소: Resource를 참조하세요.

IAM 역할에 대한 권한 정책을 생성한 후 역할을 생성합니다. IAM 콘솔을 사용하여 역할을 생성하는 경우 역할의 신뢰할 수 있는 엔터티 유형으로 사용자 지정 신뢰 정책을 선택합니다. 역할에 대해 신뢰할 수 있는 엔터티를 정의하는 신뢰 정책의 경우 다음을 지정합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowMacieAdminRevealRoleForCrossAccountAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::administratorAccountID:role/IAMRoleName" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "externalID", "aws:PrincipalOrgID": "${aws:ResourceOrgID}" } } } ] }

앞의 정책에서 자리 표시자 값을 AWS 환경에 맞는 올바른 값으로 바꿉니다.

  • 여기에서 administratorAccountID는 Macie 관리자 계정의 12자리 계정 ID입니다.

  • IAMRoleName은 Macie 관리자 계정의 IAM 역할 이름입니다. 이는 Macie 관리자로부터 받은 이름이어야 합니다.

  • externalID는 Macie 관리자로부터 받은 외부 ID입니다.

일반적으로 신뢰 정책을 통해 Macie 관리자는 계정의 영향을 받는 S3 객체에서 민감한 데이터 샘플을 검색하고 공개하는 역할을 수임할 수 있습니다. Principal 요소는 Macie 관리자 계정에 있는 IAM 역할의 ARN을 지정합니다. 이 역할은 Macie 관리자가 조직 내 계정의 민감한 데이터 샘플을 검색하고 공개하는 데 사용하는 역할입니다. Condition 블록은 역할을 수임할 수 있는 사람을 추가로 결정하는 2가지 조건을 정의합니다.

  • 첫 번째 조건은 조직의 구성에 고유한 외부 ID를 지정합니다. 외부 ID에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서의 AWS 리소스에 대한 액세스 권한을 타사에 부여할 때 외부 ID를 사용하는 방법을 참조하세요.

  • 두 번째 조건은 aws:PrincipalOrgID 전역 조건 컨텍스트 키를 사용합니다. 키 값은 AWS Organizations(${aws:ResourceOrgID})에 있는 조직의 고유 식별자를 나타내는 동적 변수입니다. 이 조건은 AWS Organizations에서 동일한 조직에 속한 계정으로만 액세스를 제한합니다. Macie에서 초대를 수락하여 조직에 가입한 경우 정책에서 이 조건을 제거합니다.

IAM 역할에 대한 신뢰 정책을 정의한 후 권한 정책을 역할에 연결합니다. 이 권한 정책은 역할 생성을 시작하기 전에 생성한 권한 정책이어야 합니다. 그런 다음 IAM의 나머지 단계를 완료하여 역할 생성 및 구성을 완료합니다. Macie에서 역할의 설정을 구성하고 입력하지 마세요.

독립 실행형 Macie 계정 또는 Macie 멤버 계정이고 본인 계정의 영향을 받는 S3 객체에서 민감한 데이터 샘플을 검색하고 공개하려면 먼저 IAM 정책 편집기를 사용하여 IAM 역할에 대한 권한 정책을 생성합니다. 정책은 다음과 같아야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RetrieveS3Objects", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "*" ] } ] }

앞의 권한 정책에서 Resource 요소는 와일드카드 문자(*)를 사용합니다. 이를 통해 연결된 IAM 엔터티는 사용자 계정의 모든 S3 버킷에서 객체를 검색할 수 있습니다. 특정 버킷에 대해서만 이 액세스를 허용하려면 와일드카드 문자를 각 버킷의 Amazon 리소스 이름(ARN)으로 바꿉니다. 예를 들어 DOC-EXAMPLE-BUCKET3이라는 버킷의 객체에만 액세스를 허용하려면 요소를 다음과 같이 바꿉니다.

"Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET3/*"

자세한 내용과 예제는 AWS Identity and Access Management 사용 설명서의 IAM JSON 정책 요소: Resource를 참조하세요.

IAM 역할에 대한 권한 정책을 생성한 후 역할을 생성합니다. IAM 콘솔을 사용하여 역할을 생성하는 경우 역할의 신뢰할 수 있는 엔터티 유형으로 사용자 지정 신뢰 정책을 선택합니다. 역할에 대해 신뢰할 수 있는 엔터티를 정의하는 신뢰 정책의 경우 다음을 지정합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowMacieReveal", "Effect": "Allow", "Principal": { "Service": "reveal-samples.macie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "accountID" } } } ] }

여기서 accountID는 AWS 계정의 계정 ID입니다. 이 값을 12자리 계정 ID로 바꿉니다.

앞의 신뢰 정책에서:

  • Principal 요소는 영향을 받는 S3 객체인 reveal-samples.macie.amazonaws.com에서 민감한 데이터 샘플을 검색하고 공개할 때 Macie가 사용하는 서비스 주체를 지정합니다.

  • Action 요소는 서비스 주체가 수행할 수 있는 작업인 AWS Security Token Service(AWS STS) API의 AssumeRole 작업을 지정합니다.

  • Condition 요소는 aws:SourceAccount 전역 조건 컨텍스트 키를 사용하는 조건을 정의합니다. 이 조건에 따라 지정된 작업을 수행할 수 있는 계정이 결정됩니다. 이를 통해 Macie는 지정된 계정(accountID)에 대해서만 역할을 수임할 수 있습니다. 이 조건은 Macie가 거래 중에 AWS STS와 혼동된 대리자로 사용되는 것을 방지하는 데 도움이 됩니다.

IAM 역할에 대한 신뢰 정책을 정의한 후 권한 정책을 역할에 연결합니다. 이 권한 정책은 역할 생성을 시작하기 전에 생성한 권한 정책이어야 합니다. 그런 다음 IAM의 나머지 단계를 완료하여 역할 생성 및 구성을 완료합니다. 완료하면 Macie에서 설정을 구성하고 활성화합니다.

영향을 받는 S3 객체 암호 해독

Amazon S3는 S3 객체에 대한 여러 암호화 옵션을 지원합니다. 이러한 옵션의 대부분은 영향을 받는 객체에서 민감한 데이터 샘플을 해독하고 검색하는 데 IAM 사용자나 역할에 추가 리소스나 권한이 필요하지 않습니다. 이는 Amazon S3 관리형 키 또는 AWS 관리형 AWS KMS key를 사용한 서버측 암호화를 사용하여 암호화된 객체의 경우입니다.

하지만 고객 관리형 AWS KMS key를 사용하여 S3 객체를 암호화하는 경우 객체에서 민감한 데이터 샘플의 암호를 해독하고 검색하려면 추가 권한이 필요합니다. 더 구체적으로 말하면 KMS 키에 대한 키 정책은 IAM 사용자 또는 역할이 kms:Decrypt 작업을 수행할 수 있도록 허용해야 합니다. 그렇지 않으면 오류가 발생하고 Macie가 객체에서 샘플을 검색하지 않습니다. IAM 사용자에게 해당 액세스 권한을 제공하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서에서 Authentication and access control for AWS KMS를 참조하세요.

IAM 역할에 이 액세스 권한을 제공하는 방법은 AWS KMS key를 소유한 계정이 다음 역할도 소유하는지 여부에 따라 달라집니다.

  • 동일한 계정이 KMS 키와 역할을 소유한 경우 해당 계정의 사용자가 키 정책을 업데이트해야 합니다.

  • 한 계정이 KMS 키를 소유하고 다른 계정이 역할을 소유한 경우 키를 소유한 계정의 사용자는 키에 대한 크로스 계정 액세스를 허용해야 합니다.

이 주제에서는 S3 객체에서 민감한 데이터 샘플을 검색하기 위해 만든 IAM 역할에 대해 이러한 작업을 수행하는 방법에 대해 설명합니다. 또한 두 시나리오에 대한 예도 제공합니다. 다른 시나리오에서 고객 관리형 AWS KMS keys에 대한 액세스를 허용하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 Authentication and access control for AWS KMS를 참조하세요.

고객 관리형 키에 대한 동일 계정 액세스 허용

동일한 계정이 AWS KMS key와 IAM 역할을 모두 소유하고 있는 경우 해당 계정의 사용자는 키의 정책에 문을 추가해야 합니다. 추가 문은 IAM 역할이 키를 사용하여 데이터를 해독할 수 있도록 허용해야 합니다. 키 정책을 수정하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서키 정책 변경을 참조하세요.

성명문에서:

  • Principal 요소는 IAM 역할의 Amazon 리소스 이름(ARN)을 지정해야 합니다.

  • Action 배열은 kms:Decrypt 작업을 지정해야 합니다. 이 작업은 키로 암호화된 객체를 해독하기 위해 IAM 역할이 수행하도록 허용되어야 하는 유일한 AWS KMS 작업입니다.

다음은 KMS 키 정책에 추가할 수 있는 성명문의 예입니다.

{ "Sid": "Allow the Macie reveal role to use the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/IAMRoleName" }, "Action": [ "kms:Decrypt" ], "Resource": "*" }

이전 예제에서:

  • Principal 요소의 AWS 필드는 계정에 있는 IAM 역할의 ARN을 지정합니다. 이를 통해 역할이 정책 문에 지정된 작업을 수행할 수 있습니다. 123456789012는 계정 ID의 예입니다. 이 값을 역할을 소유한 계정의 계정 ID 및 KMS 키로 바꿉니다. IAMRoleName은 예시 이름입니다. 이 값을 계정에 있는 IAM 역할의 이름으로 바꿉니다.

  • Action 배열은 키로 암호화된 KMS 키-암호 해독 사이퍼텍스트를 사용하여 IAM 역할이 수행할 수 있는 작업을 지정합니다.

이 성명문을 키 정책에 추가하는 위치는 정책에 현재 포함되어 있는 구조 및 요소에 따라 달라집니다. 정책에 성명문을 추가할 때 구문이 올바른지 확인합니다. 키 정책은 JSON 형식입니다. 즉, 정책에 성명문을 추가하는 위치에 따라 명령문 앞이나 뒤에 쉼표를 추가해야 합니다.

고객 관리형 키에 대한 크로스 계정 액세스 허용

한 계정이 AWS KMS key를 소유하고(키 소유자) 다른 계정이 IAM 역할을 소유하는(역할 소유자) 경우 키 소유자는 역할 소유자에게 키에 대한 크로스 계정 액세스 권한을 제공해야 합니다. 이를 위한 한 가지 방법은 권한 부여를 사용하는 것입니다. 권한 부여는 AWS보안 주체가 암호화 작업에서 KMS 키를 사용할 수 있도록 하는 정책 도구입니다. 권한 부여에 대해 자세히 알아보려면 AWS Key Management Service개발자 안내서AWS KMS 권한 부여를 참조하세요.

이 접근 방식을 사용하면 키 소유자는 먼저 키의 정책에서 역할 소유자가 키에 대한 권한을 만들 수 있도록 허용하는지 확인합니다. 그러면 역할 소유자가 키에 대한 권한 부여를 생성합니다. 권한을 부여하면 계정의 IAM 역할에 관련 권한이 위임됩니다. 이 키를 사용하면 역할이 키로 암호화된 S3 객체를 해독할 수 있습니다.

1단계: 키 정책 업데이트

키 정책에서 키 소유자는 역할 소유자가 자신(역할 소유자) 계정에서 IAM 역할에 대한 권한 부여를 생성할 수 있도록 허용하는 문이 정책에 포함되어 있는지 확인해야 합니다. 이 문에서 Principal 요소는 역할 소유자 계정의 ARN을 지정해야 합니다. Action 배열은 kms:CreateGrant 작업을 지정해야 합니다. Condition 블록은 지정된 작업에 대한 액세스를 필터링할 수 있습니다. 다음은 KMS 키를 위한 정책 안의 성명문의 예입니다.

{ "Sid": "Allow a role in an account to create a grant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringEquals": { "kms:GranteePrincipal": "arn:aws:iam::111122223333:role/IAMRoleName" }, "ForAllValues:StringEquals": { "kms:GrantOperations": "Decrypt" } } }

이전 예제에서:

  • Principal 요소의 AWS 필드는 역할 소유자 계정의 ARN을 지정합니다. 계정에서 정책 정책에 지정된 작업을 수행할 수 있도록 허용합니다. 111122223333은 계정 ID의 예입니다. 이 값을 역할 소유자 계정의 계정 ID로 바꿉니다.

  • Action 배열은 역할 소유자가 KMS 키에 대해 수행할 수 있는 작업(키에 대한 권한 부여 생성)을 지정합니다.

  • Condition 블록은 조건 연산자와 다음 조건 키를 사용하여 역할 소유자가 KMS 키에 대해 수행할 수 있는 작업에 대한 액세스를 필터링합니다.

    • kms:GranteePrincipal - 이 조건을 사용하면 역할 소유자는 자신의 계정에 있는 IAM 역할의 ARN인 지정된 피부여자 보안 주체에 대해서만 권한 부여를 생성할 수 있습니다. 해당 ARN에서 111122223333은 예시계정 ID입니다. 이 값을 역할 소유자 계정의 계정 ID로 바꿉니다. IAMRoleName은 예시 이름입니다. 이 값을 역할 소유자의 계정에 있는 IAM 역할의 이름으로 바꿉니다.

    • kms:GrantOperations - 이 조건을 사용하면 역할 소유자가 AWS KMS Decrypt 작업(키를 사용하여 암호화된 사이퍼텍스트 해독)을 수행할 수 있는 권한만 위임할 수 있는 권한을 만들 수 있습니다. 이는 역할 소유자가 KMS 키에 대해 다른 작업을 수행할 수 있는 권한을 위임하는 권한을 만들지 못하도록 합니다. Decrypt 작업은 키로 암호화된 객체를 해독하기 위해 IAM 역할이 수행하도록 허용되어야 하는 유일한 AWS KMS 작업입니다.

키 소유자가 키 정책에 이 문을 추가하는 위치는 현재 정책에 포함된 구조와 요소에 따라 달라집니다. 키 소유자가 성명문을 추가할 때, 구문이 유효한지 확인해야 합니다. 키 정책은 JSON 형식입니다. 이는 키 소유자가 정책에 성명문을 정책에 추가하는 위치에 따라 성명문 앞이나 뒤에 쉼표를 추가해야 합니다. 키 정책을 수정하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서키 정책 변경을 참조하세요.

2단계: 권한 부여 생성

키 소유자가 필요에 따라 키 정책을 업데이트하면 역할 소유자가 키에 대한 권한 부여를 생성합니다. 이 권한을 부여하면 해당 권한은 (역할 소유자의) 계정에 있는 IAM 역할에 위임됩니다. 역할 소유자는 권한을 생성하기 전에 kms:CreateGrant 작업을 수행하도록 허용되었는지 확인해야 합니다. 이 작업을 통해 기존 고객 관리형 AWS KMS key에 권한 부여를 추가할 수 있습니다.

권한 부여를 생성하기 위해 역할 소유자는 AWS Key Management Service API의 CreateGrant 작업을 사용할 수 있습니다. 역할 소유자는 권한 부여를 생성할 때 필수 파라미터에 다음 값을 지정해야 합니다.

  • KeyId - KMS 키의 ARN KMS 키에 대한 크로스 계정 액세스의 경우 이 값은 ARN이어야 합니다. 키 ID일 수 없습니다.

  • GranteePrincipal - 계정에 있는 IAM 역할의 ARN 이 값은 arn:aws:iam::111122223333:role/IAMRoleName이여야 합니다. 여기서 111122223333은 역할 소유자 계정의 계정 ID이고 IAMRoleName은 역할의 이름입니다.

  • Operations - AWS KMS 암호 해독 작업(Decrypt). 이 작업은 KMS 키로 암호화된 객체를 해독하기 위해 IAM 역할이 수행하도록 허용되어야 하는 유일한 AWS KMS 작업입니다.

역할 소유자가 AWS Command Line Interface(AWS CLI)를 사용하는 경우 create-grant 명령을 실행하여 권한 부여를 생성할 수 있습니다. 다음 예에서는 이 작업을 수행하는 방법을 보여줍니다. 이 예제는 Microsoft Windows용으로 포맷되었으며 가독성을 높이기 위해 캐럿 (^) 줄 연속 문자를 사용합니다.

C:\> aws kms create-grant ^ --key-id arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab ^ --grantee-principal arn:aws:iam::111122223333:role/IAMRoleName ^ --operations "Decrypt"

위치:

  • key-id권한 부여를 적용할 KMS 키의 ARN을 지정합니다.

  • grantee-principal은 권한 부여로 지정된 작업을 수행할 수 있는 IAM 역할의 ARN을 지정합니다. 이 값은 키 정책의 kms:GranteePrincipal 조건에 지정된 ARN과 일치해야 합니다.

  • operations는 지정된 주체가 이 권한으로 수행할 수 있는 작업, 즉 키를 사용하여 암호화된 사이퍼텍스트를 해독하는 작업을 지정합니다.

이 명령이 성공적으로 실행되면 다음과 비슷한 출력이 표시됩니다.

{ "GrantToken": "<grant token>", "GrantId": "1a2b3c4d2f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2" }

여기서 GrantToken은 생성된 권한 부여를 나타내는 고유하고 암호화되지 않은 가변 길이 base64 인코딩 문자열이며 GrantId은 권한 부여의 고유 식별자입니다.