Amazon Macie를 사용한 암호화된 Amazon S3 객체 분석 - Amazon Macie

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

Amazon Macie를 사용한 암호화된 Amazon S3 객체 분석

Amazon Macie를 활성화하면 Macie는 사용자를 대신하여 AWS 계정 Amazon Simple Storage Service (Amazon S3) 및 기타 서비스를 호출하는 데 필요한 권한을 Macie에게 부여하는 서비스 연결 역할을 생성합니다. AWS 서비스 서비스 연결 역할을 사용하면 사용자 대신 작업을 완료하기 위해 서비스에 권한을 수동으로 추가할 필요가 AWS 서비스 없으므로 설정 프로세스가 간소화됩니다. 이러한 유형의 역할에 대해 자세히 알아보려면 AWS Identity and Access Management 사용 설명서서비스 연결 역할 사용을 참조하세요.

Macie 서비스 연결 역할(AWSServiceRoleForAmazonMacie)에 대한 권한 정책을 통해 Macie는 S3 버킷 및 객체에 대한 정보 검색, S3 버킷의 객체 검색 및 분석 등의 작업을 수행할 수 있습니다. 사용자 계정이 조직의 Macie Administrator 계정인 경우, 그 정책을 사용하면 Macie가 사용자를 대신하여 조직의 구성원 계정에 대해 이러한 작업을 수행할 수도 있습니다.

S3 객체가 암호화된 경우, Macie 서비스 연결 역할의 권한 정책은 일반적으로 Macie에게 객체 암호 해독에 필요한 권한을 부여하는 것입니다. 하지만, 이는 사용된 암호화 유형에 따라 달라질 수 있습니다. 또한 Macie가 적절한 암호화 키를 사용할 수 있는지 여부에 따라서도 달라질 수 있습니다.

Amazon S3 객체의 암호화 옵션

Amazon S3는 S3 객체에 대한 여러 암호화 옵션을 지원합니다. 이러한 옵션 대부분에서 Amazon Macie는 계정의 Macie 서비스 연결 역할을 사용하여 객체를 복호화할 수 있습니다. 하지만, 이는 객체를 암호화하는 데 사용된 암호화 유형에 따라 달라질 수 있습니다.

Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)

Amazon S3 관리 키 (SSE-S3) 를 사용한 서버 측 암호화를 사용하여 객체를 암호화하는 경우 Macie는 객체를 해독할 수 있습니다.

이 암호화 유형에 대해 자세히 알아보려면 Amazon Simple Storage Service 사용 설명서Amazon S3 관리형 키를 사용하여 서버 측 암호화 사용을 참조하세요.

(DSSE-KMS 및 SSE-KMS) 를 사용한 서버 측 암호화 AWS KMS keys

이중 레이어 서버측 암호화 또는 관리형 (DSSE-KMS 또는 SSE-KMS) 을 사용한 서버측 암호화를 사용하여 객체를 암호화하는 경우 Macie는 객체를 해독할 수 있습니다. AWS AWS KMS key

고객이 관리하는 서버 측 암호화 또는 서버 측 암호화 AWS KMS key (DSSE-KMS 또는 SSE-KMS) 를 사용하여 객체를 암호화하는 경우 Macie가 키를 사용하도록 허용한 경우에만 Macie가 객체의 암호를 해독할 수 있습니다. 이는 전적으로 KMS 키 내에서 관리되는 KMS 키와 외부 키 저장소의 KMS 키로 암호화된 객체의 경우입니다. AWS KMS Macie가 해당 KMS 키를 사용할 수 없는 경우 Macie는 객체에 대한 메타데이터만 저장하고 보고할 수 있습니다.

이러한 유형의 암호화에 대해 알아보려면 Amazon Simple Storage Service 사용 설명서의 이중 레이어 서버 측 암호화 사용 AWS KMS keys및 서버 측 암호화 사용을 참조하십시오. AWS KMS keys

작은 정보

Macie가 사용자 계정의 S3 버킷에 있는 객체를 분석하기 위해 액세스해야 AWS KMS keys 하는 모든 고객 관리 항목의 목록을 자동으로 생성할 수 있습니다. 이렇게 하려면 Amazon Macie Scripts 리포지토리에서 사용할 수 있는 AWS KMS 권한 분석기 스크립트를 실행하십시오. GitHub 스크립트는 AWS Command Line Interface (AWS CLI) 명령의 추가 스크립트를 생성할 수도 있습니다. 선택적으로 이러한 명령을 실행하여 지정한 KMS 키의 필수 구성 설정 및 정책을 업데이트할 수 있습니다.

고객 제공 키를 사용한 서버 측 암호화(SSE-C)

고객 제공 키 (SSE-C) 를 사용한 서버 측 암호화를 사용하여 개체를 암호화하는 경우 Macie는 개체를 해독할 수 없습니다. Macie는 객체에 대한 메타데이터만 저장하고 보고할 수 있습니다.

이러한 유형의 암호화에 대해 알아보려면 Amazon Simple Storage Service 사용 설명서고객 제공 키를 사용한 서버 측 암호화 사용을 참조하세요.

클라이언트측 암호화

클라이언트측 암호화를 사용하여 객체가 암호화된 경우, Macie는 객체를 복호화할 수 없습니다. Macie는 객체에 대한 메타데이터만 저장하고 보고할 수 있습니다. 예를 들어, Macie는 객체의 크기 및 객체와 관련된 태그를 보고할 수 있습니다.

Amazon S3와 관련된 이러한 유형의 암호화에 대해 알아보려면 Amazon Simple Storage Service 사용 설명서클라이언트 측 암호화를 사용하여 데이터 보호를 참조하세요.

Macie에서 버킷 인벤토리를 필터링하여 특정 유형의 암호화를 사용하는 객체를 저장하는 S3 버킷을 확인할 수 있습니다. 또한 새 객체를 저장할 때 어떤 버킷이 특정 유형의 서버 측 암호화를 기본적으로 사용하는지 결정할 수 있습니다. 다음 표에는 이 정보를 찾기 위해 버킷 인벤토리에 적용할 수 있는 필터의 예가 나와 있습니다.

버킷을 표시하려면... 이 필터 적용...
SSE-C 암호화를 사용하는 객체 저장 암호화에 따른 객체 수는 고객이 제공한 값이며 From = 1
DSSE-KMS 또는 SSE-KMS 암호화를 사용하는 객체를 저장합니다. 암호화를 기준으로 관리되는 객체 수는 From = 1입니다.AWS KMS
SSE-S3 암호화를 사용하는 객체 저장 암호화에 따른 객체 수는 Amazon S3에서 관리되며 From = 1입니다.
클라이언트측 암호화를 사용하는(또는 암호화되지 않은) 객체 저장 암호화에 따른 객체 수는 암호화 안함이고 From = 1
DSSE-KMS 암호화를 사용하여 기본적으로 새 객체를 암호화합니다. 기본 암호화 = aws:kms:dsse
기본적으로 SSE-KMS 암호화를 사용하여 새 객체를 암호화합니다 기본 암호화 = aws:kms
기본적으로 SSE-S3 암호화를 사용하여 새 객체를 암호화합니다 기본 암호화 = AES256

기본적으로 DSSE-KMS 또는 SSE-KMS 암호화를 사용하여 새 객체를 암호화하도록 버킷을 구성한 경우 어느 것을 사용할지 결정할 수도 있습니다. AWS KMS key 이렇게 하려면 S3 버킷 페이지에서 버킷을 선택합니다. 버킷 세부 정보 패널의 서버 측 암호화에서 필드를 참조하십시오. AWS KMS key 이 필드에는 키의 Amazon 리소스 이름(ARN) 또는 고유 식별자(키 ID)가 표시됩니다.

Amazon Macie가 고객 관리형 앱을 사용할 수 있도록 허용 AWS KMS key

고객이 관리하는 서버 측 암호화 또는 서버 측 암호화 AWS KMS key (DSSE-KMS 또는 SSE-KMS) 를 사용하여 Amazon S3 객체를 암호화하는 경우, Amazon Macie는 키 사용이 허용된 경우에만 객체의 암호를 해독할 수 있습니다. 이 액세스를 제공하는 방법은 키를 소유한 계정이 객체를 저장하는 S3 버킷도 소유하고 있는지 여부에 따라 달라집니다.

  • 동일한 계정이 AWS KMS key 및 버킷을 소유한 경우 해당 계정의 사용자가 키 정책을 업데이트해야 합니다.

  • 한 계정이 버킷을 소유하고 다른 계정이 버킷을 소유하는 경우, 키를 소유한 계정의 사용자는 키에 대한 교차 계정 액세스를 허용해야 합니다. AWS KMS key

이 주제에서는 이러한 작업을 수행하는 방법을 설명하고 두 시나리오를 위한 예를 제공합니다. 고객 관리형 서비스에 대한 AWS KMS액세스를 허용하는 방법에 대해 자세히 AWS KMS keys알아보려면 개발자 안내서의 인증 및 액세스 제어를 참조하십시오.AWS Key Management Service

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

동일한 계정이 AWS KMS key 버킷과 S3 버킷을 모두 소유하는 경우 계정 사용자는 키에 대한 설명을 정책에 추가해야 합니다. 추가 문은 계정에 대한 Macie 서비스 연결 역할이 키를 사용하여 데이터를 해독할 수 있도록 허용해야 합니다. 키 정책을 수정하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서키 정책 변경을 참조하세요.

성명문에서:

  • Principal요소는 및 S3 버킷을 소유한 계정의 Macie 서비스 연결 역할의 Amazon 리소스 이름 (ARN) 을 지정해야 합니다. AWS KMS key

    계정이 옵트인 AWS 리전상태인 경우 ARN에는 해당 지역의 적절한 지역 코드도 포함되어야 합니다. 예를 들어 계정이 리전 코드 me-south-1인 중동(바레인) 리전에 있는 경우, Principal 요소에서 arn:aws:iam::123456789012:role/aws-service-role/macie.me-south-1.amazonaws.com/AWSServiceRoleForAmazonMacie을(를) 지정해야 하는데, 123456789012는 해당 계정의 계정 ID입니다. 현재 Macie를 사용할 수 있는 리전의 리전 코드 목록은 AWS 일반 참조의 Amazon Macie 엔드포인트 및 할당량을 참조하세요.

  • Action 배열은 kms:Decrypt 작업을 지정해야 합니다. 키로 암호화된 S3 객체의 암호를 해독하기 위해 Macie가 수행할 수 있어야 하는 유일한 AWS KMS 작업입니다.

다음은 AWS KMS key에 대한 정책에 추가할 문의 예입니다.

{ "Sid": "Allow the Macie service-linked role to use the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie" }, "Action": [ "kms:Decrypt" ], "Resource": "*" }

이전 예제에서:

  • Principal 요소의 AWS 필드는 계정의 Macie 서비스 연결 역할(AWSServiceRoleForAmazonMacie)의 ARN을 지정합니다. 이 정책을 사용하면 Macie Service 연결 역할이 정책 성명문에 의해 지정된 작업을 수행할 수 있습니다. 123456789012는 예시 계정 ID입니다. 이 값을 KMS 키와 S3 버킷을 소유한 계정의 계정 ID로 바꿉니다.

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

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

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

한 계정이 AWS KMS key (키 소유자) 을 소유하고 다른 계정이 S3 버킷을 소유하는 경우 (버킷 소유자), 키 소유자는 버킷 소유자에게 KMS 키에 대한 계정 간 액세스 권한을 제공해야 합니다. 이를 위해 키 소유자는 먼저 키 정책이 버킷 소유자가 키를 사용하고 키에 대한 권한 부여를 생성하는 것을 허용하는 지 확인해야 합니다. 그러면 버킷 소유자가 키에 대한 권한 부여를 생성합니다. 권한 부여는 AWS 보안 주체가 암호화 작업에서 KMS 키를 사용할 수 있도록 하는 정책 도구입니다. 이 경우 권한 부여는 버킷 소유자의 계정에 대한 Macie 서비스 연결 역할에 관련 권한을 위임합니다.

키 정책을 수정하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서키 정책 변경을 참조하세요. 권한 부여에 대해 자세히 알아보려면 AWS Key Management Service 개발자 안내서AWS KMS권한 부여를 참조하세요.

1단계: 키 정책 업데이트

키 정책에서 키 소유자는 정책에 두 가지 문이 포함되도록 해야 합니다.

  • 첫 번째 성명문은 버킷 소유자가 키를 사용하여 데이터를 해독할 수 있도록 허용합니다.

  • 두 번째 문은 버킷 소유자가 자신(버킷 소유자)의 계정에 대한 Macie 서비스 연결 역할 권한을 생성할 수 있도록 합니다.

첫 번째 성명문에서 Principal 요소는 버킷 소유자 계정의 ARN을 지정해야 합니다. Action 배열은 kms:Decrypt 작업을 지정해야 합니다. 키로 암호화된 객체를 해독하기 위해 Macie가 수행할 수 있는 유일한 AWS KMS 작업입니다. 다음은 AWS KMS key에 대한 정책에서 이 문의 예입니다.

{ "Sid": "Allow account 111122223333 to use the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "kms:Decrypt" ], "Resource": "*" }

이전 예제에서:

  • Principal 요소의 AWS 필드는 버킷 소유자 계정(111122223333)의 ARN을 지정합니다. 이 정책을 사용하여 버킷 소유자는 정책 성명문이 지정한 작업을 수행할 수 있습니다. 111122223333은 예시 계정 ID입니다. 이 값을 버킷 소유자 계정의 계정 ID로 바꿉니다.

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

키 정책의 두 번째 성명문은 버킷 소유자가 버킷 소유자 계정의 Macie 서비스 연결 역할에 대한 권한 부여를 생성할 수 있도록 허용합니다. 이 성명문에서 Principal 요소는 버킷 소유자 계정의 ARN을 지정해야 합니다. Action 배열은 kms:CreateGrant 작업을 지정해야 합니다. Condition요소는 성명문에서 지정된 kms:CreateGrant 작업에 대한 액세스를 필터링할 수 있습니다. 다음은 AWS KMS key에 대한 정책에서 이 문의 예입니다.

{ "Sid": "Allow account 111122223333 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/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie" } } }

이전 예제에서:

  • Principal 요소의 AWS 필드는 버킷 소유자 계정(111122223333)의 ARN을 지정합니다. 이 정책을 사용하여 버킷 소유자는 정책 성명문이 지정한 작업을 수행할 수 있습니다. 111122223333은 예시 계정 ID입니다. 이 값을 버킷 소유자 계정의 계정 ID로 바꿉니다.

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

  • Condition 요소는 StringEquals 조건 연산자kms:GranteePrincipal 조건 키를 사용하여 정책 성명문에 지정된 작업에 대한 액세스를 필터링합니다. 이 경우 버킷 소유자는 계정에 대한 Macie 서비스 연결 역할의 ARN인 지정된 GranteePrincipal에 대해서만 권한 부여를 생성할 수 있습니다. 해당 ARN에서 111122223333은 예시계정 ID입니다. 이 값을 버킷 소유자 계정의 계정 ID로 바꿉니다.

    버킷 소유자 계정이 옵트인 AWS 리전상태인 경우 Macie 서비스 연결 역할의 ARN에 적절한 지역 코드도 포함하십시오. 예를 들어 계정이 리전 코드 me-south-1인 중동(바레인) 리전에 있는 경우 ARN에서 macie.amazonaws.commacie.me-south-1.amazonaws.com으로 바꾸세요. 현재 Macie를 사용할 수 있는 리전의 리전 코드 목록은 AWS 일반 참조의 Amazon Macie 엔드포인트 및 할당량을 참조하세요.

이 성명문 소유자는 이 성명문은 키 정책에 추가하는 위치는 정책에 현재 포함되어 있는 구조 및 요소에 따라 달라집니다. 키 소유자가 문을 추가할 때는 구문이 유효한지 확인해야 합니다. 키 정책에는 JSON 형식이 사용됩니다. 이는 키 소유자가 정책에서 문을 추가하는 위치에 따라 각 문 앞이나 뒤에 쉼표도 추가해야 함을 의미합니다.

2단계: 권한 부여 생성

키 소유자가 필요에 따라 키 정책을 업데이트한 후, 버킷 소유자는 그 키에 대한 권한 부여를 생성해야 합니다. 권한 부여는 관련 권한을 버킷 소유자 계정의 Macie 서비스 연결 역할에 위임합니다. 버킷 소유자는 권한 부여를 생성하기 전에 자신의 계정에 대한 kms:CreateGrant작업을 수행하도록 허용되었는지 확인해야 합니다. 이 작업을 통해 기존 고객 관리형 AWS KMS key에 권한 부여를 추가할 수 있습니다.

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

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

  • GranteePrincipal - 계정에 대한 Macie 서비스 연결 역할(AWSServiceRoleForAmazonMacie)의 ARN 이 값은 arn:aws:iam::111122223333:role/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie이어야 하며, 여기서 111122223333은 버킷 소유자 계정의 계정 ID입니다.

    계정이 옵트인 리전에 있는 경우 ARN에 해당 리전 코드가 포함되어야 합니다. 예를 들어 계정이 중동(바레인) 리전에 있고 리전 코드가 me-south-1인 경우 ARN은 arn:aws:iam::111122223333:role/aws-service-role/macie.me-south-1.amazonaws.com/AWSServiceRoleForAmazonMacie가 되어야 하며, 여기서 111122223333은 버킷 소유자 계정의 계정 ID입니다.

  • Operations— AWS KMS 암호 해독 작업 ()Decrypt. KMS 키로 암호화된 객체를 해독하기 위해 Macie가 수행할 수 있어야 하는 유일한 AWS KMS 작업입니다.

AWS Command Line Interface (AWS CLI) 를 사용하여 고객 관리형 KMS 키에 대한 권한 부여를 생성하려면 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/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie ^ --operations "Decrypt"

위치:

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

  • grantee-principal은 권한 부여로 지정된 작업을 수행할 수 있는 계정에 대한 Macie 서비스 연결 역할의 ARN을 지정합니다. 이 값은 키 정책의 두 번째 문의 kms:GranteePrincipal 조건에 지정된 ARN과 일치해야 합니다.

  • operations는 지정된 주체가 권한을 통해 수행할 수 있는 작업(KMS 키로 암호화된 사이퍼텍스트 해독)을 지정합니다.

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

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

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