Amazon VPC Lattice의 데이터 보호 - Amazon VPC Lattice

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

Amazon VPC Lattice의 데이터 보호

AWS 공동 책임 모델 Amazon VPC Lattice의 데이터 보호에 적용됩니다. 이 모델에 설명된 대로 AWS 는 모든 를 실행하는 글로벌 인프라를 보호할 책임이 있습니다 AWS 클라우드. 사용자는 인프라에서 호스팅되는 콘텐츠를 관리해야 합니다. 이 콘텐츠에는 사용하는 AWS 서비스 서비스의 보안 구성과 관리 작업이 포함되어 있습니다. 데이터 프라이버시에 대한 자세한 내용은 데이터 프라이버시 섹션을 FAQ참조하세요. 유럽의 데이터 보호에 대한 자세한 내용은 AWS 보안 블로그AWS 공동 책임 모델 및 GDPR 블로그 게시물을 참조하세요.

전송 중 암호화

VPC Lattice는 제어 영역과 데이터 영역으로 구성된 완전 관리형 서비스입니다. 각 영역은 서비스에서 서로 다른 용도로 사용됩니다. 제어 영역은 (CRUDL) 리소스(예: CreateService 및 )를 생성, 읽기/설명, 업데이트, 삭제 및 나열하는 데 APIs 사용되는 관리 기능을 제공합니다UpdateService. VPC Lattice 제어 영역으로의 통신은 에 의해 전송 중 보호됩니다TLS. 데이터 영역은 서비스 간의 상호 연결을 API제공하는 VPC Lattice Invoke입니다. TLS 는 HTTPS 또는 를 사용할 때 VPC Lattice 데이터 영역으로의 통신을 암호화합니다TLS. 암호 제품군 및 프로토콜 버전은 VPC Lattice에서 제공하는 기본값을 사용하며 구성할 수 없습니다. 자세한 내용은 HTTPS VPC Lattice 서비스의 리스너 단원을 참조하십시오.

저장 중 암호화

기본적으로 저장 데이터를 암호화하면 민감한 데이터 보호와 관련된 운영 오버헤드와 복잡성을 줄이는 데 도움이 됩니다. 동시에 엄격한 암호화 규정 준수 및 규제 요구 사항을 충족하는 안전한 애플리케이션을 구축할 수 있습니다.

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

Amazon S3 관리형 키(SSE-S3)와 함께 서버 측 암호화를 사용하는 경우 각 객체는 고유한 키로 암호화됩니다. 추가 보호 조치로 정기적으로 교체하는 루트 키로 키 자체를 암호화합니다. Amazon S3 서버 측 암호화는 사용 가능한 가장 강력한 블록 암호 중 하나인 256비트 고급 암호화 표준(AES-256) GCM을 사용하여 데이터를 암호화합니다. AES- 이전에 암호화된 객체의 경우 GCMAES-CBC 는 해당 객체를 복호화하는 데 여전히 지원됩니다. 자세한 내용은 Amazon S3-managed 암호화 사용을 참조하세요SSE-S3.

SS3-managed형 암호화 키(SSE-S3S3)를 사용하여 서버 측 암호화를 활성화하면 각 액세스 로그 파일이 S3 버킷에 저장되기 전에 자동으로 암호화됩니다. VPC 자세한 내용은 Amazon 사용 설명서의 Amazon S3로 전송된 로그를 참조하세요. CloudWatch

AWS KMS 키를 AWS KMS (-SSEKMS)에 저장하여 서버 측 암호화

AWS KMS 키(SSE-KMS)를 사용한 서버 측 암호화는 SSE-S3와 유사하지만 이 서비스를 사용할 경우 추가 이점과 요금이 있습니다. Amazon S3에서 객체에 대한 무단 액세스로부터 추가 보호를 제공하는 AWS KMS 키에 대한 별도의 권한이 있습니다. SSE-KMS 는 또한 AWS KMS 키가 언제 사용되었는지, 누가 사용했는지를 보여주는 감사 추적을 제공합니다. 자세한 내용은 AWS Key Management Service (-KMS)에서 서버 측 암호화 사용을 참조SSE하세요.

인증서 프라이빗 키의 암호화 및 암호 해독

ACM 인증서와 프라이빗 키는 별칭 aws/acm 가 있는 AWS 관리형 KMS 키를 사용하여 암호화됩니다. AWS KMS 콘솔의 AWS 관리형 키 아래에서 이 별칭을 사용하여 키 ID를 볼 수 있습니다.

VPC Lattice는 ACM 리소스에 직접 액세스하지 않습니다. Connection Manager를 사용하여 AWS TLS 인증서의 프라이빗 키를 보호하고 액세스합니다. ACM 인증서를 사용하여 VPC Lattice 서비스를 생성할 때 VPC Lattice는 인증서를 AWS TLS Connection Manager와 연결합니다. 이는 접두사 aws/acm 로 관리형 키에 AWS KMS 대한 AWS 권한을 에 생성하여 수행됩니다. 권한 부여는 TLS Connection Manager가 암호화 작업에서 KMS 키를 사용할 수 있도록 허용하는 정책 도구입니다. 권한 부여를 통해 권한 부여자 보안 주체(TLS Connection Manager)는 KMS 키에 지정된 권한 부여 작업을 호출하여 인증서의 프라이빗 키를 해독할 수 있습니다. TLS 그런 다음 Connection Manager는 인증서와 복호화된(일반 텍스트) 프라이빗 키를 사용하여 VPC Lattice 서비스의 클라이언트와 보안 연결(SSL/TLS 세션)을 설정합니다. 인증서가 VPC Lattice 서비스에서 연결 해제되면 권한 부여는 사용 중지됩니다.

KMS 키에 대한 액세스를 제거하려면 또는 의 update-service 명령을 사용하여 서비스에서 인증서를 교체 AWS Management Console 하거나 삭제하는 것이 좋습니다 AWS CLI.

VPC Lattice의 암호화 컨텍스트

암호화 컨텍스트는 프라이빗 키가 사용될 수 있는 대상에 대한 컨텍스트 정보가 포함된 선택적 키-값 페어 세트입니다. 는 암호화 컨텍스트를 암호화된 데이터에 AWS KMS 바인딩하고 이를 인증된 암호화를 지원하는 추가 인증된 데이터로 사용합니다.

TLS 키를 VPC Lattice 및 TLS Connection Manager와 함께 사용하면 VPC Lattice 서비스의 이름이 저장 키를 암호화하는 데 사용되는 암호화 컨텍스트에 포함됩니다. 다음 섹션과 같이 CloudTrail 로그의 암호화 컨텍스트를 보거나 ACM 콘솔의 관련 리소스 탭을 확인하여 인증서와 프라이빗 키를 사용할 VPC Lattice 서비스를 확인할 수 있습니다.

데이터를 해독하기 위해 동일한 암호화 컨텍스트를 요청에 포함시킵니다. VPC Lattice는 모든 AWS KMS 암호화 작업에서 동일한 암호화 컨텍스트를 사용합니다. 여기서 키는 aws:vpc-lattice:arn이고 값은 VPC Lattice 서비스의 Amazon 리소스 이름(ARN)입니다.

다음 예제는 와 같은 작업의 출력에 있는 암호화 컨텍스트를 보여줍니다CreateGrant.

"encryptionContextEquals": { "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab" }

VPC Lattice에 대한 암호화 키 모니터링

VPC Lattice 서비스에서 AWS 관리형 키를 사용하는 경우 AWS CloudTrail를 사용하여 VPC Lattice가 로 보내는 요청을 추적할 수 있습니다 AWS KMS.

CreateGrant

VPC Lattice 서비스에 ACM 인증서를 추가하면 TLS Connection Manager가 ACM 인증서와 연결된 프라이빗 키를 복호화할 수 있도록 대신 CreateGrant 요청이 전송됩니다.

CloudTrail, 이벤트 기록 , 에서 CreateGrant 작업을 이벤트로 볼 수 있습니다CreateGrant.

다음은 CreateGrant 작업의 이벤트 기록에서 CloudTrail 이벤트 레코드의 예입니다.

{ "eventVersion": "1.08", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::111122223333:user/Alice", "accountId": "111122223333", "accessKeyId": "EXAMPLE_KEY_ID", "sessionContext": { "sessionIssuer": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::111122223333:user/Alice", "accountId": "111122223333", "userName": "Alice" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-02-06T23:30:50Z", "mfaAuthenticated": "false" } }, "invokedBy": "acm.amazonaws.com" }, "eventTime": "2023-02-07T00:07:18Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "acm.amazonaws.com", "userAgent": "acm.amazonaws.com", "requestParameters": { "granteePrincipal": "tlsconnectionmanager.amazonaws.com", "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "operations": [ "Decrypt" ], "constraints": { "encryptionContextEquals": { "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab" } }, "retiringPrincipal": "acm.us-west-2.amazonaws.com" }, "responseElements": { "grantId": "f020fe75197b93991dc8491d6f19dd3cebb24ee62277a05914386724f3d48758", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, "requestID": "ba178361-8ab6-4bdd-9aa2-0d1a44b2974a", "eventID": "8d449963-1120-4d0c-9479-f76de11ce609", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }

CreateGrant 예제에서 권한 부여자 보안 주체는 TLS Connection Manager이고 암호화 컨텍스트에는 VPC Lattice 서비스 가 있습니다ARN.

ListGrants

KMS 키 ID와 계정 ID를 사용하여 ListGrants 를 호출할 수 있습니다API. 이렇게 하면 지정된 KMS 키에 대한 모든 권한 부여 목록이 표시됩니다. 자세한 내용은 ListGrants를 참조하세요.

에서 다음 ListGrants 명령을 사용하여 모든 권한 부여의 세부 정보를 AWS CLI 확인합니다.

aws kms list-grants —key-id your-kms-key-id

출력의 예시는 다음과 같습니다.

{ "Grants": [ { "Operations": [ "Decrypt" ], "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Name": "IssuedThroughACM", "RetiringPrincipal": "acm.us-west-2.amazonaws.com", "GranteePrincipal": "tlsconnectionmanager.amazonaws.com", "GrantId": "f020fe75197b93991dc8491d6f19dd3cebb24ee62277a05914386724f3d48758", "IssuingAccount": "arn:aws:iam::111122223333:root", "CreationDate": "2023-02-06T23:30:50Z", "Constraints": { "encryptionContextEquals": { "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab" } } } ] }

ListGrants 예제에서 권한 부여자 보안 주체는 TLS Connection Manager이고 암호화 컨텍스트에는 VPC Lattice 서비스 가 있습니다ARN.

Decrypt

VPC Lattice는 TLS Connection Manager를 사용하여 Decrypt 작업을 호출하여 프라이빗 키를 복호화하여 VPC Lattice 서비스에서 TLS 연결을 제공합니다. 이벤트 기록 , 복호화 에서 Decrypt 작업을 CloudTrail 이벤트로 볼 수 있습니다.

다음은 Decrypt 작업의 이벤트 기록에서 CloudTrail 이벤트 레코드의 예입니다.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "tlsconnectionmanager.amazonaws.com" }, "eventTime": "2023-02-07T00:07:23Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "tlsconnectionmanager.amazonaws.com", "userAgent": "tlsconnectionmanager.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:acm:arn": "arn:aws:acm:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "aws:vpc-lattice:arn": "arn:aws:vpc-lattice:us-west-2:111122223333:service/svc-0b23c1234567890ab" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "12345126-30d5-4b28-98b9-9153da559963", "eventID": "abcde202-ba1a-467c-b4ba-f729d45ae521", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "sharedEventID": "abcde202-ba1a-467c-b4ba-f729d45ae521", "eventCategory": "Management" }