기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Bedrock 데이터 자동화(BDA)는 암호화를 사용하여 저장 데이터를 보호합니다. 여기에는 서비스에 저장된 블루프린트, 프로젝트 및 추출된 인사이트가 포함됩니다. BDA는 데이터를 암호화하기 위한 두 가지 옵션을 제공합니다.
AWS 소유 키 - 기본적으로 BDA는 AWS 소유 키로 데이터를 암호화합니다. AWS 소유 키는 보거나 관리하거나 사용할 수 없으며 사용을 감사할 수 없습니다. 하지만 데이터를 암호화하는 키를 보호하기 위해 어떤 작업을 수행하거나 어떤 프로그램을 변경할 필요가 없습니다. 자세한 내용은 AWS Key Management Service 개발자 안내서의 AWS 소유 키를 참조하세요.
고객 관리형 키 - 직접 관리하는 고객 관리형 키로 데이터를 암호화하도록 선택할 수 있습니다. AWS KMS 키에 대한 자세한 내용은 AWS Key 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 리소스를 암호화하려면 다음 일반 단계를 따르세요.
Amazon Bedrock 데이터 자동화 리소스에 대한 권한 및 키 정책
AWS KMS 키를 생성한 후 키 정책을 연결합니다. 다음 AWS KMS 작업은 BDA 리소스를 암호화하는 키에 사용됩니다.
-
kms:CreateGrant – InvokeDataAutomationAsync에 필요한 권한 부여 작업을 통해 지정된 키에 대한 BDA 서비스 액세스를 허용하여 고객 관리형 AWS KMS 키에 대한 권한을 생성합니다.
-
kms:DescribeKey – BDA가 키를 검증할 수 있도록 고객 관리형 키 세부 정보를 제공합니다.
-
kms:GenerateDataKey – BDA가 사용자 액세스를 검증할 수 있도록 고객 관리형 키 세부 정보를 제공합니다.
-
kms:Decrypt – 저장된 사이퍼텍스트를 복호화하여 역할이 BDA 리소스를 암호화하는 AWS KMS 키에 대한 적절한 액세스 권한을 가지고 있는지 확인합니다.
Amazon Bedrock 데이터 자동화에 대한 키 정책
고객 관리형 키를 사용하여 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": "Permissions for encryption of data for BDA resources",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::${account-id}:role/${role}"
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:DescribeKey",
"kms:CreateGrant"
],
"Resource": "*",
"Condition": {
"StringLike": {
"kms:ViaService": [
"bedrock.${region}.amazonaws.com"
]
}
}
}
]
}
IAM 역할 권한
BDA와 상호 작용하는 데 사용되는 IAM 역할에는 다음과 같은 권한이 있어야 AWS KMS 합니다. ${region}
, ${account-id}
및 ${key-id}
를 특정 값으로 바꿉니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:GenerateDataKey",
"kms:Decrypt",
"kms:DescribeKey",
"kms:CreateGrant"
],
"Resource": "arn:aws:kms:${region}:${account-id}:key/${key-id}",
"Condition": {
"StringLike": {
"kms:ViaService": [
"bedrock.${region}.amazonaws.com"
]
}
}
}
}
Amazon Bedrock Automation 암호화 컨텍스트
BDA는 모든 AWS KMS 암호화 작업에서 동일한 암호화 컨텍스트를 사용합니다. 여기서 키는 aws:bedrock:data-automation-customer-account-id
이고 값은 AWS 계정 ID입니다. 암호화 컨텍스트의 예는 다음과 같습니다.
"encryptionContext": { "bedrock:data-automation-customer-account-id": "
account id
" }
모니터링을 위한 암호화 컨텍스트 사용
대칭 고객 관리형 키를 사용하여 데이터를 암호화할 때 감사 레코드 및 로그의 암호화 컨텍스트를 사용하여 고객 관리형 키가 사용되는 방식을 식별할 수도 있습니다. 암호화 컨텍스트는 AWS CloudTrail 또는 Amazon CloudWatch Logs에서 생성된 로그에도 나타납니다.
암호화 컨텍스트를 사용하여 고객 관리형 키에 대한 액세스 제어
ou는 키 정책 및 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 Data Automation에서 호출한 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"
}