View a markdown version of this page

Amazon Bedrock 데이터 자동화의 암호화 - Amazon Bedrock

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

Amazon Bedrock 데이터 자동화의 암호화

Amazon Bedrock 데이터 자동화(BDA)는 암호화를 사용하여 저장 데이터를 보호합니다. 여기에는 서비스에 저장된 블루프린트, 프로젝트, 라이브러리 및 추출된 인사이트가 포함됩니다. BDA는 데이터를 암호화하기 위한 두 가지 옵션을 제공합니다.

  1. AWS 소유 키 - 기본적으로 BDA는 AWS 소유 키로 데이터를 암호화합니다. AWS 소유 키를 보거나 관리하거나 사용하거나 사용을 감사할 수 없습니다. 하지만 데이터를 암호화하는 키를 보호하기 위해 어떤 작업을 수행하거나 어떤 프로그램을 변경할 필요가 없습니다. 자세한 내용은 AWS Key Management Service 개발자 안내서의 소유 AWS 키를 참조하세요.

  2. 고객 관리형 키 - 사용자가 직접 관리하는 고객 관리형 키로 데이터를 암호화하도록 선택할 수 있습니다. AWS KMS 키에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 고객 관리형 키를 참조하세요. BDA는 Amazon Bedrock 콘솔에서 사용할 수 있는 고객 관리형 키를 지원하지 않으며 API 작업에만 지원됩니다.

Amazon Bedrock 데이터 자동화는 AWS 소유 키를 사용하여 저장 시 암호화를 무료로 자동으로 활성화합니다. 고객 관리형 키를 사용하는 경우 AWS KMS 요금이 적용됩니다. 요금에 대한 자세한 내용은 AWS KMS 요금을 참조하세요.

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

invokeDataAutomationAsync 또는 CreateDataAutomationLibrary를 호출할 때 BDA 암호화를 위한 고객 관리형 키를 지정하면 서비스는 CreateGrant 요청을에 전송하여 사용자를 대신하여 리소스와 연결된 권한 부여를 생성합니다 AWS KMS. 이 권한 부여를 통해 BDA는 고객 관리형 키에 액세스하고 사용할 수 있습니다. CreateDataAutomationLibrary에서 생성한 권한 부여는 고객이 어휘 개체를 라이브러리로 수집하는 경우 사용되지 않습니다.

BDA는 고객 관리 키에 대한 부여를 다음과 같은 내부 작업에 사용합니다.

  • DescribeKey -에 요청을 전송 AWS KMS 하여 제공한 대칭 고객 관리형 AWS KMS 키 ID가 유효한지 확인합니다.

  • GenerateDataKey 및 복호화 - AWS KMS 에 요청을 보내 고객 관리형 키로 암호화된 데이터 키를 생성하고 암호화된 데이터 키를 복호화하여 리소스를 암호화하는 데 사용할 수 있도록 합니다.

  • CreateGrant - AWS KMS 에 요청을 보내 비동기식 작업 실행에 대한 범위 축소 권한 부여를 생성합니다. 권한 부여 작업은 API에 따라 다릅니다.

    • InvokeDataAutomationAsync: DescribeKey, GenerateDataKey, Decrypt

    • CreateDataAutomationLibrary: DescribeKey, GenerateDataKey, Decrypt, CreateGrant

고객 관리형 AWS KMS 키에 대한 전체 액세스 권한이 있습니다. AWS KMS 개발자 안내서의 권한 부여 사용 중지 및 취소에 안내된 단계에 따라 권한 부여에 대한 액세스를 취소하거나, 키 정책을 수정하여 언제든지 고객 관리형 키에 대한 서비스의 액세스 권한을 제거할 수 있습니다. 이렇게 하면 BDA는 키로 암호화된 리소스에 액세스할 수 없습니다.

권한 부여를 취소한 후 새 invokeDataAutomationAsync 직접 호출을 시작하면 BDA가 권한 부여를 다시 생성합니다.

invokeDataAutomationAsync에서 생성한 권한 부여는 30시간 후에 BDA에서 사용 중지됩니다.

CreateDataAutomationLibrary에서 생성한 권한 부여는 라이브러리가 삭제될 때 BDA에서 사용 중지됩니다.

고객 관리형 키 생성 및 키 정책 연결

직접 만들고 관리하는 키로 BDA 리소스를 암호화하려면 다음과 같은 일반적인 단계를 수행합니다.

  1. (사전 조건) IAM 역할에 CreateKey 작업에 대한 권한이 있어야 합니다.

  2. AWS KMS 콘솔 또는 CreateKey 작업을 사용하여 키 생성의 단계에 따라 고객 관리형 키를 https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html 생성합니다.

  3. 키를 생성하면 invokeDataAutomationAsync 작업과 같이 키를 사용해야 하는 작업(예: BDA에서 프로젝트 또는 블루프린트를 생성할 때)에 사용할 수 있는 ARN이 반환됩니다.

  4. 필요한 권한을 사용하여 키 정책을 만들고 키에 연결합니다. 키 정책을 생성하려면 AWS KMS 개발자 안내서의 키 정책 생성 단계를 따르세요.

Amazon Bedrock 데이터 자동화 리소스에 대한 권한 및 키 정책

AWS KMS 키를 생성한 후 키 정책을 연결합니다. 다음 AWS KMS 작업은 BDA 리소스를 암호화하는 키에 사용됩니다.

  1. kms:CreateGrant – InvokeDataAutomationAsync 및 CreateDataAutomationLibrary에 필요한 권한 부여 작업을 통해 지정된 키에 대한 BDA 서비스 액세스를 허용하여 고객 관리형 AWS KMS 키에 대한 권한 부여를 생성합니다.

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

  3. kms:GenerateDataKey – BDA가 사용자 액세스를 검증할 수 있도록 고객 관리형 키 세부 정보를 제공합니다.

  4. kms:Decrypt – 저장된 사이퍼텍스트를 복호화하여 역할에 BDA 리소스를 암호화하는 AWS KMS 키에 대한 적절한 액세스 권한이 있는지 확인합니다.

Amazon Bedrock Data Automation에 대한 키 정책

고객 관리형 키를 사용하여 BDA 리소스를 암호화하려면 키 정책에 다음 문을 포함하고 ${account-id}, ${region}${key-id}를 특정 값으로 바꿉니다.

{ "Version": "2012-10-17", "Id": "KMS key policy for a key to encrypt data for BDA resource", "Statement": [ { "Sid": "Enable DescribeKey, Decrypt, GenerateDataKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Role" }, "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "bedrock.us-east-1.amazonaws.com" } } }, { "Sid": "Enable CreateGrant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Role" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "bedrock.us-east-1.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "CreateGrant", "GenerateDataKey", "Decrypt", "DescribeKey" ] } } } ] }

IAM 역할 권한

BDA와 상호 작용하는 데 사용되는 IAM 역할에는 다음과 같은 권한이 있어야 AWS KMS 합니다. ${region}, ${account-id}${key-id}를 특정 값으로 바꿉니다.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.us-east-1.amazonaws.com" ] } } } ] }

Amazon Bedrock Data Automation 암호화 컨텍스트

DataAutomationLibrary 작업의 경우 BDA는 키가 aws:bedrock:data-automation-library-arn 이고 값이 인 모든 암호화 작업에서 아래 AWS KMS 암호화 컨텍스트를 사용합니다libraryArn. InvokeDataAutomationLibraryIngestionJob

"encryptionContext": { "aws:bedrock:data-automation-library-arn": "<LibraryArn>" }

DataAutomationProject 작업의 경우 BDA는 아래 암호화 컨텍스트를 사용합니다.

"encryptionContext": { "DataAutomationProjectArn": "<DataAutomationProjectArn>" }

블루프린트 작업의 경우 BDA는 아래 암호화 컨텍스트를 사용합니다.

"encryptionContext": { "BlueprintArn": "<BlueprintArn>" }

다른 모든 작업의 경우 BDA는 아래 암호화 컨텍스트를 사용합니다.

"encryptionContext": { "aws:bedrock:data-automation-customer-account-id": "111122223333" }
모니터링을 위한 암호화 컨텍스트 사용

대칭형 고객 관리형 키를 사용하여 데이터를 암호화하는 경우 감사 레코드 및 로그의 암호화 컨텍스트를 사용하여 고객 관리형 키가 사용되는 방식을 식별할 수도 있습니다. 암호화 컨텍스트는 AWS CloudTrail 또는 Amazon CloudWatch Logs에서 생성된 로그에도 나타납니다.

암호화 컨텍스트를 사용하여 고객 관리형 키에 대한 액세스 제어

그러나 키 정책 및 IAM 정책에서 암호화 컨텍스트를 조건으로 사용하여 대칭형 고객 관리형 키에 대한 액세스를 제어할 수도 있습니다. 또한 권한 부여에서 암호화 컨텍스트 제약 조건을 사용할 수 있습니다. BDA는 권한 부여에서 암호화 컨텍스트 제약 조건을 사용하여 계정 및 리전에서 고객 관리형 키에 대한 액세스를 제어합니다. 권한 부여 제약 조건에 따라 권한 부여가 허용하는 작업은 지정된 암호화 컨텍스트를 사용해야 합니다.

다음은 특정 암호화 컨텍스트에서 고객 관리형 키에 대한 액세스 권한을 부여하는 키 정책 설명의 예입니다. 이 정책 설명의 조건에 따라 권한 부여에는 암호화 컨텍스트를 지정하는 암호화 컨텍스트 제약 조건이 있어야 합니다.

[ { "Sid": "Enable DescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": ["kms:DescribeKey"], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } }, { "Sid": "Enable Decrypt, GenerateDataKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ], "kms:EncryptionContext:aws:bedrock:data-automation-customer-account-id": "111122223333" } } }, { "Sid": "Enable CreateGrant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ], "kms:EncryptionContext:aws:bedrock:data-automation-customer-account-id": "111122223333" }, "StringEquals": { "kms:GrantOperations": ["Decrypt", "DescribeKey", "GenerateDataKey"] } } } ]

를 호출할 때 다음 정책을 CreateDataAutomationLibrary연결하여 BDA에 고객 관리형 키에 액세스하는 데 필요한 권한을 부여합니다.

[ { "Sid": "Enable CreateGrant for CreateDataAutomationLibrary", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] }, "StringEquals": { "kms:GrantOperations": ["Decrypt", "DescribeKey", "GenerateDataKey", "CreateGrant"] } } } ]

Amazon Bedrock 데이터 자동화를 위한 암호화 키 모니터링

Amazon Bedrock 데이터 자동화 리소스와 함께 AWS KMS 고객 관리형 키를 사용하는 경우 AWS CloudTrail 또는 Amazon CloudWatch를 사용하여 Amazon Bedrock 데이터 자동화가 보내는 요청을 추적할 수 있습니다 AWS KMS. 다음은 CreateGrant가 기본 권한 부여를 생성하기 위해 Amazon Bedrock 데이터 자동화에서 호출한 AWS KMS 작업을 모니터링하는 AWS CloudTrail 이벤트의 예입니다.

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01", "arn": "arn:aws:sts::111122223333:assumed-role/RoleForDataAutomation/SampleUser01", "accountId": "111122223333", "accessKeyId": "EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/RoleForDataAutomation", "accountId": "111122223333", "userName": "RoleForDataAutomation" }, "attributes": { "creationDate": "2024-05-07T21:46:28Z", "mfaAuthenticated": "false" } }, "invokedBy": "bedrock.amazonaws.com" }, "eventTime": "2024-05-07T21:49:44Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-1", "sourceIPAddress": "bedrock.amazonaws.com", "userAgent": "bedrock.amazonaws.com", "requestParameters": { "granteePrincipal": "bedrock.amazonaws.com", "retiringPrincipal": "bedrock.amazonaws.com", "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "constraints": { "encryptionContextSubset": { "aws:bedrock:data-automation-customer-account-id": "000000000000" } }, "operations": [ "Decrypt", "CreateGrant", "GenerateDataKey", "DescribeKey" ] }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "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:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }