저장 시 암호화: 고객 관리형 키를 사용하여 Amazon Keyspaces에서 테이블을 암호화하는 방법 - Amazon Keyspaces(Apache Cassandra용)

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

저장 시 암호화: 고객 관리형 키를 사용하여 Amazon Keyspaces에서 테이블을 암호화하는 방법

콘솔 또는 CQL 문을 사용하여 새 테이블의 AWS KMS key을 지정하고 Amazon Keyspaces에 있는 기존 테이블의 암호화 키를 업데이트할 수 있습니다. 다음 주제에서는 새 테이블과 기존 테이블에 대한 고객 관리형 키를 구현하는 방법을 간략하게 설명합니다.

전제 조건: AWS KMS를 사용하여 고객 관리형 키 생성 및 Amazon Keyspaces에 권한 부여

고객 관리형 키로 Amazon Keyspaces 테이블을 보호하려면 먼저 AWS Key Management Service(AWS KMS)에서 키를 생성한 다음 Amazon Keyspaces가 해당 키를 사용하도록 승인해야 합니다.

1단계: AWS KMS를 사용하여 고객 관리형 키 생성

Amazon Keyspaces 테이블을 보호하는 데 사용할 고객 관리형 키를 생성하려면 콘솔 또는 AWS API를 사용하여 대칭 암호화 KMS 키 생성의 단계를 따를 수 있습니다.

2단계: 고객 관리형 키 사용 승인

Amazon Keyspaces 테이블을 보호할 고객 관리형 키를 선택하려면 먼저 해당 고객 관리형 키의 정책이 Amazon Keyspaces에 사용자를 대신하여 키를 사용할 수 있는 권한을 부여해야 합니다. 고객은 고객 관리형 키에 대한 정책 및 권한 부여를 완벽하게 제어할 수 있습니다. 키 정책, IAM 정책 또는 권한 부여에 이러한 권한을 제공할 수 있습니다.

Amazon Keyspaces는 기본 AWS 소유 키를 사용하여 AWS 계정의 Amazon Keyspaces 테이블을 보호하기 위해 추가 승인이 필요하지 않습니다.

다음 주제에서는 Amazon Keyspaces 테이블에서 고객 관리형 키를 사용할 수 있도록 허용하는 IAM 정책 및 권한 부여를 사용하여 필요한 권한을 구성하는 방법을 보여 줍니다.

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

Amazon Keyspaces 테이블을 보호하기 위해 고객 관리형 키를 선택하면 Amazon Keyspaces는 선택하는 보안 주체를 대신하여 고객 관리형 키를 사용할 수 있는 권한을 얻습니다. 해당 보안 주체, 즉 사용자 또는 역할은 Amazon Keyspaces가 필요한 고객 관리형 키에 대한 권한이 있어야 합니다.

Amazon Keyspaces는 고객 관리형 키에 대해 최소한 다음 권한이 있어야 합니다.

예제 키 정책

예를 들어 다음 예제 키 정책은 필요한 권한만 제공합니다. 이 정책에는 다음과 같은 효과가 있습니다.

  • Amazon Keyspaces가 암호화 작업에 고객 관리형 키를 사용하고 권한 부여를 생성하도록 허용합니다. 단, Amazon Keyspaces를 사용할 권한이 있는 계정의 보안 주체를 대신해 동작하는 경우에 한합니다. 정책 문에 지정된 보안 주체가 Amazon Keyspaces를 사용할 권한이 없는 경우 Amazon Keyspaces 서비스에서 오는 경우에도 호출이 실패합니다.

  • kms:ViaService 조건 키는 정책 문에 나열된 보안 주체를 대신하여 Amazon Keyspaces로부터 요청이 오는 경우에만 사용 권한을 허용합니다. 이러한 보안 주체는 이러한 작업을 직접 호출 할 수 없습니다. 참고: kms:ViaService 값(cassandra.*.amazonaws.com)은 리전 위치에 별표(*)가 있습니다. Amazon Keyspaces는 특정 AWS 리전과 독립적일 수 있는 권한이 필요합니다.

  • 고객 관리형 키 관리자(db-team 역할을 수임할 수 있는 사용자)에게 고객 관리형 키에 대한 읽기 전용 액세스와 테이블을 보호하기 위해 Amazon Keyspaces가 필요로 하는 권한 부여를 포함하여 권한 부여를 취소할 수 있는 권한을 제공합니다.

  • Amazon Keyspaces는 고객 관리형 키에 대한 읽기 전용 액세스 권한을 부여합니다. 이 경우 Amazon Keyspaces는 이러한 작업을 직접 호출할 수 있습니다. 계정 보안 주체를 대신하여 동작할 필요는 없습니다.

예제 키 정책을 사용하기 전에 예제 보안 주체를 AWS 계정의 실제 보안 주체로 바꿉니다.

{ "Id": "key-policy-cassandra", "Version":"2012-10-17", "Statement": [ { "Sid" : "Allow access through Amazon Keyspaces for all principals in the account that are authorized to use Amazon Keyspaces", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/db-lead"}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService" : "cassandra.*.amazonaws.com" } } }, { "Sid": "Allow administrators to view the customer managed key and revoke grants", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/db-team" }, "Action": [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource": "*" } ] }

권한 부여를 사용하여 Amazon Keyspaces 승인

키 정책 이외에 Amazon Keyspaces는 권한 부여를 사용하여 고객 관리형 키에 대한 권한을 설정합니다. 계정에서 고객 관리형 키에 대한 권한 부여를 보려면 ListGrants 작업을 사용합니다. Amazon Keyspaces는 AWS 소유 키를 사용하여 테이블을 보호하는 데 권한 부여 또는 추가 권한이 필요하지 않습니다.

Amazon Keyspaces는 배경 시스템 유지 관리 및 연속 데이터 보호 태스크를 수행할 때 권한 부여 권한을 사용합니다. 권한 부여를 사용하여 테이블 키도 생성합니다.

각 권한 부여는 테이블마다 다릅니다. 계정에 동일한 고객 관리형 키로 암호화되는 여러 테이블이 있는 경우 각 테이블 유형별 권한 부여가 있습니다. 권한 부여는 테이블 이름 및 AWS 계정 ID를 포함하는 Amazon Keyspaces 암호화 컨텍스트에 의해 제한됩니다. 권한 부여에는 더 이상 필요하지 않은 경우 권한 부여를 사용 중지할 수 있는 권한이 포함됩니다.

권한 부여를 생성하려면 Amazon Keyspaces가 암호화된 테이블을 생성한 사용자를 대신하여 CreateGrant를 호출할 수 있는 권한이 있어야 합니다.

이 키 정책은 계정이 고객 관리형 키에 대한 권한 부여를 취소하도록 허용할 수도 있습니다. 단, 활성 암호화 테이블에서 권한 부여를 취소할 경우에는 Amazon Keyspaces가 테이블을 보호하고 유지하지 못합니다.

3단계: 새 테이블에 대한 고객 관리형 키 지정

Amazon Keyspaces 콘솔 또는 CQL을 사용하여 새로운 테이블에 고객 관리형 키를 지정하기 위해 다음 단계를 따르세요.

고객 관리형 키(콘솔)를 사용하여 암호화된 테이블 생성

  1. AWS Management Console에 로그인하고 Amazon Keyspaces 콘솔(https://console.aws.amazon.com/msk/home)을 엽니다.

  2. 탐색 창에서 테이블을 선택한 다음 테이블 생성을 선택합니다.

  3. 테이블 세부 정보 섹션의 테이블 생성 페이지에서 키스페이스를 선택하고 새 테이블의 이름을 입력합니다.

  4. 스키마 섹션에서 테이블의 스키마를 생성합니다.

  5. 테이블 설정 섹션에서 설정 사용자 지정을 선택합니다.

  6. 암호화 설정으로 계속 진행합니다.

    이 단계에서는 테이블의 암호화 설정을 선택합니다.

    AWS KMS key 선택 아래의 저장 시 암호화 섹션에서 다른 KMS 키(고급) 선택 옵션을 선택하고 검색 필드에서 AWS KMS key를 선택하거나 Amazon 리소스 이름(ARN)을 입력합니다.

    참고

    선택한 키에 액세스할 수 없거나 필요한 권한이 없는 경우 AWS Key Management Service 개발자 안내서의 키 액세스 문제 해결을 참조하세요.

  7. 생성을 선택하여 암호화된 테이블을 생성합니다.

저장 시 암호화(CQL)에 대한 고객 관리형 키를 사용하여 새 테이블 생성

저장 시 암호화에 고객 관리형 키를 사용하는 새 테이블을 생성하려면 다음 예제와 같이 CREATE TABLE 문을 사용할 수 있습니다. Amazon Keyspaces에 권한이 부여된 유효한 키에 대해 키 ARN을 ARN으로 교체해야 합니다.

CREATE TABLE my_keyspace.my_table(id bigint, name text, place text STATIC, PRIMARY KEY(id, name)) WITH CUSTOM_PROPERTIES = { 'encryption_specification':{ 'encryption_type': 'CUSTOMER_MANAGED_KMS_KEY', 'kms_key_identifier':'arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111' } };

Invalid Request Exception을 수신한 경우 고객 관리형 키가 유효하고 Amazon Keyspaces에 필요한 권한이 있는지 확인해야 합니다. 키가 올바르게 구성되었는지 확인하려면 AWS Key Management Service 개발자 안내서의 키 액세스 문제 해결을 참조하세요.

4단계: 기존 테이블의 암호화 키 업데이트

또한 언제든지 Amazon Keyspaces 콘솔 또는 CQL을 사용하여 AWS 소유 키 및 고객 관리형 KMS 키 간 기존 테이블의 암호화 키를 변경할 수 있습니다.

새 고객 관리형 키로 기존 테이블 업데이트(콘솔)

  1. AWS Management Console에 로그인하고 Amazon Keyspaces 콘솔(https://console.aws.amazon.com/msk/home)을 엽니다.

  2. 탐색 창에서 테이블을 선택합니다.

  3. 업데이트할 테이블을 선택한 다음 추가 설정 탭을 선택합니다.

  4. 저장 시 암호화 섹션에서 암호화 관리를 선택하여 테이블의 암호화 설정을 편집합니다.

    AWS KMS key 선택에서 다른 KMS 키(고급) 선택 옵션을 선택하고 검색 필드에서 AWS KMS key를 선택하거나 Amazon 리소스 이름(ARN)을 입력합니다.

    참고

    선택한 키가 유효하지 않은 경우 AWS Key Management Service 개발자 안내서의 키 액세스 문제 해결을 참조하세요.

    또는 고객 관리형 키로 암호화된 테이블에 대해 AWS 소유 키를 선택할 수 있습니다.

  5. 변경 사항 저장을 선택하여 테이블 변경 사항을 저장합니다.

기존 테이블에 사용된 암호화 키 업데이트

기존 테이블의 암호화 키를 변경하려면 ALTER TABLE 문을 사용하여 저장 시 암호화에 대한 고객 관리형 키를 지정합니다. Amazon Keyspaces에 권한이 부여된 유효한 키에 대해 키 ARN을 ARN으로 교체해야 합니다.

ALTER TABLE my_keyspace.my_table WITH CUSTOM_PROPERTIES = { 'encryption_specification':{ 'encryption_type': 'CUSTOMER_MANAGED_KMS_KEY', 'kms_key_identifier':'arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111' } };

Invalid Request Exception을 수신한 경우 고객 관리형 키가 유효하고 Amazon Keyspaces에 필요한 권한이 있는지 확인해야 합니다. 키가 올바르게 구성되었는지 확인하려면 AWS Key Management Service 개발자 안내서의 키 액세스 문제 해결을 참조하세요.

AWS 소유 키에서 암호화 키를 기본 저장 시 암호화 옵션으로 다시 변경하려면 다음 예와 같이 ALTER TABLE 문을 사용할 수 있습니다.

ALTER TABLE my_keyspace.my_table WITH CUSTOM_PROPERTIES = { 'encryption_specification':{ 'encryption_type' : 'AWS_OWNED_KMS_KEY' } };

5단계: 로그에서 Amazon Keyspaces 암호화 컨텍스트 사용

암호화 컨텍스트는 보안되지 않은 임의의 데이터를 포함하는 키-값 페어 세트입니다. 데이터 암호화 요청에 암호화 컨텍스트를 포함하는 경우 AWS KMS는 암호화된 데이터에 암호화 컨텍스트를 암호 방식으로 바인딩합니다. 따라서 동일한 암호화 컨텍스트로 전달해야 이 데이터를 해독할 수 있습니다.

Amazon Keyspaces는 모든 AWS KMS 암호화 작업에서 동일한 암호화 컨텍스트를 사용합니다. 고객 관리형 키를 사용하여 Amazon Keyspaces 테이블을 보호할 경우 암호화 컨텍스트를 사용하여 감사 레코드 및 로그에서 고객 관리형 키의 사용을 식별할 수 있습니다. AWS CloudTrail의 로그 및 Amazon CloudWatch Logs와 같은 로그에서 일반 텍스트에 나타나기도 합니다.

AWS KMS에 요청할 때 Amazon Keyspaces는 세 개의 키-값 쌍이 있는 암호화 컨텍스트를 사용합니다.

"encryptionContextSubset": { "aws:cassandra:keyspaceName": "my_keyspace", "aws:cassandra:tableName": "mytable" "aws:cassandra:subscriberId": "111122223333" }
  • 키스페이스 – 첫 번째 키-값 쌍은 Amazon Keyspaces가 암호화 중인 테이블을 포함하는 키스페이스를 식별합니다. 키는 aws:cassandra:keyspaceName입니다. 값은 키스페이스의 이름입니다.

    "aws:cassandra:keyspaceName": "<keyspace-name>"

    예:

    "aws:cassandra:keyspaceName": "my_keyspace"
  • 테이블 – 두 번째 키-값 쌍은 Amazon Keyspaces가 암호화 중인 테이블을 식별합니다. 키는 aws:cassandra:tableName입니다. 값은 테이블의 이름입니다.

    "aws:cassandra:tableName": "<table-name>"

    예:

    "aws:cassandra:tableName": "my_table"
  • 계정 – 세 번째 키-값 쌍은 AWS 계정를 식별합니다. 키는 aws:cassandra:subscriberId입니다. 값은 계정 ID입니다.

    "aws:cassandra:subscriberId": "<account-id>"

    예:

    "aws:cassandra:subscriberId": "111122223333"

6단계: AWS CloudTrail을 사용하여 모니터링 구성

고객 관리형 키를 사용하여 Amazon Keyspaces 테이블을 보호할 경우 AWS CloudTrail 로그를 사용하여 Amazon Keyspaces가 사용자 대신 AWS KMS로 전송하는 요청을 추적할 수 있습니다.

GenerateDataKey, DescribeKey, DecryptCreateGrant 요청은 이 섹션에서 다룹니다. 또한 Amazon Keyspaces는 RetireGrant 작업을 사용하여 사용자가 테이블을 삭제할 때 권한 부여를 제거합니다.

GenerateDataKey

Amazon Keyspaces는 고유한 테이블 키를 생성하여 저장 데이터를 암호화합니다. 테이블에 대한 KMS 키를 지정하는 GenerateDataKey 요청을 AWS KMS로 보냅니다.

GenerateDataKey 작업을 기록하는 이벤트는 다음 예제 이벤트와 유사합니다. 사용자는 Amazon Keyspaces 서비스 계정입니다. 파라미터에는 고객 관리형 키의 Amazon 리소스 이름(ARN), 256비트 키가 필요한 키 지정자, 키스페이스, 테이블 및 AWS 계정를 식별하는 암호화 컨텍스트가 포함됩니다.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "AWS Internal" }, "eventTime": "2021-04-16T04:56:05Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-east-1", "sourceIPAddress": "AWS Internal", "userAgent": "AWS Internal", "requestParameters": { "keySpec": "AES_256", "encryptionContext": { "aws:cassandra:keyspaceName": "my_keyspace", "aws:cassandra:tableName": "my_table", "aws:cassandra:subscriberId": "123SAMPLE012" }, "keyId": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111" }, "responseElements": null, "requestID": "5e8e9cb5-9194-4334-aacc-9dd7d50fe246", "eventID": "49fccab9-2448-4b97-a89d-7d5c39318d6f", "readOnly": true, "resources": [ { "accountId": "123SAMPLE012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "123SAMPLE012", "sharedEventID": "84fbaaf0-9641-4e32-9147-57d2cb08792e" }
DescribeKey

Amazon Keyspaces는 DescribeKey 작업을 사용하여 사용자가 선택한 KMS 키가 계정과 리전에 있는지 확인합니다.

DescribeKey 작업을 기록하는 이벤트는 다음 예제 이벤트와 유사합니다. 사용자는 Amazon Keyspaces 서비스 계정입니다. 파라미터에는 고객 관리형 키의 ARN과 256비트 키가 필요한 키 지정자가 포함됩니다.

{ "eventVersion": "1.08", "userIdentity": { "type": "IAMUser", "principalId": "AIDAZ3FNIIVIZZ6H7CFQG", "arn": "arn:aws:iam::123SAMPLE012:user/admin", "accountId": "123SAMPLE012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "admin", "sessionContext": { "sessionIssuer": {}, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-04-16T04:55:42Z" } }, "invokedBy": "AWS Internal" }, "eventTime": "2021-04-16T04:55:58Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-east-1", "sourceIPAddress": "AWS Internal", "userAgent": "AWS Internal", "requestParameters": { "keyId": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111" }, "responseElements": null, "requestID": "c25a8105-050b-4f52-8358-6e872fb03a6c", "eventID": "0d96420e-707e-41b9-9118-56585a669658", "readOnly": true, "resources": [ { "accountId": "123SAMPLE012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "123SAMPLE012" }
Decrypt

Amazon Keyspaces 테이블에 액세스하면 Amazon Keyspaces가 테이블 키를 해독해야만 계층에서 그 아래에 있는 키를 해독할 수 있습니다. 이후 테이블에 있는 데이터를 해독합니다. 테이블 키를 해독하기 위해 Amazon Keyspaces는 테이블에 대한 KMS 키를 지정하는 AWS KMS로 Decrypt 요청을 보냅니다.

Decrypt 작업을 기록하는 이벤트는 다음 예제 이벤트와 유사합니다. 사용자는 테이블에 액세스 중인 AWS 계정에 있는 보안 주체입니다. 파라미터에는 암호화된 테이블 키(사이퍼텍스트 Blob)와, 테이블 및 AWS 계정를 식별하는 암호화 컨텍스트가 포함됩니다. AWS KMS는 사이퍼텍스트에서 고객 관리형 키의 ID를 파생합니다.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "AWS Internal" }, "eventTime": "2021-04-16T05:29:44Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "AWS Internal", "userAgent": "AWS Internal", "requestParameters": { "encryptionContext": { "aws:cassandra:keyspaceName": "my_keyspace", "aws:cassandra:tableName": "my_table", "aws:cassandra:subscriberId": "123SAMPLE012" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "50e80373-83c9-4034-8226-5439e1c9b259", "eventID": "8db9788f-04a5-4ae2-90c9-15c79c411b6b", "readOnly": true, "resources": [ { "accountId": "123SAMPLE012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "123SAMPLE012", "sharedEventID": "7ed99e2d-910a-4708-a4e3-0180d8dbb68e" }
CreateGrant

고객 관리형 키를 사용하여 Amazon Keyspaces 테이블을 보호하면 Amazon Keyspaces는 권한 부여를 사용하여 서비스가 지속적 데이터 보호와 유지 관리 및 내구성 태스크를 수행하도록 허용합니다. 이러한 권한 부여가 AWS 소유 키에서는 필요하지 않습니다.

Amazon Keyspaces가 생성하는 권한 부여는 테이블마다 다릅니다. CreateGrant 요청에 있는 주체는 테이블을 생성한 사용자입니다.

CreateGrant 작업을 기록하는 이벤트는 다음 예제 이벤트와 유사합니다. 파라미터에는 테이블에 대한 고객 관리형 키의 ARN, 피부여자 주체 및 삭제 보안 주체(Amazon Keyspaces 서비스), 권한 부여가 적용되는 작업이 포함됩니다. 모든 암호화 작업에서 지정된 암호화 컨텍스트를 사용할 것을 요구하는 제한도 포함됩니다.

{ "eventVersion": "1.08", "userIdentity": { "type": "IAMUser", "principalId": "AIDAZ3FNIIVIZZ6H7CFQG", "arn": "arn:aws:iam::arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111:user/admin", "accountId": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "admin", "sessionContext": { "sessionIssuer": {}, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-04-16T04:55:42Z" } }, "invokedBy": "AWS Internal" }, "eventTime": "2021-04-16T05:11:10Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-1", "sourceIPAddress": "AWS Internal", "userAgent": "AWS Internal", "requestParameters": { "keyId": "a7d328af-215e-4661-9a69-88c858909f20", "operations": [ "DescribeKey", "GenerateDataKey", "Decrypt", "Encrypt", "ReEncryptFrom", "ReEncryptTo", "RetireGrant" ], "constraints": { "encryptionContextSubset": { "aws:cassandra:keyspaceName": "my_keyspace", "aws:cassandra:tableName": "my_table", "aws:cassandra:subscriberId": "123SAMPLE012" } }, "retiringPrincipal": "cassandratest.us-east-1.amazonaws.com", "granteePrincipal": "cassandratest.us-east-1.amazonaws.com" }, "responseElements": { "grantId": "18e4235f1b07f289762a31a1886cb5efd225f069280d4f76cd83b9b9b5501013" }, "requestID": "b379a767-1f9b-48c3-b731-fb23e865e7f7", "eventID": "29ee1fd4-28f2-416f-a419-551910d20291", "readOnly": false, "resources": [ { "accountId": "123SAMPLE012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:eu-west-1:5555555555555:key/11111111-1111-111-1111-111111111111" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "123SAMPLE012" }