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

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

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

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

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

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

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

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

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

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

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

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

  • CreateGrant - 비동기식 작업 실행을 위해 위 작업의 하위 집합(DescribeKey, GenerateDataKey, Decrypt)을 사용하여 범위 축소 권한 부여를 생성AWS KMS하도록에 요청을 보냅니다.

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

권한 부여를 취소한 후 새 invokeDataAutomationAsync 직접 호출을 시작하면 BDA가 권한 부여를 다시 생성합니다. 권한 부여는 30시간 후에 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에 필요한 권한 부여 작업을 통해 지정된 키에 대한 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}를 특정 값으로 바꿉니다.

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

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 Automation 암호화 컨텍스트

BDA는 모든 암호화 작업에서 동일한 암호화 컨텍스트를 사용합니다. 여기서 키는 AWS KMSaws:bedrock:data-automation-customer-account-id이고 값은 AWS계정 ID입니다. 암호화 컨텍스트의 예는 다음과 같습니다.

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

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

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

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

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

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

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" }