Amazon Forecast의 데이터 보호 - Amazon Forecast

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

Amazon Forecast의 데이터 보호

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

데이터를 보호하려면 AWS 계정 보안 인증 정보를 보호하고 AWS IAM Identity Center 또는 AWS Identity and Access Management(IAM)을 통해 개별 사용자 계정을 설정하는 것이 좋습니다. 이 방식을 사용하면 각 사용자에게 자신의 직무를 충실히 이행하는 데 필요한 권한만 부여됩니다. 또한 다음과 같은 방법으로 데이터를 보호하는 것이 좋습니다.

  • 각 계정에 다중 인증(MFA)을 사용합니다.

  • SSL/TLS를 사용하여 AWS 리소스와 통신합니다. TLS 1.2가 필수이며 TLS 1.3을 권장합니다.

  • AWS CloudTrail로 API 및 사용자 활동 로깅을 설정합니다.

  • AWS 암호화 솔루션을 AWS 서비스 내의 모든 기본 보안 컨트롤과 함께 사용합니다.

  • Amazon S3에 저장된 민감한 데이터를 검색하고 보호하는 데 도움이 되는 Amazon Macie와 같은 고급 관리형 보안 서비스를 사용하세요.

  • 명령줄 인터페이스 또는 API를 통해 AWS에 액세스할 때 FIPS 140-2 검증된 암호화 모듈이 필요한 경우 FIPS 엔드포인트를 사용합니다. 사용 가능한 FIPS 엔드포인트에 대한 자세한 내용은 Federal Information Processing Standard(FIPS) 140-2 섹션을 참조하세요.

고객의 이메일 주소와 같은 기밀 정보나 중요한 정보는 태그나 이름 필드와 같은 자유 양식 텍스트 필드에 입력하지 않는 것이 좋습니다. 여기에는 Forecast 또는 기타 AWS 서비스에서 콘솔, API, AWS CLI 또는 AWS SDK를 사용하여 작업하는 경우가 포함됩니다. 이름에 사용되는 태그 또는 자유 형식 텍스트 필드에 입력하는 모든 데이터는 청구 또는 진단 로그에 사용될 수 있습니다. 외부 서버에 URL을 제공할 때 해당 서버에 대한 요청을 검증하기 위해 보안 인증 정보를 URL에 포함시켜서는 안 됩니다.

유휴 데이터 암호화

Amazon Forecast에서는 CreateDatasetCreatePredictor 작업 중에 암호화 구성이 제공됩니다. CreateDataset 작업에 암호화 구성이 제공되는 경우 저장 중 암호화를 위한 CMK 및 IAM 역할이 작업에 사용됩니다. CreateDatasetImportJob

예를 들어 CreateDataset 작업 EncryptionConfig 설명에 키의 KeyArn KMS와 RoleArn a를 제공하면 Forecast는 해당 역할을 맡고 키를 사용하여 데이터세트를 암호화합니다. 구성이 제공되지 않으면 Forecast는 암호화에 기본 서비스 키를 사용합니다. 또한 작업에 대한 EncryptionConfig 정보를 제공하면 CreatePredictorExplanability CreatePredictorBacktestExportJob, CreateForecast 및 와 같은 모든 후속 작업에서 동일한 구성을 사용하여 저장 중 암호화를 수행합니다. CreatePredictor 이 경우에도 암호화 구성을 제공하지 않으면 Forecast는 기본 서비스 암호화를 사용합니다.

Amazon S3 버킷에 저장된 데이터는 기본 Amazon S3 키로 암호화됩니다. 자체 AWS KMS 키를 사용하여 데이터를 암호화하고, 이 키에 대한 액세스 권한을 Forecast에 부여할 수도 있습니다. Amazon S3의 데이터 암호화에 대한 자세한 내용은 암호화로 데이터 보호를 참조하세요. 자체 AWS KMS 키 관리에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서키 관리를 참조하세요.

전송 중 데이터 암호화 및 처리

Amazon Forecast는 TLS와 AWS 인증서를 사용하여 다른 AWS 서비스로 전송되는 데이터를 암호화합니다. 다른 AWS 서비스와의 모든 통신은 HTTPS를 통해 이루어지며, Forecast 엔드포인트는 HTTPS를 통한 보안 연결만 지원합니다.

Amazon Forecast는 계정에서 데이터를 복사하고 내부 AWS 시스템에서 처리합니다. 데이터를 처리할 때 Forecast는 Forecast AWS KMS 키 또는 사용자가 제공하는 AWS KMS 키를 사용하여 데이터를 암호화합니다.

Amazon Forecast가 AWS KMS에서 권한 부여를 사용하는 방법

Amazon Forecast에서 고객 관리형 키를 사용하려면 권한 부여가 필요합니다.

Forecast는 CreatePredictor또는 CreateDataset작업 중에 EncryptionConfig전달되는 IAM 역할을 사용하여 권한을 생성합니다. Forecast는 역할을 맡아 사용자를 대신하여 권한 부여 생성 작업을 수행합니다. 자세한 내용은 IAM 역할 설정을 참조하세요.

하지만 고객 관리 키로 암호화된 예측자를 생성하면 Amazon Forecast에서 CreateGrant요청을 전송하여 사용자를 대신하여 승인을 생성합니다. AWS KMS AWS KMS의 권한 부여는 고객 계정의 AWS KMS 키에 대한 액세스 권한을 Amazon Forecast에 부여하는 데 사용됩니다.

Amazon Forecast가 암호화된 데이터 세트 아티팩트를 읽기 위해 고객 관리형 키를 사용하여 AWS KMS에 암호 해독 요청을 보내려면 권한 부여가 필요합니다. 또한 Forecast는 이 권한 부여를 AWS KMS 사용하여 교육 아티팩트를 다시 Amazon S3로 암호화하기 위한 GenerateDataKey 요청을 보냅니다.

언제든지 권한 부여에 대한 액세스 권한을 취소하거나 고객 관리형 키에 대한 서비스 액세스를 제거할 수 있습니다. 그렇게 하면 Amazon Forecast는 고객 관리형 키로 암호화된 데이터에 액세스할 수 없게 되며, 이는 해당 데이터에 의존하는 작업에 영향을 미칩니다. 예를 들어 Amazon Forecast에서 액세스할 수 없는 암호화된 예측자에 대해 작업을 수행하려고 하면 작업이 AccessDeniedException 오류를 반환합니다. CreateForecast

고객 관리형 키 생성

AWS Management Console 또는 AWS KMS API를 사용하여 대칭 고객 관리형 키를 생성할 수 있습니다. 대칭 고객 관리형 키를 생성하려면 AWS Key Management Service 개발자 안내서대칭 고객 관리형 키 생성 단계를 따르세요.

키 정책은 고객 관리형 키에 대한 액세스를 제어합니다. 모든 고객 관리형 키에는 키를 사용할 수 있는 사람과 키를 사용하는 방법을 결정하는 문장이 포함된 정확히 하나의 키 정책이 있어야 합니다. 고객 관리형 키를 생성할 때 키 정책을 지정할 수 있습니다. 자세한 내용은 AWS Key Management Service 개발자 안내서고객 관리형 키에 대한 액세스 관리를 참조하십시오.

Amazon Forecast 리소스에서 고객 관리형 키를 사용하려면 키 정책에서 다음 API 작업을 허용해야 합니다.

  • kms: DescribeKey — Amazon Forecast에서 키를 검증할 수 있는 고객 관리형 키 세부 정보를 제공합니다.

  • kms: CreateGrant — 고객 관리 키에 권한 부여를 추가합니다. 권한 부여는 지정된 AWS KMS 키에 대한 액세스를 제어하여 Amazon Forecast에 필요한 권한 부여 작업에 대한 액세스를 허용합니다. 이 작업을 통해 Amazon Forecast는 GenerateDataKey를 호출하여 암호화된 데이터 키를 생성한 후 저장합니다. 데이터 키가 암호화에 즉시 사용되지 않기 때문입니다. 또한 이 작업을 통해 Amazon Forecast는 Decrypt를 호출하여 저장된 암호화된 데이터 키를 사용하고 암호화된 데이터에 액세스할 수 있습니다.

  • kms: RetireGrant - CreateGrant 운영 중에 제공된 모든 지원금을 작업 완료 후 사용 중지합니다.

참고

Amazon Forecast는 호출자의 자격 증명에 대한 kms:Decryptkms:GenerateDataKey 검증을 수행합니다. 발신자에게 관련 AccessDeniedException 권한이 없는 경우 알림을 받게 됩니다. 키 정책은 또한 다음 코드와 비슷해야 합니다.

"Effect": "Allow", "Principal": { "AWS": “AWS Invoking Identity” }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey” ], "Resource": "*" }

자세한 내용은 IAM 정책을 참조하세요.

다음은 Amazon Forecast에 추가할 수 있는 정책 문 예제입니다. 이는 필요한 최소 권한이며 IAM 정책을 사용하여 추가할 수도 있습니다.

"Statement" : [ {"Sid" : "Allow access to principals authorized to use Amazon Forecast", "Effect" : "Allow", "Principal" : {"AWS" : "arn:aws:iam::111122223333:role/ROLE_PASSED_TO_FORECAST" }, "Action" : [ "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant" ], "Resource" : "*", "Condition" : {"StringEquals" : {"kms:ViaService" : "forecast.region.amazonaws.com", "kms:CallerAccount" : "111122223333" } }, {"Sid": "Allow access for key administrators", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:*" ], "Resource": "arn:aws:kms:region:111122223333:key/key_ID" } ]

정책에서 권한 지정키 액세스 문제 해결에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서를 참조하세요.

Amazon Forecast 서비스의 암호화 키 모니터링

Amazon Forecast Service 리소스와 함께 AWS KMS 고객 관리형 키를 사용하는 경우, AWS CloudTrail또는 Amazon CloudWatch Logs를 사용하여 Forecast가 보내는 요청을 추적할 수 AWS KMS 있습니다. 다음 예제는 고객 관리형 키로 암호화된 데이터에 액세스하기 위해 Amazon Forecast가 호출하는 AWS KMS 작업을 모니터링하기 위한 CreateGrant, RetireGrant, DescribeKey에 대한 AWS CloudTrail 이벤트입니다.

DescribeKey
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2022-10-05T21:16:23Z", "mfaAuthenticated": "false" } } }, "eventTime": "2022-10-05T21:16:23Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "region", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "keyId": "arn:aws:kms:region:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:region:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.2", "cipherSuite": "ECDHE-RSA-AES256-GCM-SHA384", "clientProvidedHostHeader": "kms.region.amazonaws.com" } }
CreateGrant
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2022-10-05T23:10:27Z", "mfaAuthenticated": "false" } } }, "eventTime": "2022-10-05T23:10:27Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "region", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "operations": [ "Decrypt", "GenerateDataKey" ], "granteePrincipal": "AWS Internal", "keyId": "arn:aws:kms:region:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:region:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.2", "cipherSuite": "ECDHE-RSA-AES256-GCM-SHA384", "clientProvidedHostHeader": "kms.region.amazonaws.com" } }
RetireGrant
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2022-10-06T04:56:14Z", "mfaAuthenticated": "false" } } }, "eventTime": "2022-10-06T04:56:14Z", "eventSource": "kms.amazonaws.com", "eventName": "RetireGrant", "awsRegion": "region", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": null, "responseElements": null, "additionalEventData": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:region:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "tlsDetails": { "tlsVersion": "TLSv1.2", "cipherSuite": "ECDHE-RSA-AES256-GCM-SHA384", "clientProvidedHostHeader": "kms.region.amazonaws.com" } }