Amazon Forecast의 데이터 보호 - Amazon Forecast

신규 고객은 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을 권장합니다.

  • 를 사용하여 API 및 사용자 활동 로깅을 설정합니다 AWS CloudTrail. CloudTrail 추적을 사용하여 AWS 활동을 캡처하는 방법에 대한 자세한 내용은 AWS CloudTrail 사용 설명서 CloudTrail 추적 작업을 참조하세요.

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

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

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

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

유휴 데이터 암호화

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

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

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

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

Amazon Forecast는 AWS 인증서와 함께 TLS를 사용하여 다른 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 는 Amazon Forecast에 고객 계정의 AWS KMS 키에 대한 액세스 권한을 부여하는 데 사용됩니다.

Amazon Forecast는 암호화된 데이터 세트 아티팩트를 읽기 AWS KMS 위해 고객 관리형 키를 사용하여에 복호화 요청을 보낼 수 있도록 권한 부여가 필요합니다. 또한 Forecast는 훈련 아티팩트를 Amazon S3로 다시 암호화하기 AWS KMS 위해 권한 부여를 사용하여 GenerateDataKey 요청을 로 보냅니다.

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

고객 관리형 키 생성

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

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

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

  • kms:DescribeKey - Amazon Forecast가 키를 검증할 수 있도록 고객 관리형 키 세부 정보를 제공합니다.

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

  • kms:RetireGrant - CreateGrant 작업 중에 제공된 모든 권한 부여를 작업 완료 후 사용 중지합니다.

참고

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

"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. 다음 예제는 고객 관리형 키로 암호화된 데이터에 액세스DescribeKey하기 위해 Amazon Forecast에서 호출한 AWS KMS 작업을 모니터링하기 위한 CreateGrantRetireGrant, 및 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" } }