

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

# 보안
<a name="security-overview"></a>

Amazon Bedrock의 보안에는 데이터, 애플리케이션 및 인프라에 대한 여러 계층의 보호가 포함됩니다.

**Topics**
+ [데이터 보호](data-protection.md)
+ [Amazon Bedrock용 Identity and Access Management](security-iam.md)
+ [사용자 지정 모델 가져오기 작업을 위한 Amazon S3 버킷에 대한 교차 계정 액세스](cross-account-access-cmi.md)
+ [Amazon Bedrock의 규정 준수 확인](compliance-validation.md)
+ [Amazon Bedrock의 인시던트 대응](security-incident-response.md)
+ [Amazon Bedrock의 복원성](disaster-recovery-resiliency.md)
+ [Amazon Bedrock의 인프라 보안](infrastructure-security.md)
+ [교차 서비스 혼동된 대리인 방지](cross-service-confused-deputy-prevention.md)
+ [Amazon Bedrock의 구성 및 취약성 분석](vulnerability-analysis-and-management.md)
+ [Amazon Bedrock 침해 탐지](abuse-detection.md)
+ [프롬프트 인젝션 보안](prompt-injection.md)

# 데이터 보호
<a name="data-protection"></a>

 AWS [공동 책임 모델](https://aws.amazon.com/compliance/shared-responsibility-model/) Amazon Bedrock의 데이터 보호에 적용됩니다. 이 모델에 설명된 대로 AWS 는 모든를 실행하는 글로벌 인프라를 보호할 책임이 있습니다 AWS 클라우드. 사용자는 이 인프라에 호스팅되는 콘텐츠에 대한 통제 권한을 유지할 책임이 있습니다. 사용하는 AWS 서비스 의 보안 구성과 관리 태스크에 대한 책임도 사용자에게 있습니다. 데이터 프라이버시에 관한 자세한 내용은 [데이터 프라이버시 FAQ](https://aws.amazon.com/compliance/data-privacy-faq/)를 참조하세요. 유럽의 데이터 보호에 대한 자세한 내용은 *AWS 보안 블로그*의 [AWS 공동 책임 모델 및 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-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 추적 작업을](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) 참조하세요.
+ 내부의 모든 기본 보안 제어와 함께 AWS 암호화 솔루션을 사용합니다 AWS 서비스.
+ Amazon S3에 저장된 민감한 데이터를 검색하고 보호하는 데 도움이 되는 Amazon Macie와 같은 고급 관리형 보안 서비스를 사용합니다.
+ 명령줄 인터페이스 또는 API를 AWS 통해에 액세스할 때 FIPS 140-3 검증 암호화 모듈이 필요한 경우 FIPS 엔드포인트를 사용합니다. 사용 가능한 FIPS 엔드포인트에 대한 자세한 내용은 [연방 정보 처리 표준(FIPS) 140-3](https://aws.amazon.com/compliance/fips/)을 참조하세요.

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

Amazon Bedrock은 프롬프트 및 완성된 텍스트를 저장하거나 기록하지 않습니다. Amazon Bedrock은 프롬프트와 완료를 사용하여 AWS 모델을 훈련하지 않으며 타사에 배포하지 않습니다.

Amazon Bedrock에는 모델 배포 계정이라는 개념이 있습니다. Amazon Bedrock을 사용할 수 있는 각 AWS 리전에는 모델 공급자당 하나의 배포 계정이 있습니다. 이러한 계정은 Amazon Bedrock 서비스 팀이 소유하고 운영합니다. 모델 제공업체는 이러한 계정에 액세스할 수 없습니다. 모델 공급자에서 로 모델을 전달한 후 AWS Amazon Bedrock은 배포를 위해 모델 공급자의 추론 및 훈련 소프트웨어를 해당 계정에 심층 복사합니다. 모델 제공업체는 이러한 계정에 액세스할 수 없으므로 Amazon Bedrock 로그 또는 고객 프롬프트 및 완성된 텍스트에 액세스할 수 없습니다.

**Topics**
+ [데이터 암호화](data-encryption.md)
+ [Amazon VPC 및 AWS PrivateLink를 사용하여 데이터 보호](usingVPC.md)

# 데이터 암호화
<a name="data-encryption"></a>

Amazon Bedrock은 암호화를 사용하여 저장 데이터와 전송 중 데이터를 보호합니다.

**전송 중 데이터 암호화**

내부 AWS에서 전송 중인 모든 네트워크 간 데이터는 TLS 1.2 암호화를 지원합니다.

Amazon Bedrock API 및 콘솔에 대한 요청은 안전한 SSL 연결을 통해 전달됩니다. Amazon Bedrock에 AWS Identity and Access Management (IAM) 역할을 전달하여 교육 및 배포를 위해 사용자를 대신하여 리소스에 액세스할 수 있는 권한을 제공합니다.

**저장된 데이터 암호화**

Amazon Bedrock은 저장 시 [사용자 지정 모델 암호화](encryption-custom-job.md)을 제공합니다.

## 키 관리
<a name="key-management"></a>

 AWS Key Management Service 를 사용하여 리소스를 암호화하는 데 사용하는 키를 관리합니다. 자세한 내용은 [AWS Key Management Service 개념](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)을 참조하세요. KMS 키를 사용하여 다음 리소스를 암호화할 수 있습니다.
+ Amazon Bedrock 사용
  + 모델 사용자 지정 작업 및 해당 출력 사용자 지정 모델 - 콘솔에서 작업을 생성하는 동안 또는 [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) API 직접 호출에서 `customModelKmsKeyId` 필드를 지정하여 수행할 수 있습니다.
  + 에이전트 - 콘솔에서 에이전트를 생성하는 동안 또는 [CreateAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgent.html) API 직접 호출에서 `customerEncryptionKeyArn` 필드를 지정하여 수행할 수 있습니다.
  + 지식 기반용 데이터 소스 수집 작업 - 콘솔에서 지식 기반을 만드는 동안 또는 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) 또는 [UpdateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateDataSource.html) API 직접 호출에서 `kmsKeyArn` 필드를 지정하여 수행할 수 있습니다.
  + Amazon OpenSearch Service의 벡터 저장소 - 벡터 저장소를 생성하는 동안 수행할 수 있습니다. 자세한 내용은 [Amazon OpenSearch Service 모음 생성, 나열 및 삭제](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-manage.html) 및 [Amazon OpenSearch Service의 저장 데이터 암호화](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/encryption-at-rest.html)를 참조하세요.
  + 모델 평가 작업 - 콘솔에서 모델 평가 작업을 생성하거나 [CreateEvaluationJob ](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateEvaluationJob.html) API 직접 호출의 ` customerEncryptionKeyId`에서 키 ARN을 지정하는 경우입니다.
+ Amazon S3를 통해 - 자세한 내용은 [AWS KMS 키를 사용한 서버 측 암호화 사용(SSE-KMS)을 참조하세요.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)
  + 모델 사용자 지정을 위한 훈련, 검증 및 출력 데이터
  + 지식 기반용 데이터 소스
+ 통과 AWS Secrets Manager - 자세한 내용은 [의 보안 암호 암호화 및 복호화를 AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html) 참조하세요.
  + 타사 모델용 벡터 저장소

리소스를 암호화한 후 리소스를 선택하고 콘솔에서 해당 **세부 정보**를 보거나 다음 `Get` API 호출을 사용하여 KMS 키의 ARN을 찾을 수 있습니다.
+ [GetModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelCustomizationJob.html)
+ [GetAgent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetAgent.html)
+ [GetIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetIngestionJob.html)

# 사용자 지정 모델 암호화
<a name="encryption-custom-job"></a>

Amazon Bedrock은 [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) 작업 또는 [콘솔](model-customization-submit.md)과 함께 훈련 데이터를 사용하여 Amazon Bedrock 파운데이션 모델의 미세 조정 버전인 사용자 지정 모델을 생성합니다. 사용자 지정 모델은에서 관리 및 저장합니다AWS.

Amazon Bedrock은 사용자가 제공하는 미세 조정 데이터를 Amazon Bedrock 파운데이션 모델을 미세 조정하는 용도로만 사용합니다. Amazon Bedrock은 다른 용도로는 미세 조정 데이터를 사용하지 않습니다. 사용자의 훈련 데이터는 기본 Titan 모델 학습이나 타사 배포를 목적으로 사용되지 않습니다. 사용 타임스탬프, 로깅된 계정 ID, 서비스에서 로깅된 기타 정보 등과 같은 그 밖의 사용 데이터도 모델을 학습시키는 데 사용되지 않습니다.

미세 조정을 위해 사용자가 제공하는 훈련 또는 검증 데이터는 미세 조정 작업이 완료되면 Amazon Bedrock에 저장되지 않습니다.

미세 조정된 모델은 완성된 텍스트를 생성하는 과정에서 일부 미세 조정 데이터를 다시 재생할 수 있습니다. 앱이 어떤 형태로든 미세 조정 데이터를 노출하지 않아야 하는 경우, 먼저 훈련 데이터에서 기밀 데이터를 필터링해야 합니다. 실수로 기밀 데이터를 사용하여 사용자 지정 모델을 이미 만든 경우, 해당 사용자 지정 모델을 삭제하고 훈련 데이터에서 기밀 정보를 필터링한 다음 새 모델을 만들 수 있습니다.

사용자 지정 모델(복사된 모델 포함) 암호화 과정에서 Amazon Bedrock은 두 가지 옵션을 제공합니다.

1. **AWS 소유 키** - 기본적으로 Amazon Bedrock은를 사용하여 사용자 지정 모델을 암호화합니다AWS 소유 키. 사용을 확인, 관리 또는 사용하거나 AWS 소유 키감사할 수 없습니다. 하지만 데이터를 암호화하는 키를 보호하기 위해 어떤 액션을 수행하거나 어떤 프로그램을 변경할 필요가 없습니다. 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [AWS 소유 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) 섹션을 참조하세요.

1. **고객 관리형 키** - 사용자가 직접 관리하는 고객 관리형 키로 사용자 지정 모델을 암호화하도록 선택할 수 있습니다. 에 대한 자세한 내용은 *AWS Key Management Service개발자 안내서*의 [고객 관리형 키를](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) AWS KMS keys참조하세요.

**참고**  
Amazon Bedrock은 무료로를 사용하여 저장 시 암호화AWS 소유 키를 자동으로 활성화합니다. 고객 관리형 키를 사용하는 경우 AWS KMS요금이 적용됩니다. 요금에 대한 자세한 내용은 [AWS Key Management Service 요금](https://aws.amazon.com/kms/pricing/)을 참조하세요.

에 대한 자세한 내용은 [AWS Key Management Service개발자 안내서](https://docs.aws.amazon.com/kms/latest/developerguide/)를 AWS KMS참조하세요.

**Topics**
+ [Amazon Bedrock이에서 권한 부여를 사용하는 방법AWS KMS](#encryption-br-grants)
+ [고객 관리형 키를 만드는 방법과 키 정책을 연결하는 방법](#encryption-key-policy)
+ [사용자 지정 및 복사된 모델에 대한 권한 및 키 정책](#encryption-cm-statements)
+ [Amazon Bedrock 서비스의 암호화 키 모니터링](#encryption-monitor-key)
+ [훈련, 검증 및 출력 데이터의 암호화](#encryption-custom-job-data)

## Amazon Bedrock이에서 권한 부여를 사용하는 방법AWS KMS
<a name="encryption-br-grants"></a>

모델 사용자 지정 또는 모델 복사 작업에 대한 사용자 지정 모델을 암호화하기 위해 고객 관리형 키를 지정하는 경우, Amazon Bedrock은 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) 요청을 AWS KMS에 전송하여 사용자를 대신하여 사용자 지정 모델과 연결된 **기본** KMS [권한](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)을 생성합니다. 이 권한 부여를 통해 Amazon Bedrock은 고객 관리형 키에 액세스하고 사용할 수 있습니다. 의 권한 부여AWS KMS는 Amazon Bedrock에 고객 계정의 KMS 키에 대한 액세스 권한을 부여하는 데 사용됩니다.

다음과 같은 내부 작업에서 고객 관리형 키를 사용하려면 Amazon Bedrock에 기본 권한을 부여해야 합니다.
+ [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 요청을에 전송AWS KMS하여 작업을 생성할 때 입력한 대칭 고객 관리형 KMS 키 ID가 유효한지 확인합니다.
+ [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) 및 [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 요청을에 전송AWS KMS하여 고객 관리형 키로 암호화된 데이터 키를 생성하고 암호화된 데이터 키를 복호화하여 모델 아티팩트를 암호화하는 데 사용할 수 있도록 합니다.
+ 모델 사용자 지정, 모델 복사 또는 프로비저닝된 처리량 생성의 비동기 실행을 위해 위의 작업(`DescribeKey`, `GenerateDataKey`, `Decrypt`)의 하위 집합으로 범위가 축소된 보조 권한 부여를 생성AWS KMS하려면 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) 요청을에 보냅니다.
+ Amazon Bedrock은 권한 생성 중에 사용 중지 위탁자를 지정하므로 서비스가 [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html) 요청을 보낼 수 있습니다.

고객 관리형 AWS KMS키에 대한 전체 액세스 권한이 있습니다. [AWS Key Management Service 개발자 안내서](https://docs.aws.amazon.com/kms/latest/developerguide/)의 [권한 부여 사용 중지 및 취소](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete)에 안내된 단계에 따라 권한 부여에 대한 액세스를 취소하거나, [키 정책](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)을 수정하여 언제든지 고객 관리형 키에 대한 서비스의 액세스 권한을 제거할 수 있습니다. 이렇게 하면 Amazon Bedrock이 키로 암호화된 사용자 지정 모델에 액세스할 수 없습니다.

### 사용자 지정 모델에 대한 기본 및 보조 권한 부여의 수명 주기
<a name="encryption-primary-secondary-grants"></a>
+ **기본 권한 부여**는 수명이 길며 연결된 사용자 지정 모델을 계속 사용하는 한 활성 상태로 유지됩니다. 사용자 지정 모델을 삭제하면 해당 기본 권한 부여가 자동으로 사용 중지됩니다.
+ **보조 권한 부여**는 수명이 짧습니다. Amazon Bedrock이 고객을 대신하여 수행하는 작업이 완료되는 즉시 자동으로 사용 중지됩니다. 예를 들어, 모델 복사 작업이 완료되면 Amazon Bedrock이 복사된 사용자 지정 모델을 암호화하도록 허용한 보조 권한 부여는 즉시 사용 중지됩니다.

## 고객 관리형 키를 만드는 방법과 키 정책을 연결하는 방법
<a name="encryption-key-policy"></a>

생성 및 관리하는 키로 AWS리소스를 암호화하려면 다음 일반 단계를 수행합니다.

1. (사전 조건) IAM 역할에 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 작업에 대한 권한이 있어야 합니다.

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

1. 키를 만들면 키를 사용해야 하는 작업에 사용할 수 있는 키에 대한 `Arn`이 반환됩니다(예: [모델 사용자 지정 작업을 제출](model-customization-submit.md)하는 작업이나 [모델 추론을 실행](inference-invoke.md)하는 작업).

1. 필요한 권한을 사용하여 키 정책을 만들고 키에 연결합니다. 키 정책을 생성하려면 AWS Key Management Service개발자 안내서의 [키 정책 생성](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html) 단계를 따르세요.

## 사용자 지정 및 복사된 모델에 대한 권한 및 키 정책
<a name="encryption-cm-statements"></a>

KMS 키를 만든 후 키 정책을 연결합니다. 키 정책은 고객 관리형 키에 연결하여 액세스 권한을 제어하는 [리소스 기반 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)입니다. 모든 고객 관리형 키에는 키를 사용할 수 있는 사람과 키를 사용하는 방법을 결정하는 문장이 포함된 정확히 하나의 키 정책이 있어야 합니다. 고객 관리형 키를 생성할 때 키 정책을 지정할 수 있습니다. 키 정책은 언제든지 수정할 수 있지만 변경 사항이 AWS KMS 전체에 적용되기까지 약간의 시간이 필요할 수 있습니다. 자세한 내용은 [AWS Key Management Service 개발자 안내서](https://docs.aws.amazon.com/kms/latest/developerguide/)의 [고객 관리형 키에 대한 액세스 관리](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html#managing-access)를 참조하세요.

다음 KMS [작업](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html#awskeymanagementservice-actions-as-permissions)은 사용자 지정 및 복사된 모델을 암호화하는 키에 사용됩니다.

1. [kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) – [권한 부여 작업](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations)을 통해 Amazon Bedrock 서비스 위탁자가 지정된 KMS 키에 액세스할 수 있도록 하여 고객 관리형 키에 대한 권한을 만듭니다. 권한 부여에 대한 자세한 내용은 [AWS Key Management Service 개발자 안내서](https://docs.aws.amazon.com/kms/latest/developerguide/)의 [Grants in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)를 참조하세요.
**참고**  
또한 Amazon Bedrock은 사용 중지 위탁자를 설정하고 더 이상 필요하지 않은 권한 부여를 자동으로 사용 중지합니다.

1. [kms:DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) - Amazon Bedrock이 키를 검증할 수 있도록 고객 관리형 키 세부 정보를 제공합니다.

1. [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) – Amazon Bedrock이 사용자 액세스를 검증할 수 있도록 고객 관리형 키 세부 정보를 제공합니다. Amazon Bedrock은 사용자 지정 모델과 생성된 사이퍼텍스트를 함께 저장하여 사용자 지정 모델 사용자에 대한 추가적인 검증 검사에 사용합니다.

1. [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) - 저장된 사이퍼텍스트를 복호화하여 역할이 사용자 지정 모델을 암호화하는 KMS 키에 적절하게 액세스할 수 있는지 확인합니다.

보안 모범 사례로 Amazon Bedrock 서비스에 대한 키 액세스를 제한하려면 [kms:ViaService](https://docs.aws.amazon.com/kms/latest/developerguide/conditions-kms.html#conditions-kms-via-service) 조건 키를 포함하는 것이 좋습니다.

키에는 하나의 키 정책만 연결할 수 있지만, 정책의 `Statement` 필드 목록에 문을 추가하여 키 정책에 여러 문을 연결할 수 있습니다.

다음 문은 사용자 지정 및 복사된 모델 암호화와 관련이 있습니다.

### 모델 암호화
<a name="encryption-key-policy-encrypt"></a>

고객 관리형 키를 사용하여 사용자 지정 또는 복사된 모델을 암호화하려면 키 정책에 다음 문을 포함하여 모델의 암호화를 허용합니다. `Principal` 필드에서 키 암호화 및 복호화를 허용할 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다. `kms:ViaService` 조건 키를 사용하는 경우 각 리전에 행을 추가하거나 *\$1\$1region\$1* 대신 *\$1*를 사용하여 Amazon Bedrock을 지원하는 모든 리전을 허용할 수 있습니다.

```
{
    "Sid": "PermissionsEncryptDecryptModel",
    "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"
            ] 
        }
    }
}
```

### 암호화된 모델에 대한 액세스 허용
<a name="encryption-key-policy-decrypt"></a>

KMS 키로 암호화된 모델에 대한 액세스를 허용하려면 키 정책에 다음 문을 포함하여 키의 복호화를 허용합니다. `Principal` 필드에서 키 복호화를 허용할 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다. `kms:ViaService` 조건 키를 사용하는 경우 각 리전에 행을 추가하거나 *\$1\$1region\$1* 대신 *\$1*를 사용하여 Amazon Bedrock을 지원하는 모든 리전을 허용할 수 있습니다.

```
{
    "Sid": "PermissionsDecryptModel",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::${account-id}:role/${role}"
        ]
    },
    "Action": [
        "kms:Decrypt"
    ],
    "Resource": "*",
    "Condition": {
        "StringLike": {
            "kms:ViaService": [
                "bedrock.${region}.amazonaws.com"
            ] 
        }
    }
}
```

만들어야 하는 키 정책에 대해 알아보려면 해당하는 사용 사례의 섹션을 확장하세요.

### 사용자 지정 모델을 암호화하기 위한 키 권한 설정
<a name="encryption-cm"></a>

KMS 키로 사용자 지정한 모델을 암호화하려는 경우 해당 키의 키 정책은 사용 사례에 따라 달라집니다. 해당하는 사용 사례의 섹션을 확장해 내용을 살펴보세요.

#### 모델을 사용자 지정할 역할과 모델을 간접적으로 호출할 역할이 동일한 경우
<a name="encryption-cm-custom-invoke-same"></a>

사용자 지정 모델을 간접적으로 호출할 역할이 모델을 사용자 지정할 역할과 동일한 경우 [모델 암호화](#encryption-key-policy-encrypt)의 문만 있으면 됩니다. 다음 정책 템플릿의 `Principal` 필드에서 사용자 지정 모델을 사용자 지정하고 간접 호출하도록 허용할 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCustomModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCustomModel",
            "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"
                    ]
                }
            }
        }
    ]
}
```

------

#### 모델을 사용자 지정할 역할과 모델을 간접적으로 호출할 역할이 서로 다른 경우
<a name="encryption-custom-invoke-different"></a>

사용자 지정 모델을 간접적으로 호출할 역할이 모델을 사용자 지정할 역할과 서로 다른 경우 [모델 암호화](#encryption-key-policy-encrypt) 및 [암호화된 모델에 대한 액세스 허용](#encryption-key-policy-decrypt)의 문이 모두 필요합니다. 아래 단계에 따라 정책 템플릿의 문을 수정합니다.

1. 첫 번째 문은 키의 암호화 및 복호화를 허용합니다. `Principal` 필드에서 사용자 지정 모델을 사용자 지정하도록 허용할 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다.

1. 두 번째 문은 키의 복호화만 허용합니다. `Principal` 필드에서 사용자 지정 모델에 대한 간접 호출만 허용하려는 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCustomModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCustomModel",
            "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"
                    ]
                }
            }
        },
        {
            "Sid": "PermissionsDecryptModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

### 사용자 지정 모델을 복사하기 위한 키 권한 설정
<a name="encryption-copy"></a>

소유한 모델이나 공유된 모델을 복사할 때 최대 2개의 키 정책을 관리해야 할 수 있습니다.

#### 복사된 모델을 암호화하는 키에 대한 키 정책
<a name="encryption-copied-model-key-policy"></a>

KMS 키를 사용하여 복사된 모델을 암호화하려는 경우 해당 키의 키 정책은 사용 사례에 따라 달라집니다. 해당하는 사용 사례의 섹션을 확장해 내용을 살펴보세요.

##### 모델을 복사할 역할과 모델을 간접적으로 호출할 역할이 동일한 경우
<a name="encryption-copied-model-copy-invoke-same"></a>

복사된 모델을 간접적으로 호출할 역할이 모델 복사본을 만들 역할과 동일한 경우 [모델 암호화](#encryption-key-policy-encrypt)의 문만 있으면 됩니다. 다음 정책 템플릿의 `Principal` 필드에서 복사된 모델을 복사하고 간접 호출할 수 있도록 허용할 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCopiedModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCopiedModel",
            "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"
                    ]
                }
            }
        }
    ]
}
```

------

##### 모델을 복사할 역할과 모델을 간접적으로 호출할 역할이 서로 다른 경우
<a name="encryption-copied-model-copy-invoke-different"></a>

복사된 모델을 간접적으로 호출할 역할이 모델 복사본을 만들 역할과 다른 경우 [모델 암호화](#encryption-key-policy-encrypt) 및 [암호화된 모델에 대한 액세스 허용](#encryption-key-policy-decrypt)의 문이 모두 필요합니다. 아래 단계에 따라 정책 템플릿의 문을 수정합니다.

1. 첫 번째 문은 키의 암호화 및 복호화를 허용합니다. `Principal` 필드에서 복사된 모델을 만들도록 허용할 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다.

1. 두 번째 문은 키의 복호화만 허용합니다. `Principal` 필드에서 복사된 모델에 대한 간접 호출만 허용하려는 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsCopiedModelKey",
    "Statement": [
        {
            "Sid": "PermissionsEncryptCopiedModel",
            "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"
                    ]
                }
            }
        },
        {
            "Sid": "PermissionsDecryptCopiedModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

#### 복사할 소스 모델을 암호화하는 키에 대한 키 정책
<a name="encryption-copy-source-model-key-policy"></a>

복사할 소스 모델이 KMS 키로 암호화된 경우, 소스 모델을 암호화하는 키의 키 정책에 [암호화된 모델에 대한 액세스 허용](#encryption-key-policy-decrypt)의 문을 연결합니다. 이 문을 사용하면 모델 복사 역할이 소스 모델을 암호화하는 키를 복호화할 수 있습니다. 다음 정책 템플릿의 `Principal` 필드에서 소스 모델을 복사하도록 허용할 계정을 `AWS` 하위 필드가 매핑되는 목록에 추가합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PermissionsSourceModelKey",
    "Statement": [
        {
            "Sid": "PermissionsDecryptModel",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/Role"
                ]
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "bedrock.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

## Amazon Bedrock 서비스의 암호화 키 모니터링
<a name="encryption-monitor-key"></a>

Amazon Bedrock 리소스와 함께 AWS KMS고객 관리형 키를 사용하는 경우 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 또는 [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)를 사용하여 Amazon Bedrock이 보내는 요청을 추적할 수 있습니다AWS KMS.

다음은 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)가 기본 권한 부여를 생성하기 위해 Amazon Bedrock에서 호출한 KMS 작업을 모니터링하는 AWS CloudTrail이벤트의 예입니다.

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/RoleForModelCopy/SampleUser01",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAIGDTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/RoleForModelCopy",
                "accountId": "111122223333",
                "userName": "RoleForModelCopy"
            },
            "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",
        "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"
}
```

## 훈련, 검증 및 출력 데이터의 암호화
<a name="encryption-custom-job-data"></a>

Amazon Bedrock을 사용하여 모델 사용자 지정 작업을 실행할 경우, 입력 파일을 Amazon S3 버킷에 저장합니다. 작업이 완료되면 Amazon Bedrock은 작업을 생성할 때 지정한 S3 버킷에 출력 지표 파일을 저장하고 그에 따른 사용자 지정 모델 아티팩트를 제어되는 S3 버킷에 저장합니다AWS.

출력 파일은 S3 버킷의 암호화 구성으로 암호화됩니다. S3 버킷을 설정하는 방법에 따라 [SSE-S3 서버 측 암호화](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html) 또는 [AWS KMS SSE-KMS 암호화](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)로 암호화됩니다.

# 가져온 사용자 지정 모델의 암호화
<a name="encryption-import-model"></a>

Amazon Bedrock은 동일한 암호화 접근 방식을 사용하는 두 가지 방법을 통해 사용자 지정 모델 생성을 지원합니다. 사용자 지정 모델은 AWS다음을 통해 관리 및 저장됩니다.
+ **사용자 지정 모델 가져오기 작업** - 사용자 지정 오픈 소스 파운데이션 모델(예: Mistral AI 또는 Llama 모델)을 가져오는 데 사용됩니다.
+ **사용자 지정 모델 생성** - SageMaker AI에서 사용자 지정한 Amazon Nova 모델을 가져오는 데 사용됩니다.

사용자 지정 모델을 암호화할 수 있도록 Amazon Bedrock은 다음 옵션을 제공합니다.
+ **AWS소유 키** - 기본적으로 Amazon Bedrock은 가져온 사용자 지정 모델을 AWS소유 키로 암호화합니다. AWS소유 키를 보거나 관리하거나 사용하거나 사용을 감사할 수 없습니다. 하지만 데이터를 암호화하는 키를 보호하기 위해 어떤 작업을 수행하거나 어떤 프로그램을 변경할 필요가 없습니다. 자세한 내용은 *AWS Key Management Service 개발자 안내서*에서 [AWS 소유 키](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#aws-owned-cmk)를 참조하세요.
+ **고객 관리형 키(CMK)** - 고객 관리형 키(CMK)를 선택하여 기존 AWS소유 암호화 키에 두 번째 암호화 계층을 추가할 수 있습니다. 자체 고객 관리형 키를 만들고 관리할 수 있습니다.

   이 암호화 계층을 완전히 제어할 수 있으므로 다음과 같은 작업을 수행할 수 있습니다.
  + 키 정책 수립 및 관리
  + IAM 정책 및 권한 부여 수립 및 관리
  + 키 정책 활성화 및 비활성화
  + 키 암호화 자료 교체
  + 태그 추가
  + 키 별칭 생성
  + 키 삭제 예약

  자세한 내용은 *AWS Key Management Service 개발자 안내서*에서 [고객 관리형 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)를 참조하세요.

**참고**  
가져오는 모든 사용자 지정 모델에 대해 Amazon Bedrock은 AWS소유 키를 사용하여 저장 시 암호화를 자동으로 활성화하여 고객 데이터를 무료로 보호합니다. 고객 관리형 키를 사용하는 경우 AWS KMS요금이 적용됩니다. 요금에 대한 자세한 내용은 [AWS Key Management Service 요금](https://docs.aws.amazon.com/)을 참조하세요.

## Amazon Bedrock이에서 권한 부여를 사용하는 방법AWS KMS
<a name="import-model-kms-grants"></a>

고객 관리형 키를 지정하여 가져온 모델을 암호화하는 경우, Amazon Bedrock은 [CreateGrant](https://docs.aws.amazon.com//kms/latest/APIReference/API_CreateGrant.html) [https://docs.aws.amazon.com/](https://docs.aws.amazon.com/) 요청을에 전송하여 사용자를 대신하여 가져온 모델과 연결된 **기본**AWS KMS 권한을 생성합니다AWS KMS. 이 권한 부여를 통해 Amazon Bedrock은 고객 관리형 키에 액세스하고 사용할 수 있습니다. 의 권한 부여AWS KMS는 Amazon Bedrock에 고객 계정의 KMS 키에 대한 액세스 권한을 부여하는 데 사용됩니다.

다음과 같은 내부 작업에서 고객 관리형 키를 사용하려면 Amazon Bedrock에 기본 권한을 부여해야 합니다.
+ [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 요청을에 전송AWS KMS하여 작업을 생성할 때 입력한 대칭 고객 관리형 KMS 키 ID가 유효한지 확인합니다.
+ [GenerateDataKey](https://docs.aws.amazon.com//kms/latest/APIReference/API_GenerateDataKey.html) 및 [Decrypt](https://docs.aws.amazon.com//kms/latest/APIReference/API_Decrypt.html) 요청을 AWS KMS에 전송하여 고객 관리형 키로 암호화된 데이터 키를 생성하고 암호화된 데이터 키를 복호화하여 모델 아티팩트를 암호화하는 데 사용할 수 있도록 합니다.
+ 모델 가져오기의 비동기 실행 및 온디맨드 추론을 위해 위의 작업(`DescribeKey`, `GenerateDataKey`, `Decrypt`)의 하위 집합을 사용하여 범위가 축소된 보조 권한 부여를 생성AWS KMS하려면 [CreateGrant](https://docs.aws.amazon.com//kms/latest/APIReference/API_CreateGrant.html) 요청을에 보냅니다.
+ Amazon Bedrock은 권한 생성 중에 사용 중지 위탁자를 지정하므로 서비스가 [RetireGrant](https://docs.aws.amazon.com//kms/latest/APIReference/API_RetireGrant.html) 요청을 보낼 수 있습니다.

고객 관리형 AWS KMS키에 대한 전체 액세스 권한이 있습니다. *AWS Key Management Service 개발자 안내서*의 [권한 부여 사용 중지 및 취소](https://docs.aws.amazon.com//kms/latest/developerguide/grant-manage.html#grant-delete)에 안내된 단계에 따라 권한 부여에 대한 액세스를 취소하거나, 키 정책을 수정하여 언제든지 고객 관리형 키에 대한 서비스의 액세스 권한을 제거할 수 있습니다. 이렇게 하면 Amazon Bedrock이 키로 암호화된 가져온 모델에 액세스할 수 없습니다.

### 가져온 사용자 지정 모델에 대한 기본 및 보조 권한 부여의 수명 주기
<a name="import-model-kms-grants-lifecycle"></a>
+ **기본 권한 부여**는 수명이 길며 연결된 사용자 지정 모델을 계속 사용하는 한 활성 상태로 유지됩니다. 가져온 사용자 지정 모델을 삭제하면 해당 기본 권한 부여가 자동으로 사용 중지됩니다.
+ **보조 권한 부여**는 수명이 짧습니다. Amazon Bedrock이 고객을 대신하여 수행하는 작업이 완료되는 즉시 자동으로 사용 중지됩니다. 예를 들어, 사용자 지정 모델 가져오기 작업이 완료되면 Amazon Bedrock이 가져온 사용자 지정 모델을 암호화할 수 있도록 허용한 보조 권한 부여는 즉시 사용 중지됩니다.

# 고객 관리형 키(CMK) 사용
<a name="import-model-using-cmk"></a>

고객 관리형 키를 사용하여 가져온 사용자 지정 모델을 암호화하려는 경우 다음 단계를 완료합니다.

1. AWS Key Management Service를 사용하여 고객 관리형 키를 만듭니다.

1. 지정된 역할에 대한 권한이 있는 [리소스 기반 정책](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_identity-vs-resource.html)을 연결하여 가져온 사용자 지정 모델을 만들고 사용할 수 있습니다.

**고객 관리형 키 생성**

먼저 `CreateKey` 권한이 있어야 합니다. 그런 다음 [키를 생성하는](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html) 단계에 따라 AWS KMS콘솔 또는 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) API 작업에서 고객 관리형 키를 생성합니다. 대칭 암호화 키를 생성해야 합니다.

키를 만들면 사용자 지정 모델 가져오기로 사용자 지정 모델을 가져올 때 `importedModelKmsKeyId `로 사용할 수 있는 키에 대한 `Arn`이 반환됩니다.

**키 정책을 만들고 고객 관리형 키에 연결**

키 정책은 고객 관리형 키에 연결하여 액세스 권한을 제어하는 [리소스 기반 정책](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_identity-vs-resource.html)입니다. 모든 고객 관리형 키에는 키를 사용할 수 있는 사람과 키를 사용하는 방법을 결정하는 문장이 포함된 정확히 하나의 키 정책이 있어야 합니다. 고객 관리형 키를 생성할 때 키 정책을 지정할 수 있습니다. 키 정책은 언제든지 수정할 수 있지만 변경 사항이 AWS KMS 전체에 적용되기까지 약간의 시간이 필요할 수 있습니다. 자세한 내용은 *AWS Key Management Service 개발자 안내서*에서 [고객 관리형 키 액세스 관리](https://docs.aws.amazon.com//kms/latest/developerguide/control-access-overview.html#managing-access)를 참조하세요.

**가져온 사용자 지정 모델 암호화**

고객 관리형 키를 사용하여 가져온 사용자 지정 모델을 암호화하려면 키 정책에 다음 AWS KMS작업을 포함해야 합니다.
+ [kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) – [권한 부여 작업](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations)을 통해 Amazon Bedrock 서비스 위탁자가 지정된 KMS 키에 액세스할 수 있도록 하여 고객 관리형 키에 대한 권한을 만듭니다. 권한에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*에서 [Grants in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)를 참조하세요.
**참고**  
또한 Amazon Bedrock은 사용 중지 위탁자를 설정하고 더 이상 필요하지 않은 권한 부여를 자동으로 사용 중지합니다.
+ [kms:DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) - Amazon Bedrock이 키를 검증할 수 있도록 고객 관리형 키 세부 정보를 제공합니다.
+ [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) – Amazon Bedrock이 사용자 액세스를 검증할 수 있도록 고객 관리형 키 세부 정보를 제공합니다. Amazon Bedrock은 가져온 사용자 지정 모델과 생성된 사이퍼텍스트를 함께 저장하여 가져온 사용자 지정 모델 사용자에 대한 추가적인 검증 검사에 사용합니다.
+ [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) - 저장된 사이퍼텍스트를 복호화하여 역할이 가져온 사용자 지정 모델을 암호화하는 KMS 키에 적절하게 액세스할 수 있는지 확인합니다.

다음은 가져온 모델을 암호화하는 데 사용할 역할의 키에 연결할 수 있는 정책 예제입니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "KMS key policy for a key to encrypt an imported custom model",
    "Statement": [
        {
            "Sid": "Permissions for model import API invocation role",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/role"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**암호화된 가져온 사용자 지정 모델 복호화**

이미 다른 고객 관리형 키로 암호화된 사용자 지정 모델을 가져오는 경우, 다음 정책과 같이 동일한 역할에 대한 `kms:Decrypt` 권한을 추가해야 합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "KMS key policy for a key that encrypted a custom imported model",
    "Statement": [
        {
            "Sid": "Permissions for model import API invocation role",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/role"
            },
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "*"
        }
    ]
}
```

------

# Amazon Bedrock 서비스의 암호화 키 모니터링
<a name="import-model-monitor-encryption-keys"></a>

Amazon Bedrock 리소스와 함께 AWS KMS고객 관리형 키를 사용하는 경우 [AWS CloudTrail](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 또는 [Amazon CloudWatch Logs](https://docs.aws.amazon.com//AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)를 사용하여 Amazon Bedrock이 보내는 요청을 추적할 수 있습니다AWS KMS.

다음은 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)가 기본 권한 부여를 생성하기 위해 Amazon Bedrock에서 호출한 AWS KMS작업을 모니터링하는 AWS CloudTrail이벤트의 예입니다.

```
{
"eventVersion": "1.09",
    "userIdentity": {
"type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01",
        "arn": "arn:aws:sts::111122223333:assumed-role/RoleForModelImport/SampleUser01",
        "accountId": "111122223333",
        "accessKeyId": "EXAMPLE",
        "sessionContext": {
"sessionIssuer": {
"type": "Role",
                "principalId": "AROAIGDTESTANDEXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/RoleForModelImport",
                "accountId": "111122223333",
                "userName": "RoleForModelImport"
            },
            "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",
        "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"
}
```

[정책 생성](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-overview.html)의 단계에 따라 다음 리소스 기반 정책을 KMS 키에 연결합니다. 정책은 2개의 문으로 구성됩니다.

1. 역할이 모델 사용자 지정 아티팩트를 암호화할 수 있는 권한입니다. 가져온 사용자 지정 모델 빌더 역할의 ARN을 `Principal` 필드에 추가합니다.

1. 가져온 사용자 지정 모델을 추론에서 사용할 수 있는 권한입니다. 가져온 사용자 지정 모델 사용자 역할의 ARN을 `Principal` 필드에 추가합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "KMS Key Policy",
    "Statement": [
        {
            "Sid": "Permissions for imported model builders",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/role"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Permissions for imported model users",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/role"
            },
            "Action": "kms:Decrypt",
            "Resource": "*"
        }
    ]
}
```

------

# Amazon Bedrock데이터 자동화의 암호화
<a name="encryption-bda"></a>

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

1. AWS소유 키 - 기본적으로 BDA는 AWS소유 키로 데이터를 암호화합니다. AWS소유 키를 보거나 관리하거나 사용하거나 사용을 감사할 수 없습니다. 하지만 데이터를 암호화하는 키를 보호하기 위해 어떤 작업을 수행하거나 어떤 프로그램을 변경할 필요가 없습니다. 자세한 내용은 [AWSKey Management Service 개발자 안내서의 소유](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) AWS키를 참조하세요.

1.  고객 관리형 키 - 사용자가 직접 관리하는 고객 관리형 키로 데이터를 암호화하도록 선택할 수 있습니다. AWS KMS키에 대한 자세한 내용은 AWSKey Management Service 개발자 안내서의 [고객 관리형 키를](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) 참조하세요. BDA는 Amazon Bedrock 콘솔에서 사용할 수 있는 고객 관리형 키를 지원하지 않으며 API 작업에만 지원됩니다.

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

## 에서 권한 부여를 Amazon Bedrock사용하는 방법AWS KMS
<a name="encryption-bda-grants"></a>

 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에 의해 사용 중지됩니다.

## 고객 관리형 키 생성 및 키 정책 연결
<a name="encryption-bda-creating-keys"></a>

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

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

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

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

1.  필요한 권한을 사용하여 키 정책을 만들고 키에 연결합니다. 키 정책을 생성하려면 AWS KMS개발자 안내서의 [ 키 정책 생성 ](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-create.html) 단계를 따르세요.

## Amazon Bedrock데이터 자동화 리소스에 대한 권한 및 키 정책
<a name="encryption-bda-key-policies.title"></a>

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

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

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

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

1.  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 암호화 컨텍스트
<a name="encryption-bda-context"></a>

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에서 생성된 로그에도 표시됩니다.

**암호화 컨텍스트를 사용하여 고객 관리형 키에 대한 액세스 제어**  
그러나 키 정책 및 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데이터 자동화를 위한 암호화 키 모니터링
<a name="encryption-bda-monitoring"></a>

 Amazon Bedrock데이터 자동화 리소스와 함께 AWS KMS고객 관리형 키를 사용하는 경우 [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 또는 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)를 사용하여 Amazon Bedrock데이터 자동화가 보내는 요청을 추적할 수 있습니다AWS KMS. 다음은 [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)가 기본 권한 부여를 생성하기 위해 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"
}
```

# 에이전트 리소스 암호화
<a name="encryption-agents-new"></a>

저장 데이터를 기본적으로 암호화하면 민감한 데이터 보호와 관련된 운영 오버헤드와 복잡성을 줄이는 데 도움이 됩니다. 동시에 엄격한 암호화 규정 준수 및 규제 요구 사항을 충족하는 안전한 애플리케이션을 구축할 수 있습니다.

Amazon Bedrock은 기본 AWS 소유 키를 사용하여 에이전트의 정보를 자동으로 암호화합니다. 여기에는 컨트롤 플레인 데이터와 세션 데이터가 포함됩니다. 사용자는 AWS 소유 키를 보거나 관리하거나 사용을 감사할 수 없습니다. 자세한 내용은 [AWS 소유 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)를 참조하세요.

이 암호화 계층을 비활성화할 수는 없지만 AWS 소유 키 대신 고객 관리형 키를 사용하여 에이전트의 정보를 암호화하도록 선택할 수 있습니다. Amazon Bedrock은 이제 기본 AWS 소유 암호화 대신 사용자가 생성, 소유, 관리하는 대칭 고객 관리형 키(CMK)를 사용할 수 있도록 지원합니다. 자세한 내용은 [고객 관리형 키](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)를 참조하세요.

**중요**  
Amazon Bedrock은 AWS 소유 키를 사용하여 에이전트의 세션 정보를 무료로 자동으로 암호화합니다.
AWS KMS 요금은 고객 관리형 키를 사용할 때 부과됩니다. 요금에 대한 자세한 내용은 [AWS Key Management Service 요금](https://aws.amazon.com/kms/pricing/)을 참조하세요.
2025년 1월 22일 *이전*에 에이전트를 생성하고 에이전트 리소스를 암호화하는 데 고객 관리형 키를 사용하려면 [2025년 1월 22일 이전에 생성된 에이전트의 에이전트 리소스 암호화](encryption-agents.md)의 지침을 따르세요.

# 고객 관리형 키(CMK)를 사용한 에이전트 리소스 암호화
<a name="cmk-agent-resources"></a>

언제든지 고객 관리형 키를 생성하여 에이전트를 빌드할 때 제공된 다음 에이전트 정보를 사용하여 에이전트의 정보를 암호화할 수 있습니다.

**참고**  
다음 에이전트 리소스는 2025년 1월 22일 이후에 생성된 에이전트에 대해서만 암호화됩니다.


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/cmk-agent-resources.html)

고객 관리형 키를 사용하려면 다음 단계를 완료합니다.

1.  AWS Key Management Service를 사용하여 고객 관리형 키를 만듭니다.

1. 키 정책을 만들고 고객 관리형 키에 연결

## 고객 관리형 키 생성
<a name="create-cmk-agent"></a>

 AWS 관리 콘솔 또는 AWS Key Management Service APIs.

 먼저 `CreateKey` 권한이 있는지 확인한 다음 *AWS Key Management Service 개발자 안내서*의 [대칭 고객 관리형 키 생성](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) 단계를 따릅니다.

**키 정책** - 고객 관리형 키에 대한 액세스를 제어합니다. 모든 고객 관리형 키에는 키를 사용할 수 있는 사람과 키를 사용하는 방법을 결정하는 문장이 포함된 정확히 하나의 키 정책이 있어야 합니다. 고객 관리형 키를 만들 때 키 정책을 지정할 수 있습니다. 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [고객 관리형 키에 대한 액세스 관리](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)를 참조하세요.

2025년 1월 22일 이후에 에이전트를 생성하고 고객 관리형 키를 사용하여 에이전트의 정보를 암호화하려는 경우 에이전트 API 작업을 직접 호출하는 사용자 또는 역할에 키 정책에 다음 권한이 있는지 확인합니다.
+ [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) - AWS KMS 외부에서 사용할 고유한 대칭 데이터 키를 반환합니다.
+ [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) – KMS 키로 암호화된 사이퍼텍스트를 해독합니다.

키를 생성하면 에이전트를 생성할 때 `customerEncryptionKeyArn`으로 사용할 수 있는 키에 대한 `Arn`이 반환됩니다.

## 키 정책을 만들고 고객 관리형 키에 연결
<a name="attach-policy-agent"></a>

고객 관리형 키로 에이전트 리소스를 암호화하는 경우 Amazon Bedrock이 사용자 대신 에이전트 리소스를 암호화하고 복호화하도록 허용하려면 ID 기반 정책 및 리소스 기반 정책을 설정해야 합니다.

**자격 증명 기반 정책**

사용자를 대신하여 에이전트 리소스를 암호화하고 해독하는 에이전트 API를 호출할 수 있는 권한이 있는 IAM 역할 또는 사용자에게 다음 자격 증명 기반 정책을 연결합니다. 이 정책은 API 호출을 수행하는 사용자에게 AWS KMS 권한이 있는지 확인합니다. `${region}`, `${account-id}`, `${agent-id}` 및 `${key-id}`를 적절한 값으로 바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EncryptAgents",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}"
                }
            }
        }
    ]
}
```

------

**리소스 기반 정책**

Amazon S3의 스키마가 암호화된 작업 그룹을 생성하는 *경우에만* 다음 리소스 기반 정책을 AWS KMS 키에 연결합니다. 다른 사용 사례에 대해서는 리소스 기반 정책을 연결할 필요가 없습니다.

다음 리소스 기반 정책을 연결하려면 필요에 따라 권한 범위를 변경하고 `${region}`, `${account-id}`, `${agent-id}` 및 `${key-id}`를 적절한 값으로 바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Allow account root to modify the KMS key, not used by Amazon Bedrock.",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}"
        },
        {
            "Sid": "Allow Amazon Bedrock to encrypt and decrypt Agent resources on behalf of authorized users",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}"
                }
            }
        }
    ]
}
```

------

## 고객 관리형 키 변경
<a name="change-cmk"></a>

Amazon Bedrock 에이전트는 *DRAFT* 에이전트와 연결된 고객 관리형 키가 변경되거나 고객 관리형 키에서 AWS 소유 키로 이동할 때 버전이 지정된 에이전트의 재암호화를 지원하지 않습니다. *DRAFT* 리소스의 데이터만 새 키로 다시 암호화됩니다.

버전이 지정된 에이전트의 키를 프로덕션 데이터를 제공하는 데 사용하는 경우, 키에 대한 권한을 삭제하거나 제거하지 않아야 합니다.

버전에서 사용 중인 키를 보고 확인하려면 [GetAgentVersion](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_agent_GetAgentVersion.html)을 직접 호출하고 응답에서 `customerEncryptionKeyArn`을 확인합니다.

# 고객 관리형 키(CMK)를 사용하여 에이전트 세션 암호화
<a name="ltm-permissions"></a>

에이전트에 메모리를 활성화하고 고객 관리형 키로 에이전트 세션을 암호화하는 경우, 고객 관리형 키를 구성하려면 다음 키 정책과 직접 호출 ID IAM 권한을 구성해야 합니다.

**고객 관리형 키 정책**

Amazon Bedrock은 이러한 권한을 사용하여 암호화된 데이터 키를 생성한 다음, 생성된 키를 사용하여 에이전트 메모리를 암호화합니다. Amazon Bedrock에는 생성된 데이터 키를 다른 암호화 컨텍스트로 다시 암호화할 수 있는 권한도 필요합니다. 재암호화 권한은 고객 관리형 키가 다른 고객 관리형 키 또는 서비스 소유 키 간에 전환될 때도 사용됩니다. 자세한 내용은 [Hierarchical Keyring](https://docs.aws.amazon.com//database-encryption-sdk/latest/devguide/use-hierarchical-keyring.html)을 참조하세요.

`$region`, `account-id`, `${caller-identity-role}`을 적절한 값으로 변경합니다.

```
{
    "Version": "2012-10-17",		 	 	 
    {
        "Sid": "Allow access for bedrock to enable long term memory",
        "Effect": "Allow",
        "Principal": {
            "Service": [
                "bedrock.amazonaws.com",
            ],
        },
        "Action": [
            "kms:GenerateDataKeyWithoutPlainText",
            "kms:ReEncrypt*"
        ],
        "Condition": {
            "StringEquals": {
                "aws:SourceAccount": "$account-id"
            },
            "ArnLike": {
                "aws:SourceArn": "arn:aws:bedrock:$region:$account-id:agent-alias/*"
            }
        }
        "Resource": "*"
    },
    {
        "Sid": "Allow the caller identity control plane permissions for long term memory",
        "Effect": "Allow", 
        "Principal": {
            "AWS": "arn:aws:iam::${account-id}:role/${caller-identity-role}"
        },
        "Action": [
            "kms:GenerateDataKeyWithoutPlainText",
            "kms:ReEncrypt*"
        ],
        "Resource": "*",
        "Condition": {
            "StringLike": {
                "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:${region}:${account-id}:agent-alias/*"
            }
        }
    },
    {
        "Sid": "Allow the caller identity data plane permissions to decrypt long term memory",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::${account-id}:role/${caller-identity-role}"
        },
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": "*",
        "Condition": {
            "StringLike": {
                "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:${region}:${account-id}:agent-alias/*",
                "kms:ViaService": "bedrock.$region.amazonaws.com" 
            }
        }
    }
}
```

**에이전트 메모리를 암호화하고 복호화할 수 있는 IAM 권한**

ID 직접 호출 에이전트 API가 메모리가 활성화된 에이전트에 대한 KMS 키를 구성하려면 다음 IAM 권한이 필요합니다. Amazon Bedrock 에이전트는 이러한 권한을 사용하여 호출자 ID가 위의 API 키 정책에 언급된 권한으로 모델을 관리, 훈련, 배포할 수 있는지 확인합니다. 에이전트를 간접적으로 호출하는 API의 경우 Amazon Bedrock 에이전트는 호출자 ID의 `kms:Decrypt` 권한을 사용하여 메모리를 복호화합니다.

`$region`, `account-id`, `${key-id}`을 적절한 값으로 변경합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AgentsControlPlaneLongTermMemory",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKeyWithoutPlaintext", 
                "kms:ReEncrypt*"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent-alias/*"
                }
            }
        },
        {
            "Sid": "AgentsDataPlaneLongTermMemory",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:aws-crypto-ec:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent-alias/*"
                }
            }
        }
    ]
}
```

------

# 에이전트를 위한 예방적 보안 모범 사례
<a name="security-best-practice-agents"></a>

Amazon Bedrock 서비스를 위한 다음과 같은 모범 사례를 통해 보안 인시던트를 예방할 수 있습니다.

**보안 연결 사용**

전송 중에 민감한 정보를 안전하게 유지하기 위해 항상 암호화된 연결(예: `https://`(으)로 시작하는 연결)을 사용하세요.

**리소스에 대한 최소 권한 액세스 구현**

Amazon Bedrock 리소스에 대한 사용자 지정 정책을 생성하는 경우 태스크를 수행하는 데 필요한 권한만 부여하세요. 최소한의 권한으로 시작하고 필요에 따라 추가 권한을 부여하는 것이 좋습니다. 오류나 악의적인 공격으로 인해 발생할 수 있는 위험과 영향을 줄이려면 최소 권한 액세스를 구현하는 것이 필수적입니다. 자세한 내용은 [Amazon Bedrock용 Identity and Access Management](security-iam.md) 단원을 참조하십시오.

**고객 데이터가 포함된 에이전트 리소스에는 개인 식별 정보(PII)를 포함하지 마세요.**

에이전트 리소스를 생성, 업데이트 및 삭제할 때(예: [CreateAgent](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_agent_CreateAgent.html) 사용 시) 작업 그룹 이름 및 지식 기반 이름과 같은 고객 관리형 키 사용을 지원하지 않는 필드에는 개인 식별 정보(PII)가 포함되지 않습니다. 고객 관리형 키 사용을 지원하는 필드 목록은 [고객 관리형 키(CMK)를 사용한 에이전트 리소스 암호화](cmk-agent-resources.md) 섹션을 참조하세요.

# 2025년 1월 22일 이전에 생성된 에이전트의 에이전트 리소스 암호화
<a name="encryption-agents"></a>

**중요**  
2025년 1월 22일 *이후*에 에이전트를 생성한 경우 [에이전트 리소스 암호화](encryption-agents-new.md)에 대한 지침을 따릅니다.

Amazon Bedrock은 에이전트의 세션 정보를 암호화합니다. 기본적으로 Amazon Bedrock은 AWS관리형 키를 사용하여이 데이터를 암호화합니다. 선택 사항으로, 고객 관리형 키를 사용하여 에이전트 아티팩트를 암호화할 수 있습니다.

에 대한 자세한 내용은 *AWS Key Management Service개발자 안내서*의 [고객 관리형 키를](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) AWS KMS keys참조하세요.

사용자 지정 KMS 키로 에이전트와의 세션을 암호화하는 경우 Amazon Bedrock이 사용자 대신 에이전트 리소스를 암호화하고 복호화하도록 허용하려면 다음 ID 기반 정책 및 리소스 기반 정책을 설정해야 합니다.

1. `InvokeAgent`를 직접 호출할 수 있는 권한이 있는 IAM 역할 또는 사용자에게 다음 ID 기반 정책을 연결합니다. 이 정책은 `InvokeAgent`를 직접 호출할 수 있는 사용자에게 KMS 권한이 있는지 확인합니다. *\$1\$1region\$1*, *\$1\$1account-id\$1*, *\$1\$1agent-id\$1* 및 *\$1\$1key-id\$1*를 적절한 값으로 바꿉니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EncryptDecryptAgents",
               "Effect": "Allow",
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/agent-id"
                   }
               }
           }
       ]
   }
   ```

------

1. 다음 리소스 기반 정책을 KMS 키에 연결합니다. 필요에 따라 권한의 범위를 변경합니다. *\$1\$1region\$1*, *\$1\$1account-id\$1*, *\$1\$1agent-id\$1* 및 *\$1\$1key-id\$1*를 적절한 값으로 바꿉니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowRootModifyKMSKey",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:root"
               },
               "Action": "kms:*",
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId"
           },
           {
               "Sid": "AllowBedrockEncryptAgent",
               "Effect": "Allow",
               "Principal": {
                   "Service": "bedrock.amazonaws.com"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/AgentId"
                   }
               }
           },
           {
               "Sid": "AllowRoleEncryptAgent",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:role/Role"
               },
               "Action": [
                   "kms:GenerateDataKey*",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId"
           },
           {
               "Sid": "AllowAttachmentPersistentResources",
               "Effect": "Allow",
               "Principal": {
                   "Service": "bedrock.amazonaws.com"
               },
               "Action": [
                   "kms:CreateGrant",
                   "kms:ListGrants",
                   "kms:RevokeGrant"
               ],
               "Resource": "*",
               "Condition": {
                   "Bool": {
                       "kms:GrantIsForAWSResource": "true"
                   }
               }
           }
       ]
   }
   ```

------

# Amazon Bedrock Flows 리소스 암호화
<a name="encryption-flows"></a>

Amazon Bedrock은 저장 데이터를 암호화합니다. 기본적으로 Amazon Bedrock은 AWS 관리형 키를 사용하여 이 데이터를 암호화합니다. 선택 사항으로, 고객 관리형 키를 사용하여 데이터를 암호화할 수 있습니다.

에 대한 자세한 내용은 *AWS Key Management Service개발자 안내서*의 [고객 관리형 키를](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) AWS KMS keys참조하세요.

사용자 지정 KMS 키로 데이터를 암호화하는 경우 Amazon Bedrock이 사용자 대신 데이터를 암호화하고 복호화하도록 허용하려면 다음 ID 기반 정책 및 리소스 기반 정책을 설정해야 합니다.

1. Amazon Bedrock Flows API를 직접 호출할 수 있는 권한이 있는 IAM 역할 또는 사용자에게 다음 ID 기반 정책을 연결합니다. 이 정책은 Amazon Bedrock Flows를 직접 호출할 수 있는 사용자에게 KMS 권한이 있는지 확인합니다. *\$1\$1region\$1*, *\$1\$1account-id\$1*, *\$1\$1flow-id\$1*, *\$1\$1key-id\$1*를 적절한 값으로 바꿉니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EncryptFlow",
               "Effect": "Allow",
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock-flows:arn": "arn:aws:bedrock:us-east-1:123456789012:flow/${flow-id}",
                       "kms:ViaService": "bedrock.us-east-1.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. 다음 리소스 기반 정책을 KMS 키에 연결합니다. 필요에 따라 권한의 범위를 변경합니다. *\$1IAM-USER/ROLE-ARN\$1*, *\$1\$1region\$1*, *\$1\$1account-id\$1*, *\$1\$1flow-id\$1* 및 *\$1\$1key-id\$1*를 적절한 값으로 바꿉니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowRootModifyKMSId",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:root"
               },
               "Action": "kms:*",
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/KeyId"
           },
           {
               "Sid": "AllowRoleUseKMSKey",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:role/RoleName"
               },
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock-flows:arn": "arn:aws:bedrock:us-east-1:123456789012:flow/FlowId",
                       "kms:ViaService": "bedrock.us-east-1.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

1. [흐름 실행](flows-create-async.md)의 경우 [흐름을 생성하고 관리할 권한이 있는 서비스 역할](flows-permissions.md)에 다음 자격 증명 기반 정책을 연결합니다. 이 정책은 서비스 역할에 AWS KMS권한이 있는지 확인합니다. *region*, *account-id*, *flow-id*, *key-id*를 적절한 값으로 바꿉니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "EncryptionFlows",
               "Effect": "Allow",
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id",
               "Condition": {
                   "StringEquals": {
                       "kms:EncryptionContext:aws:bedrock-flows:arn": "arn:aws:bedrock:us-east-1:123456789012:flow/flow-id",
                       "kms:ViaService": "bedrock.us-east-1.amazonaws.com"
                   }
               }
           }
       ]
   }
   ```

------

# 지식 기반 리소스 암호화
<a name="encryption-kb"></a>

Amazon Bedrock은 지식 기반과 관련된 리소스를 암호화합니다. 기본적으로 Amazon Bedrock은 AWS소유 키를 사용하여이 데이터를 암호화합니다. 선택 사항으로, 고객 관리형 키를 사용하여 모델 아티팩트를 암호화할 수 있습니다.

KMS 키를 사용한 암호화는 다음 프로세스에서 발생할 수 있습니다.
+ 데이터 소스를 수집하는 동안의 임시 데이터 스토리지
+ Amazon Bedrock에서 벡터 데이터베이스를 설정하도록 허용한 경우 OpenSearch Service에 정보 전달
+ 지식 기반 쿼리

지식 기반에서 사용하는 다음 리소스를 KMS 키로 암호화할 수 있습니다. 암호화할 경우 KMS 키를 복호화할 수 있는 권한을 추가해야 합니다.
+ Amazon S3 버킷에 저장된 데이터 소스
+ 타사 벡터 저장소

에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [고객 관리형 키를](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) AWS KMS keys참조하세요.

**참고**  
Amazon Bedrock 지식 기반은 제공업체가 전송 중 TLS 암호화를 허용하고 지원하는 타사 데이터 소스 커넥터 및 벡터 저장소와의 통신을 위해 TLS 암호화를 사용합니다.

**Topics**
+ [데이터 모으기 중 임시 데이터 스토리지의 암호화](#encryption-kb-ingestion)
+ [Amazon OpenSearch Service로 전달된 정보 암호화](#encryption-kb-oss)
+ [Amazon S3 Vectors에 전달된 정보의 암호화](#encryption-kb-s3-vector)
+ [지식 기반 검색 암호화](#encryption-kb-runtime)
+ [Amazon S3에서 데이터 소스의 AWS KMS 키를 복호화할 수 있는 권한](#encryption-kb-ds)
+ [지식 기반이 포함된 벡터 저장소의 AWS Secrets Manager 보안 암호를 해독할 수 있는 권한](#encryption-kb-3p)
+ [AWS KMS 암호화를 사용한 Bedrock Data Automation(BDA)에 대한 권한](#encryption-kb-bda)

## 데이터 모으기 중 임시 데이터 스토리지의 암호화
<a name="encryption-kb-ingestion"></a>

지식 기반에 대한 데이터 모으기 작업을 설정할 때 사용자 지정 KMS 키를 사용하여 작업을 암호화할 수 있습니다.

데이터 소스를 수집하는 과정에서 임시 데이터 스토리지용 AWS KMS 키를 생성할 수 있도록 하려면 Amazon Bedrock 서비스 역할에 다음 정책을 연결합니다. 예제 값을 자체 AWS 리전, 계정 ID 및 AWS KMS 키 ID로 바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/key-id"
            ]
        }
    ]
}
```

------

## Amazon OpenSearch Service로 전달된 정보 암호화
<a name="encryption-kb-oss"></a>

Amazon Bedrock이 지식 기반용 Amazon OpenSearch Service에 벡터 저장소를 생성하도록 선택한 경우 Amazon Bedrock은 사용자가 선택한 KMS 키를 Amazon OpenSearch Service에 전달하여 암호화할 수 있습니다. Amazon OpenSearch Service의 암호화에 대해 자세히 알아보려면 [Amazon OpenSearch Service 암호화](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-encryption.html)를 참조하세요.

## Amazon S3 Vectors에 전달된 정보의 암호화
<a name="encryption-kb-s3-vector"></a>

Amazon Bedrock이 지식 기반용 Amazon S3 Vectors에 S3 벡터 버킷 및 벡터 인덱스를 생성하도록 선택한 경우 Amazon Bedrock은 사용자가 선택한 KMS 키를 Amazon S3 Vectors에 전달하여 암호화할 수 있습니다. Amazon S3 Vectors의 암호화에 대한 자세한 내용은 [Amazon S3 Vectors를 사용한 암호화](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-bucket-encryption.html)를 참조하세요.

## 지식 기반 검색 암호화
<a name="encryption-kb-runtime"></a>

KMS 키로 지식 기반을 쿼리하여 응답을 생성하는 세션을 암호화할 수 있습니다. 이렇게 하려면 [RetrieveAndGenerate](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) 요청을 생성할 때 KMS 키의 ARN을 `kmsKeyArn` 필드에 포함시킵니다. Amazon Bedrock이 세션 컨텍스트를 암호화할 수 있도록 예제 값을 자체 AWS 리전, 계정 ID 및 AWS KMS 키 ID로 바꾸어 다음 정책을 연결합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id"
        }
    ]
}
```

------

## Amazon S3에서 데이터 소스의 AWS KMS 키를 복호화할 수 있는 권한
<a name="encryption-kb-ds"></a>

Amazon S3 버킷에 지식 기반용 데이터 소스를 저장합니다. 이러한 저장된 문서를 암호화하려면 Amazon S3의 SSE-S3 서버 측 암호화 옵션을 사용하면 됩니다. 이 옵션을 사용하면 Amazon S3 서비스에서 관리하는 서비스 키로 객체가 암호화됩니다.

자세한 내용은 Amazon Simple Storage Service 사용 설명서의 [Amazon S3 관리형 암호화 키(SSE-S3)로 서버 측 암호화를 사용하여 데이터 보호](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingServerSideEncryption.html) 섹션을 참조하세요.**

사용자 지정 AWS KMS 키로 Amazon S3의 데이터 소스를 암호화한 경우 Amazon Bedrock 서비스 역할에 다음 정책을 연결하여 Amazon Bedrock이 키를 해독하도록 허용합니다. 예제 값을 자체 AWS 리전, 계정 ID 및 AWS KMS 키 ID로 바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "KMS:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/key-id"
            ],
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": [
                        "s3.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

## 지식 기반이 포함된 벡터 저장소의 AWS Secrets Manager 보안 암호를 해독할 수 있는 권한
<a name="encryption-kb-3p"></a>

지식 기반이 포함된 벡터 저장소가 AWS Secrets Manager 보안 암호로 구성된 경우 보안 암호 암호화 및 암호 해독의 단계에 따라 사용자 지정 AWS KMS 키로 보안 암호를 암호화할 수 있습니다. [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html) 

이렇게 하려면 Amazon Bedrock 서비스 역할에 다음 정책을 연결하여 키를 복호화할 수 있도록 허용합니다. 예제 값을 자체 AWS 리전, 계정 ID 및 AWS KMS 키 ID로 바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/key-id"
            ]
        }
    ]
}
```

------

## AWS KMS 암호화를 사용한 Bedrock Data Automation(BDA)에 대한 권한
<a name="encryption-kb-bda"></a>

BDA를 사용하여 고객 관리형 AWS KMS 키로 멀티모달 콘텐츠를 처리하는 경우 표준 권한 외에 추가 AWS KMS 권한이 필요합니다.

다음 정책을 Amazon Bedrock 서비스 역할에 연결하여 BDA가 암호화된 멀티미디어 파일로 작업할 수 있도록 합니다. 예제 값을 자체 AWS 리전, 계정 ID 및 AWS KMS 키 ID로 바꿉니다.

```
{
    "Sid": "KmsPermissionStatementForBDA",
    "Effect": "Allow",
    "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt",
        "kms:DescribeKey",
        "kms:CreateGrant"
    ],
    "Resource": "arn:aws:kms:region:account-id:key/key-id",
    "Condition": {
        "StringEquals": {
            "aws:ResourceAccount": "account-id",
            "kms:ViaService": "bedrock.region.amazonaws.com"
        }
    }
}
```

BDA별 권한에는 `kms:DescribeKey` BDA가 암호화된 오디오, 비디오 및 이미지 파일을 처리하는 데 필요한 및 `kms:CreateGrant` 작업이 포함됩니다.

# Amazon VPC 및 AWS PrivateLink를 사용하여 데이터 보호
<a name="usingVPC"></a>

데이터에 대한 액세스 권한을 제어하려면 [Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)로 가상 프라이빗 클라우드(VPC)를 사용하는 것이 좋습니다. VPC를 사용하면 데이터를 보호할 수 있으며, [VPC 흐름 로그](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)를 사용하여 AWS 작업 컨테이너 내부 및 외부의 모든 네트워크 트래픽을 모니터링할 수 있습니다.

인터넷을 통해 사용자 데이터에 접근할 수 없도록 VPC를 구성하고 대신 [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html)를 사용하여 VPC 인터페이스 엔드포인트를 만들어 데이터에 대한 프라이빗 연결을 설정하여 데이터를 추가로 보호할 수 있습니다.

다음은 VPC를 사용하여 데이터를 보호할 수 있는 Amazon Bedrock의 몇 가지 기능입니다.
+ 모델 사용자 지정 - [(선택 사항) VPC를 사용하여 모델 사용자 지정 작업 보호](custom-model-job-access-security.md#vpc-model-customization)
+ 배치 추론 - [VPC를 사용하여 배치 추론 작업 보호](batch-vpc.md)
+ Amazon Bedrock 지식 기반 - [인터페이스 엔드포인트(AWS PrivateLink)를 사용하여 Amazon OpenSearch Serverless에 액세스](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.html)

## VPC 설정
<a name="create-vpc"></a>

[Amazon VPC 시작하기](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html) 및 [VPC 생성](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)의 지침에 따라 [기본 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html)를 사용하거나 새 VPC를 만들 수 있습니다.

VPC를 만들 때는 엔드포인트 라우팅 테이블에 기본 DNS 설정을 사용하여 표준 Amazon S3 URL(예: `http://s3-aws-region.amazonaws.com/training-bucket`)을 확인하는 것이 좋습니다.

다음 주제에서는 AWS PrivateLink의 도움을 받아 VPC 엔드포인트를 설정하는 방법과 VPC를 사용하여 S3 파일에 대한 액세스를 보호하는 사용 사례 예제를 보여줍니다.

**Topics**
+ [VPC 설정](#create-vpc)
+ [인터페이스 VPC 엔드포인트(AWS PrivateLink)를 사용하여 VPC와 Amazon Bedrock 간의 프라이빗 연결 생성](vpc-interface-endpoints.md)
+ [(예제) VPC를 사용하여 Amazon S3 데이터에 대한 데이터 액세스 제한](vpc-s3.md)

# 인터페이스 VPC 엔드포인트(AWS PrivateLink)를 사용하여 VPC와 Amazon Bedrock 간의 프라이빗 연결 생성
<a name="vpc-interface-endpoints"></a>

 AWS PrivateLink 를 사용하여 VPC와 Amazon Bedrock 간에 프라이빗 연결을 생성할 수 있습니다. 인터넷 게이트웨이, NAT 디바이스, VPN 연결 또는 Direct Connect 연결을 사용하지 않고 VPC에 있는 것처럼 Amazon Bedrock에 액세스할 수 있습니다. VPC의 인스턴스에서 Amazon Bedrock에 액세스하는 데 퍼블릭 IP 주소가 필요하지 않습니다.

 AWS PrivateLink에서 제공되는 *인터페이스 엔드포인트*를 생성하여 이 프라이빗 연결을 설정합니다. 인터페이스 엔드포인트에 대해 사용 설정하는 각 서브넷에서 엔드포인트 네트워크 인터페이스를 생성합니다. 이는 Amazon Bedrock으로 향하는 트래픽의 진입점 역할을 하는 요청자 관리형 네트워크 인터페이스입니다.

자세한 내용은 *AWS PrivateLink 가이드*의를 [AWS 서비스 통한 액세스를 AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html) 참조하세요.

## Amazon Bedrock VPC 엔드포인트에 대한 고려 사항
<a name="vpc-endpoint-considerations"></a>

Amazon Bedrock에 대한 인터페이스 엔드포인트를 설정하려면 먼저 **AWS PrivateLink 가이드의 [고려 사항](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#considerations-interface-endpoints)을 검토합니다.

Amazon Bedrock은 VPC 엔드포인트를 통한 다음 API 직접 호출을 지원합니다.


****  

| 카테고리 | 엔드포인트 접미사 | 
| --- | --- | 
| [Amazon Bedrock 컨트롤 플레인 API 작업](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock.html) | bedrock | 
| [Amazon Bedrock 런타임 API 작업](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock_Runtime.html) | bedrock-runtime | 
| Amazon Bedrock Mantle API 작업 | bedrock-mantle | 
| [Amazon Bedrock Agents 빌드 타임 API 작업](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html) | bedrock-agent | 
| [Amazon Bedrock Agents Runtime API 작업](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock_Runtime.html) | bedrock-agent-runtime | 

**가용 영역**

Amazon Bedrock 및 Amazon Bedrock Agents 엔드포인트는 모든 가용 영역에서 사용할 수 있습니다.

## Amazon Bedrock용 인터페이스 엔드포인트 생성
<a name="vpc-endpoint-create"></a>

Amazon VPC 콘솔 또는 AWS Command Line Interface ()를 사용하여 Amazon Bedrock에 대한 인터페이스 엔드포인트를 생성할 수 있습니다AWS CLI. 자세한 내용은 *AWS PrivateLink 설명서*의 [인터페이스 엔드포인트 생성](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)을 참조하세요.

다음과 같은 서비스 이름을 사용하여 Amazon Bedrock의 인터페이스 엔드포인트를 생성합니다.
+ `com.amazonaws.region.bedrock`
+ `com.amazonaws.region.bedrock-runtime`
+ `com.amazonaws.region.bedrock-mantle`
+ `com.amazonaws.region.bedrock-agent`
+ `com.amazonaws.region.bedrock-agent-runtime`

엔드포인트를 만든 다음 프라이빗 DNS 호스트 이름을 활성화할 수 있습니다. VPC 엔드포인트를 생성할 때 VPC 콘솔에서 프라이빗 DNS 이름 활성화(Enable Private DNS Name)를 선택하여 이 설정을 활성화합니다.

인터페이스 엔드포인트에 프라이빗 DNS를 사용하도록 설정하는 경우, 리전에 대한 기본 DNS 이름(예: )을 사용하여 Amazon Bedrock에 API 요청을 할 수 있습니다. 다음 예제에서는 기본 리전 DNS 이름의 형식을 보여줍니다.
+ `bedrock.region.amazonaws.com`
+ `bedrock-runtime.region.amazonaws.com`
+ `bedrock-mantle.region.api.aws`
+ `bedrock-agent.region.amazonaws.com`
+ `bedrock-agent-runtime.region.amazonaws.com`

## 엔드포인트의 엔드포인트 정책 생성
<a name="vpc-endpoint-policy"></a>

엔드포인트 정책은 인터페이스 엔드포인트에 연결할 수 있는 IAM 리소스입니다. 기본 엔드포인트 정책을 사용하면 인터페이스 엔드포인트를 통해 Amazon Bedrock에 대한 전체 액세스를 허용합니다. VPC에서 Amazon Bedrock에 허용되는 액세스를 제어하려면 사용자 지정 엔드포인트 정책을 인터페이스 엔드포인트에 연결합니다.

엔드포인트 정책은 다음 정보를 지정합니다.
+ 작업을 수행할 수 있는 위탁자(AWS 계정, IAM 사용자, IAM 역할)
+ 수행할 수 있는 작업
+ 작업을 수행할 수 있는 리소스.

자세한 내용은 *AWS PrivateLink 안내서*의 [엔드포인트 정책을 사용하여 서비스에 대한 액세스 제어](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)를 참조하세요.

**예제: Amazon Bedrock 작업에 대한 VPC 엔드포인트 정책**  
다음은 사용자 지정 엔드포인트 정책의 예입니다. 이 리소스 기반 정책은 인터페이스 엔드포인트에 연결될 때 모든 리소스의 모든 위탁자에 대한 액세스 권한을 나열된 Amazon Bedrock 작업에 부여합니다.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Principal": "*",
         "Effect": "Allow",
         "Action": [
            "bedrock:InvokeModel",
            "bedrock:InvokeModelWithResponseStream"
         ],
         "Resource":"*"
      }
   ]
}
```

------

**예: Amazon Bedrock Mantle 작업에 대한 VPC 엔드포인트 정책**  
다음은 사용자 지정 엔드포인트 정책의 예입니다. 이 리소스 기반 정책을 인터페이스 엔드포인트에 연결하면 모든 리소스의 모든 보안 주체에 대해 나열된 Amazon Bedrock Mantle 작업에 대한 액세스 권한을 부여합니다.

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Principal": "*",
         "Effect": "Allow",
         "Action": [
            "bedrock-mantle:CreateInference"
         ],
         "Resource":"*"
      }
   ]
}
```

# (예제) VPC를 사용하여 Amazon S3 데이터에 대한 데이터 액세스 제한
<a name="vpc-s3"></a>

VPC를 사용하여 Amazon S3 버킷의 데이터에 대한 액세스를 제한할 수 있습니다. 추가 보안을 위해 인터넷 액세스 없이 VPC를 구성하고 AWS PrivateLink를 사용하여 엔드포인트를 만들 수 있습니다. VPC 엔드포인트 또는 S3 버킷에 리소스 기반 정책을 연결하여 액세스를 제한할 수도 있습니다.

**Topics**
+ [Amazon S3 VPC 엔드포인트 생성](#vpc-s3-create)
+ [(선택 사항) IAM 정책을 사용하여 S3 파일에 대한 액세스 제한](#vpc-policy-rbp)

## Amazon S3 VPC 엔드포인트 생성
<a name="vpc-s3-create"></a>

인터넷 액세스 없이 VPC를 구성하는 경우 모델 사용자 지정 작업이 훈련 및 검증 데이터를 저장하고 모델 아티팩트를 저장하는 S3 버킷에 액세스할 수 있도록 [Amazon S3 VPC 엔드포인트](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html)를 만들어야 합니다.

[Create a gateway endpoint for Amazon S3](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#create-gateway-endpoint-s3)의 단계에 따라 S3 VPC 엔드포인트를 만듭니다.

**참고**  
VPC에 대해 기본 DNS 설정을 사용하지 않는 경우 엔드포인트 라우팅 테이블을 구성하여 훈련 작업 내 데이터 위치를 지정하는 데 사용하는 URL이 해결되는지 확인합니다. VPC 엔드포인트 라우팅 테이블에 대한 자세한 내용은 [Routing for Gateway endpoints](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpce-gateway.html#vpc-endpoints-routing)를 참조하세요.

## (선택 사항) IAM 정책을 사용하여 S3 파일에 대한 액세스 제한
<a name="vpc-policy-rbp"></a>

[리소스 기반 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)을 사용하여 S3 파일에 대한 액세스를 더 엄격하게 제어할 수 있습니다. 다음 유형의 리소스 기반 정책을 조합하여 사용할 수 있습니다.
+ **엔드포인트 정책** - VPC 엔드포인트에 엔드포인트 정책을 연결하여 VPC 엔드포인트를 통한 액세스를 제한할 수 있습니다. 기본 엔드포인트 정책은 VPC의 모든 사용자 또는 서비스에 Amazon S3에 대한 모든 액세스를 허용합니다. 엔드포인트를 만드는 동안 또는 만든 후, 필요한 경우 엔드포인트에 리소스 기반 정책을 연결하여 엔드포인트가 특정 버킷에 액세스하도록 허용하거나 특정 IAM 역할만 엔드포인트에 액세스하도록 허용하는 등의 제한을 추가할 수 있습니다. 예제는 [Edit the VPC endpoint policy](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#edit-vpc-endpoint-policy-s3)를 참조하세요.

  다음은 VPC 엔드포인트에 연결하여 지정한 버킷에만 액세스하도록 허용할 수 있는 예제 정책입니다.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "RestrictAccessToTrainingBucket",
              "Effect": "Allow",
              "Principal": "*",
              "Action": [
                  "s3:GetObject",
                  "s3:ListBucket"
              ],
              "Resource": [
                  "arn:aws:s3:::bucket",
                  "arn:aws:s3:::bucket/*"
              ]
          }
      ]
  }
  ```

------
+ **버킷 정책** - 버킷 정책을 S3 버킷에 연결하여 이에 대한 액세스를 제한할 수 있습니다. 버킷 정책을 만들려면 [버킷 정책 사용](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)의 단계를 따르세요. VPC에서 들어오는 트래픽에 대한 액세스를 제한하려면 조건 키를 사용하여 VPC 자체, VPC 엔드포인트 또는 VPC의 IP 주소를 지정할 수 있습니다. [aws:sourceVpc](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcevpc), [aws:sourceVpce](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcevpce) 또는 [aws:VpcSourceIp](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-vpcsourceip) 조건 키를 사용할 수 있습니다.

  다음은 VPC에서 들어오는 트래픽을 제외한 모든 트래픽을 버킷으로 거부하기 위해 S3 버킷에 연결할 수 있는 정책의 예입니다.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "RestrictAccessToOutputBucket",
              "Effect": "Deny",
              "Principal": "*",
              "Action": [
                  "s3:GetObject",
                  "s3:PutObject",
                  "s3:ListBucket"
              ],
              "Resource": [
                  "arn:aws:s3:::bucket",
                  "arn:aws:s3:::bucket/*"
              ],
              "Condition": {
                  "StringNotEquals": {
                      "aws:sourceVpc": "vpc-11223344556677889"
                  }
              }
          }
      ]
  }
  ```

------

  더 많은 예제는 [Control access using bucket policies](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#bucket-policies-s3)를 참조하세요.

# Amazon Bedrock용 Identity and Access Management
<a name="security-iam"></a>

AWS Identity and Access Management (IAM)는 관리자가 AWS 리소스에 대한 액세스를 안전하게 제어하는 데 도움이 AWS 서비스 되는 입니다. IAM 관리자는 어떤 사용자가 Amazon Bedrock 리소스를 사용할 수 있도록 *인증*(로그인)되고 *권한이 부여*(권한 있음)될 수 있는지 제어합니다. IAM은 추가 비용 없이 사용할 수 AWS 서비스 있는 입니다.

**Topics**
+ [대상](#security_iam_audience)
+ [ID를 통한 인증](#security_iam_authentication)
+ [정책을 사용하여 액세스 관리](#security_iam_access-manage)
+ [Amazon Bedrock에서 IAM을 사용하는 방법](security_iam_service-with-iam.md)
+ [Amazon Bedrock의 자격 증명 기반 정책 예](security_iam_id-based-policy-examples.md)
+ [프로젝트에서 IAM 정책 관리](security-iam-projects.md)
+ [AWS Amazon Bedrock에 대한 관리형 정책](security-iam-awsmanpol.md)
+ [서비스 역할](security-iam-sr.md)
+ [Amazon S3 버킷에 액세스 구성](s3-bucket-access.md)
+ [Amazon Bedrock 자격 증명 및 액세스 문제 해결](security_iam_troubleshoot.md)

## 대상
<a name="security_iam_audience"></a>

 AWS Identity and Access Management (IAM)를 사용하는 방법은 역할에 따라 다릅니다.
+ **서비스 사용자** - 기능에 액세스할 수 없는 경우 관리자에게 권한 요청(참조[Amazon Bedrock 자격 증명 및 액세스 문제 해결](security_iam_troubleshoot.md))
+ **서비스 관리자** - 사용자 액세스 결정 및 권한 요청 제출([Amazon Bedrock에서 IAM을 사용하는 방법](security_iam_service-with-iam.md) 참조)
+ **IAM 관리자** - 액세스를 관리하기 위한 정책 작성([Amazon Bedrock의 자격 증명 기반 정책 예](security_iam_id-based-policy-examples.md) 참조)

## ID를 통한 인증
<a name="security_iam_authentication"></a>

인증은 자격 증명 자격 증명을 AWS 사용하여에 로그인하는 방법입니다. AWS 계정 루트 사용자, IAM 사용자 또는 IAM 역할을 수임하여 인증되어야 합니다.

 AWS IAM Identity Center (IAM Identity Center), Single Sign-On 인증 또는 Google/Facebook 자격 증명과 같은 자격 증명 소스의 자격 증명을 사용하여 페더레이션 자격 증명으로 로그인할 수 있습니다. 로그인하는 방법에 대한 자세한 내용은 *AWS Sign-In 사용 설명서*의 [AWS 계정에 로그인하는 방법](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) 섹션을 참조하세요.

프로그래밍 방식 액세스를 위해는 요청에 암호화 방식으로 서명할 수 있는 SDK 및 CLI를 AWS 제공합니다. 자세한 내용은 *IAM 사용 설명서*의 [API 요청용AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) 섹션을 참조하세요.

### AWS 계정 루트 사용자
<a name="security_iam_authentication-rootuser"></a>

 를 생성할 때 모든 AWS 서비스 및 리소스에 대한 완전한 액세스 권한이 있는 AWS 계정 *theroot 사용자*라는 하나의 로그인 자격 증명으로 AWS 계정시작합니다. 일상적인 태스크에 루트 사용자를 사용하지 않을 것을 강력히 권장합니다. 루트 사용자 자격 증명이 필요한 작업은 *IAM 사용 설명서*의 [루트 사용자 자격 증명이 필요한 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) 섹션을 참조하세요.

### 페더레이션 ID
<a name="security_iam_authentication-federated"></a>

가장 좋은 방법은 인간 사용자에게 자격 증명 공급자와의 페더레이션을 사용하여 임시 자격 증명을 AWS 서비스 사용하여에 액세스하도록 요구하는 것입니다.

*페더레이션 자격 증명*은 엔터프라이즈 디렉터리, 웹 자격 증명 공급자 또는 자격 증명 소스의 자격 증명을 AWS 서비스 사용하여 Directory Service 에 액세스하는 사용자입니다. 페더레이션 ID는 임시 자격 증명을 제공하는 역할을 수임합니다.

중앙 집중식 액세스 관리를 위해 AWS IAM Identity Center를 추천합니다. 자세한 정보는 *AWS IAM Identity Center 사용 설명서*의 [What is IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)를 참조하세요.

### IAM 사용자 및 그룹
<a name="security_iam_authentication-iamuser"></a>

*[IAM 사용자](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*는 단일 개인 또는 애플리케이션에 대한 특정 권한을 가진 ID입니다. 장기 자격 증명이 있는 IAM 사용자 대신 임시 자격 증명을 사용하는 것이 좋습니다. 자세한 내용은 *IAM 사용 설명서*의 자격 [증명 공급자와의 페더레이션을 사용하여 임시 자격 증명을 AWS 사용하여에 액세스하도록 인간 사용자에게 요구](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)하기를 참조하세요.

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)은 IAM 사용자 모음을 지정하고 대규모 사용자 집합에 대한 관리 권한을 더 쉽게 만듭니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM 사용자 사용 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) 섹션을 참조하세요.

### IAM 역할
<a name="security_iam_authentication-iamrole"></a>

*[IAM 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*은 임시 자격 증명을 제공하는 특정 권한이 있는 자격 증명입니다. [사용자에서 IAM 역할(콘솔)로 전환하거나 또는 API 작업을 호출하여 역할을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) 수임할 수 있습니다. AWS CLI AWS 자세한 내용은 *IAM 사용 설명서*의 [역할 수임 방법](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)을 참조하세요.

IAM 역할은 페더레이션 사용자 액세스, 임시 IAM 사용자 권한, 교차 계정 액세스, 교차 서비스 액세스 및 Amazon EC2에서 실행되는 애플리케이션에 유용합니다. 자세한 내용은 *IAM 사용 설명서*의 [교차 계정 리소스 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)를 참조하세요.

## 정책을 사용하여 액세스 관리
<a name="security_iam_access-manage"></a>

정책을 AWS 생성하고 자격 증명 또는 리소스에 연결하여 AWS 에서 액세스를 제어합니다. 정책은 자격 증명 또는 리소스와 연결될 때 권한을 정의합니다.는 보안 주체가 요청할 때 이러한 정책을 AWS 평가합니다. 대부분의 정책은에 JSON 문서 AWS 로 저장됩니다. JSON 정책 문서에 대한 자세한 내용은 *IAM 사용 설명서*의 [JSON 정책 개요](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) 섹션을 참조하세요.

정책을 사용하여 관리자는 어떤 **보안 주체**가 어떤 **리소스**에 대해 어떤 **조건**에서 **작업**을 수행할 수 있는지 정의하여 누가 무엇을 액세스할 수 있는지 지정합니다.

기본적으로 사용자 및 역할에는 어떠한 권한도 없습니다. IAM 관리자는 IAM 정책을 생성하고 사용자가 수임할 수 있는 역할에 추가합니다. IAM 정책은 작업을 수행하기 위해 사용하는 방법과 관계없이 작업에 대한 권한을 정의합니다.

### ID 기반 정책
<a name="security_iam_access-manage-id-based-policies"></a>

ID 기반 정책은 ID(사용자, 사용자 그룹 또는 역할)에 연결하는 JSON 권한 정책 문서입니다. 이러한 정책은 자격 증명이 수행할 수 있는 작업, 대상 리소스 및 이에 관한 조건을 제어합니다. ID 기반 정책을 생성하는 방법을 알아보려면 *IAM 사용 설명서*에서 [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)를 참조하세요.

ID 기반 정책은 *인라인 정책*(단일 ID에 직접 포함) 또는 *관리형 정책*(여러 ID에 연결된 독립 실행형 정책)일 수 있습니다. 관리형 정책 또는 인라인 정책을 선택하는 방법을 알아보려면 *IAM 사용 설명서*의 [관리형 정책 및 인라인 정책 중에서 선택](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) 섹션을 참조하세요.

### 리소스 기반 정책
<a name="security_iam_access-manage-resource-based-policies"></a>

리소스 기반 정책은 리소스에 연결하는 JSON 정책 설명서입니다. 예를 들어 IAM *역할 신뢰 정책* 및 Amazon S3 *버킷 정책*이 있습니다. 리소스 기반 정책을 지원하는 서비스에서 서비스 관리자는 이러한 정책을 사용하여 특정 리소스에 대한 액세스를 통제할 수 있습니다. 리소스 기반 정책에서 [보안 주체를 지정](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)해야 합니다.

리소스 기반 정책은 해당 서비스에 있는 인라인 정책입니다. 리소스 기반 정책에서는 IAM의 AWS 관리형 정책을 사용할 수 없습니다.

### 기타 정책 유형
<a name="security_iam_access-manage-other-policies"></a>

AWS 는 보다 일반적인 정책 유형에서 부여한 최대 권한을 설정할 수 있는 추가 정책 유형을 지원합니다.
+ **권한 경계** - ID 기반 정책에서 IAM 엔터티에 부여할 수 있는 최대 권한을 설정합니다. 자세한 정보는 *IAM 사용 설명서*의 [IAM 엔터티의 권한 범위](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)를 참조하세요.
+ **서비스 제어 정책(SCP)** - AWS Organizations내 조직 또는 조직 단위에 대한 최대 권한을 지정합니다. 자세한 내용은AWS Organizations 사용 설명서의 [서비스 제어 정책](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)을 참조하세요.**
+ **리소스 제어 정책(RCP)** – 계정의 리소스에 사용할 수 있는 최대 권한을 설정합니다. 자세한 내용은 *AWS Organizations 사용 설명서*의 [리소스 제어 정책(RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)을 참조하세요.
+ **세션 정책** – 역할 또는 페더레이션 사용자에 대해 임시 세션을 프로그래밍 방식으로 생성할 때 파라미터로 전달하는 고급 정책입니다. 자세한 내용은 *IAM 사용 설명서*의 [세션 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)을 참조하세요.

### 여러 정책 유형
<a name="security_iam_access-manage-multiple-policies"></a>

여러 정책 유형이 요청에 적용되는 경우, 결과 권한은 이해하기가 더 복잡합니다. 에서 여러 정책 유형이 관련될 때 요청을 허용할지 여부를 AWS 결정하는 방법을 알아보려면 *IAM 사용 설명서*의 [정책 평가 로직](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)을 참조하세요.

# Amazon Bedrock에서 IAM을 사용하는 방법
<a name="security_iam_service-with-iam"></a>

IAM을 사용하여 Amazon Bedrock에 대한 액세스를 관리하기 전에 Amazon Bedrock에서 사용할 수 있는 IAM 기능에 대해 알아봅니다.






**Amazon Bedrock에서 사용할 수 있는 IAM 기능**  

| IAM 특성 | Amazon Bedrock 지원 | 
| --- | --- | 
|  [자격 증명 기반 정책](#security_iam_service-with-iam-id-based-policies)  |   예  | 
|  [리소스 기반 정책](#security_iam_service-with-iam-resource-based-policies)  |   아니요   | 
|  [정책 작업](#security_iam_service-with-iam-id-based-policies-actions)  |   예  | 
|  [정책 리소스](#security_iam_service-with-iam-id-based-policies-resources)  |   예  | 
|  [정책 조건 키](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   예  | 
|  [ACL](#security_iam_service-with-iam-acls)  |   아니요   | 
|  [ABAC(정책의 태그)](#security_iam_service-with-iam-tags)  |   예  | 
|  [임시 보안 인증](#security_iam_service-with-iam-roles-tempcreds)  |   예  | 
|  [엔터티 권한](#security_iam_service-with-iam-principal-permissions)  |   예  | 
|  [서비스 역할](#security_iam_service-with-iam-roles-service)  |   예  | 
|  [서비스 연결 역할](#security_iam_service-with-iam-roles-service-linked)  |   아니요   | 

Amazon Bedrock 및 기타 AWS 서비스가 대부분의 IAM 기능과 작동하는 방식을 개괄적으로 알아보려면 *IAM 사용 설명서*의 [AWS IAM으로 작업하는 서비스를](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) 참조하세요.

## Amazon Bedrock의 자격 증명 기반 정책
<a name="security_iam_service-with-iam-id-based-policies"></a>

**ID 기반 정책 지원:** 예

ID 기반 정책은 IAM 사용자, 사용자 그룹 또는 역할과 같은 ID에 연결할 수 있는 JSON 권한 정책 문서입니다. 이러한 정책은 사용자 및 역할이 어떤 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 제어합니다. 자격 증명 기반 정책을 생성하는 방법을 알아보려면 *IAM 사용 설명서*에서 [고객 관리형 정책으로 사용자 지정 IAM 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)를 참조하세요.

IAM ID 기반 정책을 사용하면 허용되거나 거부되는 작업과 리소스뿐 아니라 작업이 허용되거나 거부되는 조건을 지정할 수 있습니다. JSON 정책에서 사용할 수 있는 모든 요소에 대해 알아보려면 *IAM 사용 설명서*의 [IAM JSON 정책 요소 참조](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)를 참조하세요.

### Amazon Bedrock의 자격 증명 기반 정책 예
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Amazon Bedrock자격 증명 기반 정책 예제를 보려면 [Amazon Bedrock의 자격 증명 기반 정책 예](security_iam_id-based-policy-examples.md) 섹션을 참조하세요.

## Amazon Bedrock 내의 리소스 기반 정책
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**리소스 기반 정책 지원:** 아니요 

리소스 기반 정책은 리소스에 연결하는 JSON 정책 설명서입니다. 리소스 기반 정책의 예제는 IAM *역할 신뢰 정책*과 Amazon S3 *버킷 정책*입니다. 리소스 기반 정책을 지원하는 서비스에서 서비스 관리자는 이러한 정책을 사용하여 특정 리소스에 대한 액세스를 통제할 수 있습니다. 정책이 연결된 리소스의 경우 정책은 지정된 보안 주체가 해당 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 정의합니다. 리소스 기반 정책에서 [보안 주체를 지정](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)해야 합니다. 보안 주체에는 계정, 사용자, 역할, 페더레이션 사용자 또는가 포함될 수 있습니다 AWS 서비스.

교차 계정 액세스를 활성화하려는 경우, 전체 계정이나 다른 계정의 IAM 개체를 리소스 기반 정책의 보안 주체로 지정할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM에서 교차 계정 리소스 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)를 참조하세요.

## Amazon Bedrock의 정책 작업
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**정책 작업 지원:** 예

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지 지정할 수 있습니다. 즉, 어떤 **보안 주체**가 어떤 **리소스**와 어떤 **조건**에서 **작업**을 수행할 수 있는지를 지정할 수 있습니다.

JSON 정책의 `Action`요소는 정책에서 액세스를 허용하거나 거부하는 데 사용할 수 있는 작업을 설명합니다. 연결된 작업을 수행할 수 있는 권한을 부여하기 위한 정책에 작업을 포함하세요.



Amazon Bedrock 작업 목록을 보려면 *서비스 권한 부여 참조*의 [Amazon Bedrock에서 정의한 작업](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-actions-as-permissions)을 참조하세요.

Amazon Bedrock의 정책 작업은 작업 앞에 다음 접두사를 사용합니다.

```
bedrock
```

단일 문에서 여러 작업을 지정하려면 쉼표로 구분합니다.

```
"Action": [
   "bedrock:action1",
   "bedrock:action2"
]
```





Amazon Bedrock자격 증명 기반 정책 예제를 보려면 [Amazon Bedrock의 자격 증명 기반 정책 예](security_iam_id-based-policy-examples.md) 섹션을 참조하세요.

## Amazon Bedrock의 정책 리소스
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**정책 리소스 지원:** 예

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지 지정할 수 있습니다. 즉, 어떤 **보안 주체**가 어떤 **리소스**와 어떤 **조건**에서 **작업**을 수행할 수 있는지를 지정할 수 있습니다.

`Resource` JSON 정책 요소는 작업이 적용되는 하나 이상의 객체를 지정합니다. 모범 사례에 따라 [Amazon 리소스 이름(ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)을 사용하여 리소스를 지정합니다. 리소스 수준 권한을 지원하지 않는 작업의 경우, 와일드카드(\$1)를 사용하여 해당 문이 모든 리소스에 적용됨을 나타냅니다.

```
"Resource": "*"
```

Amazon Bedrock 리소스 유형 및 해당 ARN 목록을 보려면 *Service Authorization Reference*에서 [Resources defined by Amazon Bedrock](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-resources-for-iam-policies)을 참조하세요. 각 리소스의 ARN을 지정할 수 있는 작업을 알아보려면 [Actions defined by Amazon Bedrock](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-actions-as-permissions)을 참조하세요.





일부 Amazon Bedrock API 작업에서는 여러 리소스가 지원됩니다. 예를 들어, [AssociateAgentKnowledgeBase](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_AssociateAgentKnowledgeBase.html)는 *AGENT12345* 및 *KB12345678*에 액세스하므로 위탁자는 두 리소스에 모두 액세스할 수 있는 권한을 반드시 가져야 합니다. 단일 문에서 여러 리소스를 지정하려면 ARN을 쉼표로 구분합니다.

```
"Resource": [
   "arn:aws:bedrock:aws-region:111122223333:agent/AGENT12345",
   "arn:aws:bedrock:aws-region:111122223333:knowledge-base/KB12345678"
]
```

Amazon Bedrock자격 증명 기반 정책 예제를 보려면 [Amazon Bedrock의 자격 증명 기반 정책 예](security_iam_id-based-policy-examples.md) 섹션을 참조하세요.

## Amazon Bedrock의 정책 조건 키
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**서비스별 정책 조건 키 지원:** 예

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지 지정할 수 있습니다. 즉, 어떤 **보안 주체**가 어떤 **리소스**와 어떤 **조건**에서 **작업**을 수행할 수 있는지를 지정할 수 있습니다.

`Condition` 요소는 정의된 기준에 따라 문이 실행되는 시기를 지정합니다. 같음(equals) 또는 미만(less than)과 같은 [조건 연산자](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)를 사용하여 정책의 조건을 요청의 값과 일치시키는 조건식을 생성할 수 있습니다. 모든 AWS 전역 조건 키를 보려면 *IAM 사용 설명서*의 [AWS 전역 조건 컨텍스트 키를](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) 참조하세요.

Amazon Bedrock 조건 키 목록을 보려면 *Service Authorization Reference*의 [Condition Keys for Amazon Bedrock](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)을 참조하세요. 조건 키를 사용할 수 있는 작업과 리소스를 알아보려면 [Actions defined by Amazon Bedrock](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-actions-as-permissions)을 참조하세요.

모든 Amazon Bedrock 작업은 Amazon Bedrock 모델을 리소스로 사용하는 조건 키를 지원합니다.

Amazon Bedrock자격 증명 기반 정책 예제를 보려면 [Amazon Bedrock의 자격 증명 기반 정책 예](security_iam_id-based-policy-examples.md) 섹션을 참조하세요.

## Amazon Bedrock의 ACL
<a name="security_iam_service-with-iam-acls"></a>

**ACL 지원:** 아니요 

액세스 제어 목록(ACL)은 어떤 보안 주체(계정 멤버, 사용자 또는 역할)가 리소스에 액세스할 수 있는 권한을 가지고 있는지를 제어합니다. ACL은 JSON 정책 문서 형식을 사용하지 않지만 리소스 기반 정책과 유사합니다.

## Amazon Bedrock을 사용한 ABAC
<a name="security_iam_service-with-iam-tags"></a>

**ABAC 지원(정책의 태그):** 예

속성 기반 액세스 제어(ABAC)는 태그라고 불리는 속성을 기반으로 권한을 정의하는 권한 부여 전략입니다. IAM 엔터티 및 AWS 리소스에 태그를 연결한 다음 보안 주체의 태그가 리소스의 태그와 일치할 때 작업을 허용하는 ABAC 정책을 설계할 수 있습니다.

태그에 근거하여 액세스를 제어하려면 `aws:ResourceTag/key-name`, `aws:RequestTag/key-name`또는 `aws:TagKeys`조건 키를 사용하여 정책의 [조건 요소](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)에 태그 정보를 제공합니다.

서비스가 모든 리소스 유형에 대해 세 가지 조건 키를 모두 지원하는 경우, 값은 서비스에 대해 **예**입니다. 서비스가 일부 리소스 유형에 대해서만 세 가지 조건 키를 모두 지원하는 경우, 값은 **부분적**입니다.

ABAC에 대한 자세한 내용은 *IAM 사용 설명서*의 [ABAC 권한 부여를 통한 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)를 참조하세요. ABAC 설정 단계가 포함된 자습서를 보려면 *IAM 사용 설명서*의 [속성 기반 액세스 제어(ABAC) 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)을 참조하세요.

## Amazon Bedrock에서 임시 보안 인증 사용
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**임시 자격 증명 지원:** 예

임시 자격 증명은 AWS 리소스에 대한 단기 액세스를 제공하며 페더레이션 또는 전환 역할을 사용할 때 자동으로 생성됩니다. 장기 액세스 키를 사용하는 대신 임시 자격 증명을 동적으로 생성하는 것이 AWS 좋습니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM의 임시 보안 자격 증명](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) 및 [IAM으로 작업하는AWS 서비스](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) 섹션을 참조하세요.

## Amazon Bedrock에 대한 교차 서비스 보안 주체 권한
<a name="security_iam_service-with-iam-principal-permissions"></a>

**전달 액세스 세션(FAS) 지원:** 예

 전달 액세스 세션(FAS)은를 호출하는 보안 주체의 권한을 다운스트림 서비스에 AWS 서비스 대한 요청과 AWS 서비스함께 사용합니다. FAS 요청 시 정책 세부 정보는 [전달 액세스 세션](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)을 참조하세요.

## Amazon Bedrock의 서비스 역할
<a name="security_iam_service-with-iam-roles-service"></a>

**서비스 역할 지원:** 예

 서비스 역할은 서비스가 사용자를 대신하여 작업을 수행하는 것으로 가정하는 [IAM 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)입니다. IAM 관리자는 IAM 내에서 서비스 역할을 생성, 수정 및 삭제할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*의 [AWS 서비스 AWS에 권한을 위임할 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)을 참조하세요.

**주의**  
서비스 역할에 대한 권한을 변경하면 Amazon Bedrock 기능이 중단될 수 있습니다. Amazon Bedrock에서 관련 지침을 제공하는 경우에만 서비스 역할을 편집합니다.

## Amazon Bedrock의 서비스 연결 역할
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**서비스 연결 역할 지원:** 아니요 

 서비스 연결 역할은에 연결된 서비스 역할의 한 유형입니다 AWS 서비스. 서비스는 사용자를 대신하여 작업을 수행하기 위해 역할을 수임할 수 있습니다. 서비스 연결 역할은에 표시 AWS 계정 되며 서비스가 소유합니다. IAM 관리자는 서비스 연결 역할의 권한을 볼 수 있지만 편집은 할 수 없습니다.

# Amazon Bedrock의 자격 증명 기반 정책 예
<a name="security_iam_id-based-policy-examples"></a>

기본적으로 사용자 및 역할은 Amazon Bedrock 리소스를 생성하거나 수정할 수 있는 권한이 없습니다. 사용자에게 사용자가 필요한 리소스에서 작업을 수행할 권한을 부여하려면 IAM 관리자가 IAM 정책을 생성하면 됩니다.

이러한 예제 JSON 정책 문서를 사용하여 IAM ID 기반 정책을 생성하는 방법을 알아보려면 *IAM 사용 설명서*의 [IAM 정책 생성(콘솔)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)을 참조하세요.

각 리소스 유형에 대한 ARN 형식을 포함하여 Amazon Bedrock에서 정의한 작업 및 리소스 유형에 대한 자세한 내용은 *서비스 권한 부여 참조*에서 [Amazon Bedrock에 대한 작업, 리소스, 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html)를 참조하세요.

**Topics**
+ [정책 모범 사례](#security_iam_service-with-iam-policy-best-practices)
+ [Amazon Bedrock 콘솔 사용](#security_iam_id-based-policy-examples-console)
+ [사용자가 자신의 고유한 권한을 볼 수 있도록 허용](#security_iam_id-based-policy-examples-view-own-permissions)
+ [파운데이션 모델 추론에 대한 액세스 거부](#security_iam_id-based-policy-examples-deny-inference)
+ [사용자가 프로비저닝된 모델을 간접 호출하도록 허용](#security_iam_id-based-policy-examples-perform-actions-pt)
+ [Amazon Bedrock Agents의 ID 기반 정책 예제](security_iam_id-based-policy-examples-agent.md)

## 정책 모범 사례
<a name="security_iam_service-with-iam-policy-best-practices"></a>

ID 기반 정책에 따라 계정에서 사용자가 Amazon Bedrock 리소스를 생성, 액세스 또는 삭제할 수 있는지 여부가 결정됩니다. 이 작업으로 인해 AWS 계정에 비용이 발생할 수 있습니다. ID 기반 정책을 생성하거나 편집할 때는 다음 지침과 권장 사항을 따르세요.
+ ** AWS 관리형 정책을 시작하고 최소 권한으로 전환 -** 사용자 및 워크로드에 권한 부여를 시작하려면 많은 일반적인 사용 사례에 대한 권한을 부여하는 *AWS 관리형 정책을* 사용합니다. 에서 사용할 수 있습니다 AWS 계정. 사용 사례에 맞는 AWS 고객 관리형 정책을 정의하여 권한을 추가로 줄이는 것이 좋습니다. 자세한 내용은 *IAM 사용 설명서*의 [AWS 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) 또는 [AWS 직무에 대한 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)을 참조하세요.
+ **최소 권한 적용** – IAM 정책을 사용하여 권한을 설정하는 경우, 작업을 수행하는 데 필요한 권한만 부여합니다. 이렇게 하려면 *최소 권한*으로 알려진 특정 조건에서 특정 리소스에 대해 수행할 수 있는 작업을 정의합니다. IAM을 사용하여 권한을 적용하는 방법에 대한 자세한 정보는 *IAM 사용 설명서*에 있는 [IAM의 정책 및 권한](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)을 참조하세요.
+ **IAM 정책의 조건을 사용하여 액세스 추가 제한** – 정책에 조건을 추가하여 작업 및 리소스에 대한 액세스를 제한할 수 있습니다. 예를 들어, SSL을 사용하여 모든 요청을 전송해야 한다고 지정하는 정책 조건을 작성할 수 있습니다. AWS 서비스와 같은 특정를 통해 사용되는 경우 조건을 사용하여 서비스 작업에 대한 액세스 권한을 부여할 수도 있습니다 CloudFormation. 자세한 내용은 *IAM 사용 설명서*의 [IAM JSON 정책 요소: 조건](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)을 참조하세요.
+ **IAM Access Analyzer를 통해 IAM 정책을 확인하여 안전하고 기능적인 권한 보장** - IAM Access Analyzer에서는 IAM 정책 언어(JSON)와 모범 사례가 정책에서 준수되도록 새로운 및 기존 정책을 확인합니다. IAM Access Analyzer는 100개 이상의 정책 확인 항목과 실행 가능한 추천을 제공하여 안전하고 기능적인 정책을 작성하도록 돕습니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM Access Analyzer에서 정책 검증](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)을 참조하세요.
+ **다중 인증(MFA) 필요 -**에서 IAM 사용자 또는 루트 사용자가 필요한 시나리오가 있는 경우 추가 보안을 위해 MFA를 AWS 계정켭니다. API 작업을 직접적으로 호출할 때 MFA가 필요하면 정책에 MFA 조건을 추가합니다. 자세한 내용은 *IAM 사용 설명서*의 [MFA를 통한 보안 API 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)를 참조하세요.

IAM의 모범 사례에 대한 자세한 내용은 *IAM 사용 설명서*의 [IAM의 보안 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)를 참조하세요.

## Amazon Bedrock 콘솔 사용
<a name="security_iam_id-based-policy-examples-console"></a>

Amazon Bedrock 콘솔에 액세스하려면 최소한의 권한 집합이 있어야 합니다. 이러한 권한은에서 Amazon Bedrock 리소스에 대한 세부 정보를 나열하고 볼 수 있도록 허용해야 합니다 AWS 계정. 최소 필수 권한보다 더 제한적인 ID 기반 정책을 생성하는 경우, 콘솔이 해당 정책에 연결된 엔티티(사용자 또는 역할)에 대해 의도대로 작동하지 않습니다.

 AWS CLI 또는 AWS API만 호출하는 사용자에게는 최소 콘솔 권한을 허용할 필요가 없습니다. 대신, 수행하려는 API 작업과 일치하는 작업에만 액세스할 수 있도록 합니다.

사용자와 역할이 여전히 Amazon Bedrock 콘솔을 사용할 수 있도록 하려면 Amazon Bedrock [AmazonBedrockFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockFullAccess) 또는 [AmazonBedrockReadOnly](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockReadOnly) AWS 관리형 정책도 엔터티에 연결합니다. 자세한 내용은 *IAM 사용 설명서*의 [사용자에게 권한 추가](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)를 참조하세요.

## 사용자가 자신의 고유한 권한을 볼 수 있도록 허용
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

이 예제는 IAM 사용자가 자신의 사용자 ID에 연결된 인라인 및 관리형 정책을 볼 수 있도록 허용하는 정책을 생성하는 방법을 보여줍니다. 이 정책에는 콘솔에서 또는 AWS CLI 또는 AWS API를 사용하여 프로그래밍 방식으로이 작업을 완료할 수 있는 권한이 포함됩니다.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## 파운데이션 모델 추론에 대한 액세스 거부
<a name="security_iam_id-based-policy-examples-deny-inference"></a>

사용자가 파운데이션 모델을 간접 호출하지 못하도록 하려면 모델을 직접 호출하는 API 작업에 대한 액세스를 거부해야 합니다. 다음 예제에서는 특정 모델에서 실행 중인 추론에 대한 액세스를 거부하는 ID 기반 정책을 보여줍니다. 이 정책은 조직 전체에서 모델 액세스를 제어하는 서비스 제어 정책(SCP)으로 사용할 수 있습니다.

------
#### [ JSON ]

****  

```
{
          "Version":"2012-10-17",		 	 	 
          "Statement": {
              "Sid": "DenyInference",
              "Effect": "Deny",
              "Action": [
                  "bedrock:InvokeModel",
                  "bedrock:InvokeModelWithResponseStream",
                  "bedrock:CreateModelInvocationJob"
               ],
              "Resource": "arn:aws:bedrock:*::foundation-model/model-id"
          }
      }
```

------

모든 파운데이션 모델에 대한 추론 액세스를 거부하려면 모델 ID에 `*`를 사용합니다. `Converse` 및 `StartAsyncInvoke`와 같은 다른 작업은 `InvokeModel`이 거부되면 자동으로 차단됩니다. 모델 ID 목록을 보려면 [Amazon Bedrock에서 지원되는 파운데이션 모델](models-supported.md) 섹션을 참조하세요.

## 사용자가 프로비저닝된 모델을 간접 호출하도록 허용
<a name="security_iam_id-based-policy-examples-perform-actions-pt"></a>

다음은 IAM 역할에 연결하여 모델 추론에서 프로비저닝된 모델을 사용할 수 있도록 허용하는 샘플 정책입니다. 예를 들어 프로비저닝된 모델을 사용할 수 있는 권한만 부여하려는 역할에 이 정책을 연결할 수 있습니다. 역할은 프로비저닝된 처리량에 대한 정보를 관리하거나 볼 수 없습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ProvisionedThroughputModelInvocation",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/my-provisioned-model"
        }
    ]
}
```

------

# Amazon Bedrock Agents의 ID 기반 정책 예제
<a name="security_iam_id-based-policy-examples-agent"></a>

주제를 선택하여 [AI 에이전트를 사용하여 애플리케이션에서 태스크 자동화](agents.md)에서 작업에 대한 권한을 프로비저닝하기 위해 IAM 역할에 연결할 수 있는 IAM 정책 예제를 확인하세요.

**Topics**
+ [Amazon Bedrock Agents에 필요한 권한](#iam-agents-ex-all)
+ [사용자가 에이전트에 대한 정보를 확인하고 간접 호출할 수 있도록 허용](#security_iam_id-based-policy-examples-perform-actions-agent)
+ [서비스 계층에 대한 액세스 제어](#security_iam_id-based-policy-examples-service-tiers)

## Amazon Bedrock Agents에 필요한 권한
<a name="iam-agents-ex-all"></a>

IAM ID로 Amazon Bedrock Agents를 사용하려면 필요한 권한을 구성해야 합니다. [AmazonBedrockFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockFullAccess) 정책을 연결하여 역할에 적절한 권한을 부여할 수 있습니다.

Amazon Bedrock Agents에서 사용되는 작업으로만 권한을 제한하려면 다음 ID 기반 정책을 IAM 역할에 연결합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AgentPermissions",
            "Effect": "Allow",
            "Action": [  
                "bedrock:ListFoundationModels",
                "bedrock:GetFoundationModel",
                "bedrock:TagResource", 
                "bedrock:UntagResource", 
                "bedrock:ListTagsForResource", 
                "bedrock:CreateAgent", 
                "bedrock:UpdateAgent", 
                "bedrock:GetAgent", 
                "bedrock:ListAgents", 
                "bedrock:DeleteAgent",
                "bedrock:CreateAgentActionGroup", 
                "bedrock:UpdateAgentActionGroup", 
                "bedrock:GetAgentActionGroup", 
                "bedrock:ListAgentActionGroups", 
                "bedrock:DeleteAgentActionGroup",
                "bedrock:GetAgentVersion",
                "bedrock:ListAgentVersions", 
                "bedrock:DeleteAgentVersion",
                "bedrock:CreateAgentAlias", 
                "bedrock:UpdateAgentAlias",               
                "bedrock:GetAgentAlias",
                "bedrock:ListAgentAliases",
                "bedrock:DeleteAgentAlias",
                "bedrock:AssociateAgentKnowledgeBase",
                "bedrock:DisassociateAgentKnowledgeBase",
                "bedrock:ListAgentKnowledgeBases",
                "bedrock:GetKnowledgeBase",
                "bedrock:ListKnowledgeBases",
                "bedrock:PrepareAgent",
                "bedrock:InvokeAgent",
                "bedrock:AssociateAgentCollaborator",
                "bedrock:DisassociateAgentCollaborator",
                "bedrock:GetAgentCollaborator",
                "bedrock:ListAgentCollaborators",
                "bedrock:UpdateAgentCollaborator"
            ],
            "Resource": "*"
        }
    ]   
}
```

------

[작업](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions)을 생략하거나 [리소스](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources) 및 [조건 키](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-conditionkeys)를 지정하여 권한을 추가로 제한할 수 있습니다. IAM ID는 특정 리소스에서 API 작업을 직접 호출할 수 있습니다. 예를 들어 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateAgent.html) 작업은 에이전트 리소스에서만 사용할 수 있고, [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) 작업은 별칭 리소스에서만 사용할 수 있습니다. 특정 리소스 유형(예: [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgent.html))에서 사용되지 않는 API 작업의 경우 \$1를 `Resource`로 지정합니다. 정책에 지정된 리소스에서 사용할 수 없는 API 작업을 정책에 지정하는 경우 Amazon Bedrock은 오류를 반환합니다.

## 사용자가 에이전트에 대한 정보를 확인하고 간접 호출할 수 있도록 허용
<a name="security_iam_id-based-policy-examples-perform-actions-agent"></a>

다음은 IAM 역할에 연결하여 ID가 *​​AGENT12345*인 에이전트에 대한 정보를 보거나 편집하고 ID가 *ALIAS12345*인 별칭과 상호 작용할 수 있는 샘플 정책입니다. 예를 들어, 에이전트의 문제를 해결하고 업데이트하는 권한만 부여하려는 역할에 이 정책을 연결할 수 있습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetAndUpdateAgent",
            "Effect": "Allow",
            "Action": [
                "bedrock:GetAgent",
                "bedrock:UpdateAgent"
            ],
            "Resource": "arn:aws:bedrock:us-east-1:123456789012:agent/AgentId"
        },
        {
            "Sid": "InvokeAgent",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeAgent"
            ],
            "Resource": "arn:aws:bedrock:us-east-1:123456789012:agent-alias/AgentId/AgentAliasId"
        }
    ]
}
```

------

## 서비스 계층에 대한 액세스 제어
<a name="security_iam_id-based-policy-examples-service-tiers"></a>

Amazon Bedrock 서비스 계층은 추론 요청에 대해 다양한 수준의 처리 우선 순위 및 요금을 제공합니다. 기본적으로 모든 서비스 계층(우선 순위, 기본값 및 유연성)은 명시적으로 제한되지 않는 한 액세스 권한이 부여되는 허용 목록 접근 방식에 따라 적절한 Bedrock 권한이 있는 사용자가 사용할 수 있습니다.

그러나 조직은 사용자가 비용을 관리하거나 사용 정책을 적용하기 위해 액세스할 수 있는 서비스 계층을 제어하고자 할 수 있습니다. `bedrock:ServiceTier` 조건 키와 함께 IAM 정책을 사용하여 특정 서비스 계층에 대한 액세스를 거부함으로써 액세스 제한을 구현할 수 있습니다. 이 접근 방식을 사용하면 “우선 순위”와 같은 프리미엄 서비스 티어 또는 “유연”과 같은 비용 최적화 티어를 사용할 수 있는 팀원을 세밀하게 제어할 수 있습니다.

다음 예제는 모든 서비스 계층에 대한 액세스를 거부하는 자격 증명 기반 정책을 보여줍니다. 이 유형의 정책은 사용자가 서비스 계층을 지정하지 못하도록 하여 시스템 기본 동작을 사용하도록 강제하려는 경우에 유용합니다.

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "bedrock:InvokeModel",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "bedrock:ServiceTier": ["reserved", "priority", "default", "flex"]
                }
            }
        }
    ]
}
```

`bedrock:ServiceTier` 조건 값을 수정하여 특정 서비스 계층에 대한 액세스만 거부하도록이 정책을 사용자 지정할 수 있습니다. 예를 들어 "default" 및 "flex"를 허용하면서 프리미엄 "priority" 티어만 거부하려면 조건에서만 `["priority"]`를 지정합니다. 이 유연한 접근 방식을 사용하면 조직의 비용 관리 및 운영 요구 사항에 맞는 사용 정책을 구현할 수 있습니다. 서비스 티어에 대한 자세한 내용은 섹션을 참조하세요[성능 및 비용 최적화를 위한 서비스 티어](service-tiers-inference.md).

# 프로젝트에서 IAM 정책 관리
<a name="security-iam-projects"></a>

Amazon Bedrock Projects는 직접 IAM 정책 연결을 지원하므로 프로젝트 리소스 수준에서 액세스 제어를 관리할 수 있습니다. 이는 IAM 사용자 및 역할에 대한 정책 관리의 대안을 제공합니다.

## 프로젝트 수준 IAM 정책 이해
<a name="security-iam-projects-understanding"></a>

프로젝트 수준 IAM 정책을 사용하면 다음을 수행할 수 있습니다.
+ **액세스 제어 중앙 집중화**: 프로젝트 리소스에 대한 직접 권한 정의
+ **관리 간소화**: 개별 사용자/역할 정책을 수정하지 않고 액세스 업데이트
+ **간편한 감사**: 프로젝트의 모든 권한을 한 곳에서 볼 수 있습니다.
+ **위임 관리**: 프로젝트 소유자가 프로젝트에 대한 액세스를 관리하도록 허용

## 프로젝트에 IAM 정책 연결
<a name="security-iam-projects-attaching"></a>

### 액세스 권한을 부여하는 정책 연결
<a name="security-iam-projects-attach-grant"></a>

IAM 정책을 프로젝트에 직접 연결하여 권한을 부여합니다.

```
import boto3
import json

iam = boto3.client('iam', region_name='us-east-1')

project_arn = "arn:aws:bedrock-mantle:us-east-1:123456789012:project/proj_abc123"

# Define the identity-based policy document
policy_document = {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowTeamAlphaAccess",
            "Effect": "Allow",
            "Action": [
                "bedrock-mantle:ListTagsForResources",
                "bedrock-mantle:GetProject"
            ],
            "Resource": project_arn
        }
    ]
}

policy_json = json.dumps(policy_document)

# Create a managed policy
create_response = iam.create_policy(
    PolicyName="TeamAlphaAccessPolicy",
    PolicyDocument=policy_json,
    Description="Grants Team Alpha read access to the Bedrock project"
)

policy_arn = create_response['Policy']['Arn']
print(f"Policy created: {policy_arn}")

# Attach the policy to alice (IAM user)
iam.attach_user_policy(
    UserName="alice",
    PolicyArn=policy_arn
)
print("Policy attached to alice")

# Attach the policy to bob (IAM user)
iam.attach_user_policy(
    UserName="bob",
    PolicyArn=policy_arn
)
print("Policy attached to bob")

# Attach the policy to TeamAlphaRole (IAM role)
iam.attach_role_policy(
    RoleName="TeamAlphaRole",
    PolicyArn=policy_arn
)
print("Policy attached to TeamAlphaRole")
```

### 팀에 전체 프로젝트 액세스 권한 부여
<a name="security-iam-projects-full-access"></a>

팀이 프로젝트를 관리하고 사용할 수 있는 전체 액세스 권한을 허용합니다.

```
import boto3
import json

iam = boto3.client('iam', region_name='us-east-1')

project_arn = "arn:aws:bedrock-mantle:us-east-1:123456789012:project/proj_abc123"

# Identity-based policy — no Principal block needed
policy_document = {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "FullProjectAccess",
            "Effect": "Allow",
            "Action": "bedrock-mantle:*",
            "Resource": project_arn
        }
    ]
}

# Create a managed policy
create_response = iam.create_policy(
    PolicyName="DataScienceFullAccess",
    PolicyDocument=json.dumps(policy_document),
    Description="Grants DataScienceTeamRole full access to the Bedrock project"
)

policy_arn = create_response['Policy']['Arn']
print(f"Policy created: {policy_arn}")

# Attach to the DataScienceTeamRole
iam.attach_role_policy(
    RoleName="DataScienceTeamRole",
    PolicyArn=policy_arn
)

print("Full access policy attached to DataScienceTeamRole")
```

### 에 읽기 전용 액세스 권한 부여
<a name="security-iam-projects-readonly"></a>

프로젝트 세부 정보를 보고 추론 요청만 수행할 수 있도록 허용하는 정책을 연결합니다.

```
import boto3
import json

iam = boto3.client('iam', region_name='us-east-1')

project_arn = "arn:aws:bedrock-mantle:us-east-1:123456789012:project/proj_abc123"

# Identity-based policy — no Principal block needed
policy_document = {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "bedrock-mantle:CreateInference",
                "bedrock-mantle:GetProject",
                "bedrock-mantle:ListProjects",
                "bedrock-mantle:ListTagsForResources"
            ],
            "Resource": project_arn
        }
    ]
}

# Create a managed policy
create_response = iam.create_policy(
    PolicyName="ReadOnlyAccessPolicy",
    PolicyDocument=json.dumps(policy_document),
    Description="Grants viewer1 and viewer2 read-only access to the Bedrock project"
)

policy_arn = create_response['Policy']['Arn']
print(f"Policy created: {policy_arn}")

# Attach to viewer1
iam.attach_user_policy(
    UserName="viewer1",
    PolicyArn=policy_arn
)
print("Policy attached to viewer1")

# Attach to viewer2
iam.attach_user_policy(
    UserName="viewer2",
    PolicyArn=policy_arn
)
print("Policy attached to viewer2")
```







# AWS Amazon Bedrock에 대한 관리형 정책
<a name="security-iam-awsmanpol"></a>

사용자, 그룹 및 역할에 권한을 추가하려면 직접 정책을 작성하는 것보다 AWS 관리형 정책을 사용하는 것이 더 쉽습니다. 팀에 필요한 권한만 제공하는 [IAM 고객 관리형 정책을 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)하기 위해서는 시간과 전문 지식이 필요합니다. 빠르게 시작하려면 AWS 관리형 정책을 사용할 수 있습니다. 이 정책은 일반적인 사용 사례를 다루며 사용자의 AWS 계정에서 사용할 수 있습니다.

 AWS 관리형 정책 목록은 [AWS 관리형 정책](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/policy-list.html) 참조의 AWS 관리형 정책을 참조하세요. AWS 관리형 정책에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS 관리형 정책을](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) 참조하세요.

AWS 서비스는 AWS 관리형 정책을 유지 관리하고 업데이트합니다. AWS 관리형 정책에서는 권한을 변경할 수 없습니다. 서비스에서 때때로 추가 권한을 AWS 관리형 정책에 추가하여 새로운 기능을 지원합니다. 이 유형의 업데이트는 정책이 연결된 모든 ID(사용자, 그룹 및 역할)에 적용됩니다. 서비스는 새로운 기능이 시작되거나 새 작업을 사용할 수 있을 때 AWS 관리형 정책에 업데이트됩니다. 서비스는 AWS 관리형 정책에서 권한을 제거하지 않으므로 정책 업데이트로 인해 기존 권한이 손상되지 않습니다.

또한는 여러 서비스에 걸쳐 있는 직무에 대한 관리형 정책을 AWS 지원합니다. 예를 들어 **ReadOnlyAccess** AWS 관리형 정책은 모든 AWS 서비스 및 리소스에 대한 읽기 전용 액세스를 제공합니다. 서비스가 새 기능을 시작하면는 새 작업 및 리소스에 대한 읽기 전용 권한을 AWS 추가합니다. 직무 정책의 목록과 설명은 *IAM 사용 설명서*의 [직무에 관한AWS 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)을 참조하세요.

**Topics**
+ [AWS 관리형 정책: AmazonBedrockFullAccess](#security-iam-awsmanpol-AmazonBedrockFullAccess)
+ [AWS 관리형 정책: AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly)
+ [AWS 관리형 정책: AmazonBedrockLimitedAccess](#security-iam-awsmanpol-AmazonBedrockLimitedAccess)
+ [AWS 관리형 정책: AmazonBedrockMarketplaceAccess](#security-iam-awsmanpol-AmazonBedrockMarketplaceAccess)
+ [AWS 관리형 정책: AmazonBedrockMantleFullAccess](#security-iam-awsmanpol-AmazonBedrockMantleFullAccess)
+ [AWS 관리형 정책: AmazonBedrockMantleReadOnly](#security-iam-awsmanpol-AmazonBedrockMantleReadOnly)
+ [AWS 관리형 정책: AmazonBedrockMantleInferenceAccess](#security-iam-awsmanpol-AmazonBedrockMantleInferenceAccess)
+ [AWS 관리형 정책에 대한 Amazon Bedrock 업데이트](#security-iam-awsmanpol-updates)

## AWS 관리형 정책: AmazonBedrockFullAccess
<a name="security-iam-awsmanpol-AmazonBedrockFullAccess"></a>

[AmazonBedrockFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockFullAccess.html) 정책을 IAM ID에 연결하여 Amazon Bedrock 리소스를 생성, 읽기, 업데이트 및 삭제할 수 있는 권한을 허용하는 관리자 권한을 부여할 수 있습니다.

** 권한 세부 정보**

이 정책에는 다음 권한이 포함되어 있습니다.
+  `ec2`(Amazon Elastic Compute Cloud) - VPC, 서브넷 및 보안 그룹을 설명할 수 있는 권한을 허용합니다.
+  `iam` (AWS 자격 증명 및 액세스 관리) - 보안 주체가 역할을 전달할 수 있지만 "Amazon Bedrock"이 포함된 IAM 역할만 Amazon Bedrock 서비스로 전달할 수 있습니다. 권한은 Amazon Bedrock 작업에만 사용할 수 있도록 `bedrock.amazonaws.com`에 제한됩니다.
+  `kms` (AWS Key Management Service) - 보안 주체가 AWS KMS 키와 별칭을 설명할 수 있도록 허용합니다.
+  `bedrock`(Amazon Bedrock) - 보안 주체가 Amazon Bedrock 컨트롤 플레인 및 런타임 서비스의 모든 작업에 대한 읽기 및 쓰기 액세스 권한을 허용합니다.
+  `sagemaker`(Amazon SageMaker AI) - 보안 주체가 Amazon Bedrock Marketplace 기능의 기반 역할을 하는 고객 계정의 Amazon SageMaker AI 리소스에 액세스할 수 있도록 허용합니다.

------
#### [ JSON ]

****  

```
{
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Sid": "BedrockAll",
             "Effect": "Allow",
             "Action": [
                 "bedrock:*"
             ],
             "Resource": "*"
         },
         {
             "Sid": "DescribeKey",
             "Effect": "Allow",
             "Action": [
                 "kms:DescribeKey"
             ],
             "Resource": "arn:*:kms:*:::*"
         },
         {
             "Sid": "APIsWithAllResourceAccess",
             "Effect": "Allow",
             "Action": [
                 "iam:ListRoles",
                 "ec2:DescribeVpcs",
                 "ec2:DescribeSubnets",
                 "ec2:DescribeSecurityGroups"
             ],
             "Resource": "*"
         },
         {
             "Sid": "MarketplaceModelEndpointMutatingAPIs",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:CreateEndpoint",
                 "sagemaker:CreateEndpointConfig",
                 "sagemaker:CreateModel",
                 "sagemaker:DeleteEndpoint",
                 "sagemaker:UpdateEndpoint"
             ],
             "Resource": [
                 "arn:aws:sagemaker:*:*:endpoint/*",
                 "arn:aws:sagemaker:*:*:endpoint-config/*",
                 "arn:aws:sagemaker:*:*:model/*"
             ],
             "Condition": {
                 "StringEquals": {
                     "aws:CalledViaLast": "bedrock.amazonaws.com",
                     "aws:ResourceTag/sagemaker-sdk:bedrock": "compatible"
                 }
             }
         },
         {
             "Sid": "MarketplaceModelEndpointAddTagsOperations",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:AddTags"
             ],
             "Resource": [
                 "arn:aws:sagemaker:*:*:endpoint/*",
                 "arn:aws:sagemaker:*:*:endpoint-config/*",
                 "arn:aws:sagemaker:*:*:model/*"
             ],
             "Condition": {
                 "ForAllValues:StringEquals": {
                     "aws:TagKeys": [
                         "sagemaker-sdk:bedrock",
                         "bedrock:marketplace-registration-status",
                         "sagemaker-studio:hub-content-arn"
                     ]
                 },
                 "StringLike": {
                     "aws:RequestTag/sagemaker-sdk:bedrock": "compatible",
                     "aws:RequestTag/bedrock:marketplace-registration-status": "registered",
                     "aws:RequestTag/sagemaker-studio:hub-content-arn": "arn:aws:sagemaker:*:aws:hub-content/SageMakerPublicHub/Model/*"
                 }
             }
         },
         {
             "Sid": "MarketplaceModelEndpointDeleteTagsOperations",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:DeleteTags"
             ],
             "Resource": [
                 "arn:aws:sagemaker:*:*:endpoint/*",
                 "arn:aws:sagemaker:*:*:endpoint-config/*",
                 "arn:aws:sagemaker:*:*:model/*"
             ],
             "Condition": {
                 "ForAllValues:StringEquals": {
                     "aws:TagKeys": [
                         "sagemaker-sdk:bedrock",
                         "bedrock:marketplace-registration-status",
                         "sagemaker-studio:hub-content-arn"
                     ]
                 },
                 "StringLike": {
                     "aws:ResourceTag/sagemaker-sdk:bedrock": "compatible",
                     "aws:ResourceTag/bedrock:marketplace-registration-status": "registered",
                     "aws:ResourceTag/sagemaker-studio:hub-content-arn": "arn:aws:sagemaker:*:aws:hub-content/SageMakerPublicHub/Model/*"
                 }
             }
         },
         {
             "Sid": "MarketplaceModelEndpointNonMutatingAPIs",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:DescribeEndpoint",
                 "sagemaker:DescribeEndpointConfig",
                 "sagemaker:DescribeModel",
                 "sagemaker:DescribeInferenceComponent",
                 "sagemaker:ListEndpoints",
                 "sagemaker:ListTags"
             ],
             "Resource": [
                 "arn:aws:sagemaker:*:*:endpoint/*",
                 "arn:aws:sagemaker:*:*:endpoint-config/*",
                 "arn:aws:sagemaker:*:*:model/*"
             ],
             "Condition": {
                 "StringEquals": {
                     "aws:CalledViaLast": "bedrock.amazonaws.com"
                 }
             }
         },
         {
             "Sid": "MarketplaceModelEndpointInvokingOperations",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:InvokeEndpoint",
                 "sagemaker:InvokeEndpointWithResponseStream"
             ],
             "Resource": [
                 "arn:aws:sagemaker:*:*:endpoint/*"
             ],
             "Condition": {
                 "StringEquals": {
                     "aws:CalledViaLast": "bedrock.amazonaws.com",
                     "aws:ResourceTag/sagemaker-sdk:bedrock": "compatible"
                 }
             }
         },
         {
             "Sid": "DiscoveringMarketplaceModel",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:DescribeHubContent"
             ],
             "Resource": [
                 "arn:aws:sagemaker:*:aws:hub-content/SageMakerPublicHub/Model/*",
                 "arn:aws:sagemaker:*:aws:hub/SageMakerPublicHub"
             ]
         },
         {
             "Sid": "AllowMarketplaceModelsListing",
             "Effect": "Allow",
             "Action": [
                 "sagemaker:ListHubContents"
             ],
             "Resource": "arn:aws:sagemaker:*:aws:hub/SageMakerPublicHub"
         },
         {
             "Sid": "PassRoleToSageMaker",
             "Effect": "Allow",
             "Action": [
                 "iam:PassRole"
             ],
             "Resource": [
                 "arn:aws:iam::*:role/*SageMaker*ForBedrock*"
             ],
             "Condition": {
                 "StringEquals": {
                     "iam:PassedToService": [
                         "sagemaker.amazonaws.com",
                         "bedrock.amazonaws.com"
                     ]
                 }
             }
         },
         {
             "Sid": "PassRoleToBedrock",
             "Effect": "Allow",
             "Action": [
                 "iam:PassRole"
             ],
             "Resource": "arn:aws:iam::*:role/*AmazonBedrock*",
             "Condition": {
                 "StringEquals": {
                     "iam:PassedToService": [
                         "bedrock.amazonaws.com"
                     ]
                 }
             }
         },
         {
             "Sid": "MarketplaceOperationsFromBedrockFor3pModels",
             "Effect": "Allow",
             "Action": [
                 "aws-marketplace:Subscribe",
                 "aws-marketplace:ViewSubscriptions",
                 "aws-marketplace:Unsubscribe"
             ],
             "Resource": "*",
             "Condition": {
                 "StringEquals": {
                     "aws:CalledViaLast": "bedrock.amazonaws.com"
                 }
             }
         }
     ]
 }
```

------

## AWS 관리형 정책: AmazonBedrockReadOnly
<a name="security-iam-awsmanpol-AmazonBedrockReadOnly"></a>

[AmazonBedrockReadOnly](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockReadOnly.html) 정책을 IAM ID에 연결하여 Amazon Bedrock의 모든 리소스를 볼 수 있는 읽기 전용 권한을 부여할 수 있습니다.

## AWS 관리형 정책: AmazonBedrockLimitedAccess
<a name="security-iam-awsmanpol-AmazonBedrockLimitedAccess"></a>

[AmazonBedrockLimitedAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockLimitedAccess.html) 정책을 IAM 자격 증명에 연결하여 타사 파운데이션 모델에 대한 Amazon Bedrock 서비스, AWS KMS 키 관리, 네트워킹 리소스 및 AWS Marketplace 구독에 액세스할 수 있습니다. 이 정책에 포함되는 스테이트먼트는 다음과 같습니다.
+ `BedrockAPIs` 스테이트먼트를 사용하면 Amazon Bedrock에서 다음을 포함한 여러 작업을 수행할 수 있습니다.
  + Amazon Bedrock 서비스에 API 요청을 할 때 Amazon Bedrock API 키를 전달합니다.
  + 리소스에 대한 정보를 설명합니다.
  + 리소스(가드레일, 모델, 작업)를 생성합니다.
  + 자동 추론 정책을 생성하고 구체화합니다(정책 생성, 구축, 구체화 및 테스트).
  + 리소스를 삭제합니다.
  + 모든 리소스에서 모델을 간접 호출합니다.
+ `DescribeKey` 스테이트먼트를 사용하면 키에 대한 정책에서 허용하는 한 모든 리전 및 계정에서 KMS 키에 대한 정보를 볼 수 있습니다.
+ `APIsWithAllResourceAccess` 스테이트먼트를 사용하면 다음을 수행할 수 있습니다.
  + IAM 역할을 나열합니다.
  + 모든 리소스에서 Amazon VPC 리소스(VPC, 서브넷 및 보안 그룹)를 설명합니다.
+ `MarketplaceOperationsFromBedrockFor3pModels` 스테이트먼트를 사용하면 다음을 수행할 수 있습니다.
  +  AWS Marketplace 상품을 구독합니다.
  + 구독을 봅니다.
  +  AWS Marketplace 상품 구독을 취소합니다.
**참고**  
조건 키는 Amazon Bedrock 서비스를 통해 직접 호출되는 경우에만 이러한 작업을 `aws:CalledViaLast`로 제한합니다.

## AWS 관리형 정책: AmazonBedrockMarketplaceAccess
<a name="security-iam-awsmanpol-AmazonBedrockMarketplaceAccess"></a>

[AmazonBedrockMarketplaceAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockMarketplaceAccess.html) 정책을 IAM ID에 연결하여 SageMaker AI 통합으로 Amazon Bedrock Marketplace 모델 엔드포인트를 관리하고 사용할 수 있습니다. 이 정책에 포함되는 스테이트먼트는 다음과 같습니다.
+ `BedrockMarketplaceAPIs` 스테이트먼트를 사용하면 모든 리소스에서 Amazon Bedrock의 마켓플레이스 모델 엔드포인트를 생성, 삭제, 등록, 등록 취소 및 업데이트할 수 있습니다.
+ `MarketplaceModelEndpointMutatingAPIs` 스테이트먼트를 사용하면 지정된 리소스에서 SageMaker AI 엔드포인트, 엔드포인트 구성 및 모델을 생성하고 관리할 수 있습니다.
  + `aws:CalledViaLast` 조건 키를 사용하여 Bedrock을 통해 직접 호출할 때만 이러한 작업이 수행되도록 합니다.
  + `aws:ResourceTag/sagemaker-sdk:bedrock` 조건 키를 사용하여 이러한 작업이 Amazon Bedrock 호환으로 태그가 지정된 리소스에서만 수행되도록 합니다.
+ `MarketplaceModelEndpointAddTagsOperations` 스테이트먼트를 사용하면 지정된 리소스의 SageMaker AI 엔드포인트, 엔드포인트 구성 및 모델에 특정 태그를 추가할 수 있습니다.
  + `aws:TagKeys` 조건 키를 사용하여 추가할 수 있는 태그를 제한합니다.
  + `aws:RequestTag/*` 조건 키를 사용하여 태그 값이 지정된 패턴과 일치하는지 확인합니다.
+ `MarketplaceModelEndpointDeleteTagsOperations` 스테이트먼트를 사용하면 지정된 리소스의 SageMaker AI 엔드포인트, 엔드포인트 구성 및 모델에서 특정 태그를 삭제할 수 있습니다.
  + `aws:TagKeys` 조건 키를 사용하여 삭제할 수 있는 태그를 제한합니다.
  + `aws:ResourceTag/*` 조건 키를 사용하여 삭제된 태그가 지정된 패턴과 일치하는지 확인합니다.
+ `MarketplaceModelEndpointNonMutatingAPIs` 스테이트먼트를 사용하면 지정된 리소스에서 SageMaker AI 엔드포인트, 엔드포인트 구성 및 모델을 보고 설명할 수 있습니다.
  + `aws:CalledViaLast` 조건 키를 사용하여 Amazon Bedrock 서비스를 통해서만 작업이 수행되도록 합니다.
+ `MarketplaceModelEndpointInvokingOperations` 스테이트먼트는 지정된 리소스에서 SageMaker AI 엔드포인트 간접 호출을 허용합니다.
  + `aws:CalledViaLast` 조건 키를 사용하여 Amazon Bedrock 서비스를 통해서만 작업이 수행되도록 합니다.
  + `aws:ResourceTag/sagemaker-sdk:bedrock` 조건 키를 사용하여 Bedrock 호환 리소스에서만 작업이 수행되도록 합니다.
+ `DiscoveringMarketplaceModel` 스테이트먼트를 사용하면 지정된 리소스에서 SageMaker AI 허브 콘텐츠를 설명할 수 있습니다.
+ `AllowMarketplaceModelsListing` 스테이트먼트를 사용하면 지정된 리소스에 SageMaker AI 허브 콘텐츠를 나열할 수 있습니다.
+ `PassRoleToSageMaker` 스테이트먼트를 사용하면 지정된 리소스의 SageMaker AI 및 Amazon Bedrock에 IAM 역할을 전달할 수 있습니다.
  + `iam:PassedToService` 조건 키를 사용하여 역할이 지정된 서비스로만 전달되도록 합니다.
+ `PassRoleToBedrock` 스테이트먼트를 사용하면 지정된 리소스의 Amazon Bedrock에 특정 IAM 역할을 전달할 수 있습니다.
  + `iam:PassedToService` 조건 키를 사용하여 역할이 Amazon Bedrock 서비스로만 전달되도록 합니다.

## AWS 관리형 정책: AmazonBedrockMantleFullAccess
<a name="security-iam-awsmanpol-AmazonBedrockMantleFullAccess"></a>

[AmazonBedrockMantleFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockMantleFullAccess.html) 정책을 IAM 자격 증명에 연결하여 모든 Amazon Bedrock Mantle 작업에 대한 전체 액세스 권한을 부여할 수 있습니다.

** 권한 세부 정보**

이 정책에는 다음 권한이 포함되어 있습니다.
+ `bedrock-mantle` (Amazon Bedrock Mantle) - 보안 주체가 Amazon Bedrock Mantle 서비스의 모든 작업에 대한 전체 액세스 권한을 허용합니다.

## AWS 관리형 정책: AmazonBedrockMantleReadOnly
<a name="security-iam-awsmanpol-AmazonBedrockMantleReadOnly"></a>

[AmazonBedrockMantleReadOnly](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockMantleReadOnly.html) 정책을 IAM 자격 증명에 연결하여 Amazon Bedrock Mantle 리소스를 보고 보유자 토큰으로를 호출할 수 있는 읽기 전용 권한을 부여할 수 있습니다.

** 권한 세부 정보**

이 정책에는 다음 권한이 포함되어 있습니다.
+ `bedrock-mantle` (Amazon Bedrock Mantle) - 보안 주체가 Amazon Bedrock Mantle 프로젝트 리소스를 가져오고 나열하고 인증을 위해 보유자 토큰으로를 호출할 수 있습니다.

## AWS 관리형 정책: AmazonBedrockMantleInferenceAccess
<a name="security-iam-awsmanpol-AmazonBedrockMantleInferenceAccess"></a>

[AmazonBedrockMantleInferenceAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockMantleInferenceAccess.html) 정책을 IAM 자격 증명에 연결하여 Amazon Bedrock Mantle 모델에서 추론을 실행할 수 있는 권한을 부여할 수 있습니다.

** 권한 세부 정보**

이 정책에는 다음 권한이 포함되어 있습니다.
+ `bedrock-mantle` (Amazon Bedrock Mantle) - 보안 주체가 Amazon Bedrock Mantle 프로젝트 리소스를 가져오고 나열하고, 추론 요청을 생성하고, 인증을 위해 보유자 토큰으로를 호출할 수 있습니다.

## AWS 관리형 정책에 대한 Amazon Bedrock 업데이트
<a name="security-iam-awsmanpol-updates"></a>

이 서비스가 이러한 변경 사항을 추적하기 시작한 이후부터 Amazon Bedrock의 AWS 관리형 정책 업데이트에 대한 세부 정보를 봅니다. 이 페이지의 변경 사항에 대한 자동 알림을 받아보려면 [Amazon Bedrock 사용 설명서에 대한 문서 기록](doc-history.md)에서 RSS 피드를 구독하세요.


| 변경 | 설명 | Date | 
| --- | --- | --- | 
|  [AmazonBedrockMantleFullAccess](#security-iam-awsmanpol-AmazonBedrockMantleFullAccess) – 새 정책  |  Amazon Bedrock은 모든 Amazon Bedrock Mantle 작업에 대한 전체 액세스 권한을 부여하는 새 정책을 추가했습니다.  | 2025년 12월 3일 | 
|  [AmazonBedrockMantleReadOnly](#security-iam-awsmanpol-AmazonBedrockMantleReadOnly) – 새 정책  |  Amazon Bedrock은 Amazon Bedrock Mantle 리소스에 대한 읽기 전용 액세스 권한을 부여하는 새 정책을 추가했습니다.  | 2025년 12월 3일 | 
|  [AmazonBedrockMantleInferenceAccess](#security-iam-awsmanpol-AmazonBedrockMantleInferenceAccess) – 새 정책  |  Amazon Bedrock은 Amazon Bedrock Mantle 모델에 대한 추론 액세스 권한을 부여하는 새 정책을 추가했습니다.  | 2025년 12월 3일 | 
|  [AmazonBedrockFullAccess](#security-iam-awsmanpol-AmazonBedrockFullAccess) – 업데이트된 정책  |  Amazon Bedrock은 기본적으로 모든 서버리스 파운데이션 모델에 액세스할 수 있도록 AmazonBedrockFullAccess 관리형 정책을 업데이트했습니다.  | 2025년 7월 14일 | 
|  [AmazonBedrockMarketplaceAccess](#security-iam-awsmanpol-AmazonBedrockLimitedAccess) – 새 정책  |  Amazon Bedrock은 고객에게 SageMaker AI 엔드포인트를 통해 Amazon Bedrock Marketplace 파운데이션 모델에 액세스할 수 있는 권한을 부여하는 새 정책을 추가했습니다.  | 2025년 6월 13일 | 
|  [AmazonBedrockLimitedAccess](#security-iam-awsmanpol-AmazonBedrockLimitedAccess) – 새 정책  |  Amazon Bedrock은 고객에게 Amazon Bedrock의 핵심 작업에 액세스할 수 있는 기본 권한을 부여하는 새 정책을 추가했습니다.  | 2025년 6월 13일 | 
|  [AmazonBedrockFullAccess](#security-iam-awsmanpol-AmazonBedrockFullAccess) – 업데이트된 정책  |  Amazon Bedrock은 Amazon Bedrock Marketplace 리소스를 생성, 읽기, 업데이트 및 삭제하는 데 필요한 권한을 고객에게 부여하도록 AmazonBedrockFullAccess 관리형 정책을 업데이트했습니다. 여기에는 Amazon Bedrock Marketplace 기능의 기반 역할을 하는 기본 Amazon SageMaker AI 리소스를 관리할 수 있는 권한이 포함됩니다.  | 2024년 12월 4일 | 
|  [AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly) - 업데이트된 정책  |  Amazon Bedrock은 고객에게 Amazon Bedrock Marketplace 리소스를 읽는 데 필요한 권한을 부여하도록 AmazonBedrockReadOnly 관리형 정책을 업데이트했습니다. 여기에는 Amazon Bedrock Marketplace 기능의 기반 역할을 하는 기본 Amazon SageMaker AI 리소스를 관리할 수 있는 권한이 포함됩니다.  | 2024년 12월 4일 | 
|  [AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly) - 업데이트된 정책  |  Amazon Bedrock에서 사용자 지정 모델 가져오기에 대한 읽기 전용 권한을 포함하도록 AmazonBedrockReadOnly 정책을 업데이트했습니다.  | 2024년 10월 18일 | 
|  [AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly) - 업데이트된 정책  |  Amazon Bedrock에서 추론 프로파일 읽기 전용 권한을 추가했습니다.  | 2024년 8월 27일 | 
|  [AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly) - 업데이트된 정책  |  Amazon Bedrock에서 Amazon Bedrock Guardrails, Amazon Bedrock 모델 평가 및 Amazon Bedrock 배치 추론에 대한 읽기 전용 권한을 포함하도록 AmazonBedrockReadOnly 정책을 업데이트했습니다.  | 2024년 8월 21일 | 
|  [AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly) - 업데이트된 정책  |  Amazon Bedrock에서 배치 추론(모델 간접 호출 작업) 읽기 전용 권한을 추가했습니다.  | 2024년 8월 21일 | 
|   [AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly) - 업데이트된 정책   |  Amazon Bedrock에서 Amazon Bedrock Custom Model Import에 대한 읽기 전용 권한을 포함하도록 AmazonBedrockReadOnly 정책을 업데이트했습니다.  | 2024년 9월 3일 | 
|  [AmazonBedrockFullAccess](#security-iam-awsmanpol-AmazonBedrockFullAccess) – 새 정책  |  Amazon Bedrock은 사용자에게 리소스를 생성, 읽기, 업데이트 및 삭제할 수 있는 권한을 부여하는 새 정책을 추가했습니다.  | 2023년 12월 12일 | 
|  [AmazonBedrockReadOnly](#security-iam-awsmanpol-AmazonBedrockReadOnly) – 새 정책  |  Amazon Bedrock은 사용자에게 모든 작업에 대한 읽기 전용 권한을 부여하는 새로운 정책을 추가했습니다.  | 2023년 12월 12일 | 
|  Amazon Bedrock에서 변경 사항 추적 시작  |  Amazon Bedrock은 AWS 관리형 정책에 대한 변경 사항 추적을 시작했습니다.  | 2023년 12월 12일 | 

# 서비스 역할
<a name="security-iam-sr"></a>

Amazon Bedrock은 일부 기능에 [IAM 서비스 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)을 사용하여 Amazon Bedrock이 사용자를 대신하여 작업을 수행할 수 있도록 합니다.

지원되는 기능에 대한 서비스 역할이 콘솔에서 자동으로 생성됩니다.

사용자 지정 서비스 역할을 만들고 연결된 권한을 특정 사용 사례에 맞게 사용자 지정할 수도 있습니다. 콘솔을 사용하는 경우 Amazon Bedrock이 사용자를 대신하여 역할을 만들도록 하는 대신 이 역할을 선택할 수 있습니다.

사용자 지정 서비스 역할을 설정하려면 다음과 같은 일반 단계를 수행합니다.

1. [AWS 서비스에 권한을 위임할 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)의 단계에 따라 역할을 생성합니다.

1. **신뢰 정책**을 연결합니다.

1. 관련 **자격 증명 기반 권한**을 연결합니다.

**중요**  
`iam:PassRole` 권한을 설정할 때 사용자에게 부여하려는 역할보다 더 많은 권한이 있는 역할을 사용자가 넘길 수 없도록 하세요. 예를 들어 Alice는 사용자 지정 모델에서 `bedrock:InvokeModel`를 수행하는 것이 허용되지 않을 수 있습니다. Alice가 Amazon Bedrock에 역할을 전달하여 해당 사용자 지정 모델에 대한 평가를 생성할 수 있는 경우 서비스는 작업을 실행하는 동안 Alice를 대신하여 해당 모델을 간접 호출할 수 있습니다.

서비스 역할 권한 설정과 관련된 IAM 개념에 대한 자세한 내용은 다음 링크를 참조하세요.
+ [AWS 서비스 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)
+ [자격 증명 기반 정책 및 리소스 기반 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)
+ [Lambda에서 리소스 기반 IAM 정책 작업](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html)
+ [AWS 전역 조건 컨텍스트 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)
+ [Amazon Bedrock에 사용되는 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)

주제를 선택하여 특정 기능의 서비스 역할에 대해 자세히 알아보세요.

**Topics**
+ [배치 추론을 위한 사용자 지정 서비스 역할 생성](batch-iam-sr.md)
+ [모델 사용자 지정을 위한 서비스 역할 생성](model-customization-iam-role.md)
+ [사전 훈련된 모델 가져오기를 위한 서비스 역할 생성](model-import-iam-role.md)
+ [Amazon Bedrock 에이전트에 대한 서비스 역할 생성](agents-permissions.md)
+ [Amazon Bedrock Knowledge Bases에 대한 서비스 역할 생성](kb-permissions.md)
+ [Amazon Bedrock에서 Amazon Bedrock Flows의 서비스 역할 생성](flows-permissions.md)
+ [모델 평가 작업의 서비스 역할 요구 사항](model-evaluation-security-service-roles.md)

# 배치 추론을 위한 사용자 지정 서비스 역할 생성
<a name="batch-iam-sr"></a>

에서 Amazon Bedrock이 자동으로 생성하는 역할 대신 배치 추론에 사용자 지정 서비스 역할을 사용하려면 서비스에 권한을 위임할 역할 생성의 단계에 따라 AWS Management ConsoleIAM 역할을 생성하고 다음 권한을 연결합니다. [AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) 

**Topics**
+ [신뢰 관계](#batch-iam-sr-trust)
+ [배치 추론 서비스 역할에 대한 자격 증명 기반 권한입니다.](#batch-iam-sr-identity)

## 신뢰 관계
<a name="batch-iam-sr-trust"></a>

다음 신뢰 정책은 Amazon Bedrock이 이 역할을 맡아 배치 추론 작업을 제출하고 관리하도록 허용합니다. 필요에 따라 *값*을 바꿉니다. 이 정책에는 보안 모범 사례로 사용할 것을 권장하는 선택적 조건 키([Amazon Bedrock의 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys) 및 [AWS 전역 조건 컨텍스트 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys) 참조)가 `Condition` 필드에 포함되어 있습니다.

**참고**  
보안을 위한 가장 좋은 방법은 배치 추론 작업 ID를 생성한 후 *\$1*로 이를 바꾸는 것입니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:model-invocation-job/*"
                }
            }
        }
    ]
}
```

------

## 배치 추론 서비스 역할에 대한 자격 증명 기반 권한입니다.
<a name="batch-iam-sr-identity"></a>

다음 주제에서는 사용 사례에 따라 사용자 지정 배치 추론 서비스 역할에 연결해야 할 수 있는 권한 정책의 예를 설명하고 제공합니다.

**Topics**
+ [(필수) Amazon S3의 입력 및 출력 데이터에 액세스할 수 있는 권한](#batch-iam-sr-s3)
+ [(선택 사항) 추론 프로파일을 사용하여 배치 추론을 실행할 수 있는 권한](#batch-iam-sr-ip)

### (필수) Amazon S3의 입력 및 출력 데이터에 액세스할 수 있는 권한
<a name="batch-iam-sr-s3"></a>

서비스 역할이 입력 데이터가 포함된 Amazon S3 버킷과 출력 데이터를 쓸 버킷에 액세스하도록 허용하려면 다음 정책을 서비스 역할에 연결합니다. 필요에 따라 *값*을 바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
         "Sid": "S3Access",
         "Effect": "Allow",
         "Action": [
            "s3:GetObject",
            "s3:PutObject",
            "s3:ListBucket"
         ],
         "Resource": [
            "arn:aws:s3:::${InputBucket}",
            "arn:aws:s3:::${InputBucket}/*",
            "arn:aws:s3:::${OutputBucket}",
            "arn:aws:s3:::${OutputBucket}/*"
         ],
         "Condition": {
            "StringEquals": {
                "aws:ResourceAccount": [
                    "123456789012"
                ]
            }
         }
        }
    ]
}
```

------

### (선택 사항) 추론 프로파일을 사용하여 배치 추론을 실행할 수 있는 권한
<a name="batch-iam-sr-ip"></a>

추론 [프로파일](inference-profiles.md)로 배치 추론을 실행하려면 추론 프로파일의 각 리전에 있는 모델 AWS 리전외에도에서 추론 프로파일을 호출할 수 있는 권한이 서비스 역할에 있어야 합니다.

교차 리전(시스템 정의) 추론 프로파일을 사용하여 간접 호출할 수 있는 권한의 경우 다음 정책을 서비스 역할에 연결할 권한 정책의 템플릿으로 사용합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossRegionInference",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:inference-profile/${InferenceProfileId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}"
            ]
        }
    ]
}
```

------

애플리케이션 추론 프로파일을 사용하여 간접 호출할 수 있는 권한의 경우 다음 정책을 서비스 역할에 연결할 권한 정책의 템플릿으로 사용합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ApplicationInferenceProfile",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/${InferenceProfileId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}"
            ]
        }
    ]
}
```

------

# 모델 사용자 지정을 위한 서비스 역할 생성
<a name="model-customization-iam-role"></a>

Amazon Bedrock에서 자동으로 생성하는 역할 대신 모델 사용자 지정에 사용자 지정 역할을 사용하려면 [AWS서비스에 권한을 위임할 역할 생성의 단계에 따라 IAM 역할을 생성하고 다음 권한을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) 연결합니다.
+ 신뢰 관계
+ S3의 훈련 및 검증 데이터에 액세스하고 S3에 출력 데이터를 쓸 수 있는 권한
+ (선택 사항) KMS 키로 다음 리소스 중 하나를 암호화하는 경우 키를 복호화할 수 있는 권한([사용자 지정 모델 암호화](encryption-custom-job.md) 참조)
  + 모델 사용자 지정 작업 또는 그에 따른 사용자 지정 모델
  + 모델 사용자 지정 작업용 훈련, 검증 또는 출력 데이터

**Topics**
+ [신뢰 관계](#model-customization-iam-role-trust)
+ [S3의 훈련 및 검증 파일에 액세스하고 S3에 출력 파일을 쓸 수 있는 권한](#model-customization-iam-role-s3)
+ [(선택 사항) 교차 리전 추론 프로파일을 사용하여 증류 작업을 생성할 수 있는 권한](#customization-iam-sr-ip)

## 신뢰 관계
<a name="model-customization-iam-role-trust"></a>

다음 정책은 Amazon Bedrock이 이 역할을 맡아 모델 사용자 지정 작업을 수행하도록 허용합니다. 아래에서는 사용 가능한 정책 예제를 보여줍니다.

`Condition` 필드와 함께 하나 이상의 글로벌 조건 컨텍스트 키를 사용하여 [서비스 간 대리자 혼동 방지](cross-service-confused-deputy-prevention.md)를 위해 권한 범위를 선택적으로 제한할 수 있습니다. 자세한 정보는 [AWS 전역 조건 컨텍스트 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)를 참조하세요.
+ `aws:SourceAccount` 값을 계정 ID로 설정합니다.
+ (선택 사항) `ArnEquals` 또는 `ArnLike` 조건을 사용하여 범위를 계정 ID의 특정 모델 사용자 지정 작업으로 제한합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:model-customization-job/*"
                }
            }
        }
    ]
}
```

------

## S3의 훈련 및 검증 파일에 액세스하고 S3에 출력 파일을 쓸 수 있는 권한
<a name="model-customization-iam-role-s3"></a>

다음 정책을 연결하여 역할이 훈련 및 검증 데이터에 액세스하고 출력 데이터를 쓸 버킷에 액세스할 수 있도록 허용합니다. `Resource` 목록의 값을 실제 버킷 이름으로 바꿉니다.

버킷의 특정 폴더에 대한 액세스를 제한하려면 폴더 경로와 함께 `s3:prefix` 조건 키를 추가합니다. [예제 2: 특정 접두사가 있는 버킷의 객체 목록 가져오기](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#condition-key-bucket-ops-2)의 **사용자 정책** 예제를 따르면 됩니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::training-bucket",
                "arn:aws:s3:::training-bucket/*",
                "arn:aws:s3:::validation-bucket",
                "arn:aws:s3:::validation-bucket/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::output-bucket",
                "arn:aws:s3:::output-bucket/*"
            ]
        }
    ]
}
```

------

## (선택 사항) 교차 리전 추론 프로파일을 사용하여 증류 작업을 생성할 수 있는 권한
<a name="customization-iam-sr-ip"></a>

추출 작업에서 교사 모델에 교차 리전 추론 프로파일을 사용하려면 추론 프로파일의 각 리전에 있는 모델 AWS 리전외에도에서 추론 프로파일을 호출할 수 있는 권한이 서비스 역할에 있어야 합니다.

교차 리전(시스템 정의) 추론 프로파일을 사용하여 간접 호출할 수 있는 권한의 경우 다음 정책을 서비스 역할에 연결할 권한 정책의 템플릿으로 사용합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossRegionInference",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:inference-profile/${InferenceProfileId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}"
            ]
        }
    ]
}
```

------

# 사전 훈련된 모델 가져오기를 위한 서비스 역할 생성
<a name="model-import-iam-role"></a>

모델 가져오기에 사용자 지정 역할을 사용하려면 IAM 서비스 역할을 생성하고 다음 권한을 연결합니다. IAM에서 서비스 역할을 생성하는 방법에 대한 자세한 내용은 [AWS서비스에 권한을 위임할 역할 생성을 참조하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html).

이러한 권한은 모델을 Amazon Bedrock으로 가져오는 두 가지 방법에 모두 적용됩니다.
+ **사용자 지정 모델 가져오기 작업** - 사용자 지정 오픈 소스 파운데이션 모델(예: Mistral AI 또는 Llama 모델)을 가져오는 데 사용됩니다. 자세한 내용은 [사용자 지정 모델 가져오기를 사용하여 사용자 지정 오픈 소스 모델을 Amazon Bedrock으로 가져오기](model-customization-import-model.md) 단원을 참조하십시오.
+ **사용자 지정 모델 생성** - SageMaker AI에서 미세 조정한 Amazon Nova 모델을 가져오는 데 사용됩니다. 자세한 내용은 [SageMaker AI 훈련 Amazon Nova 모델 가져오기](import-with-create-custom-model.md) 단원을 참조하십시오.

**Topics**
+ [신뢰 관계](#model-import-iam-role-trust)
+ [Amazon S3에서 모델 파일에 액세스할 수 있는 권한](#model-import-iam-role-s3)

## 신뢰 관계
<a name="model-import-iam-role-trust"></a>

다음 정책은 Amazon Bedrock이 이 역할을 맡아 모델 가져오기 작업을 수행하도록 허용합니다. 아래에서는 사용 가능한 정책 예제를 보여줍니다.

`Condition` 필드와 함께 하나 이상의 글로벌 조건 컨텍스트 키를 사용하여 [서비스 간 대리자 혼동 방지](cross-service-confused-deputy-prevention.md)를 위해 권한 범위를 선택적으로 제한할 수 있습니다. 자세한 정보는 [AWS 전역 조건 컨텍스트 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)를 참조하세요.
+ `aws:SourceAccount` 값을 계정 ID로 설정합니다.
+ (선택 사항) `ArnEquals` 또는 `ArnLike` 조건을 사용하여 범위를 계정의 특정 작업 범위로 제한합니다. 다음 예제에서는 사용자 지정 모델 가져오기 작업에 대한 액세스를 제한합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:model-import-job/*"
                }
            }
        }
    ]
}
```

------

## Amazon S3에서 모델 파일에 액세스할 수 있는 권한
<a name="model-import-iam-role-s3"></a>

다음 정책을 연결하여 역할이 Amazon S3 버킷의 모델 파일에 액세스할 수 있도록 허용합니다. `Resource` 목록의 값을 실제 버킷 이름으로 바꿉니다.

사용자 지정 모델 가져오기 작업의 경우 사용자 지정 오픈 소스 모델 파일이 포함된 자체 Amazon S3 버킷입니다. SageMaker AI 훈련 모델에서 사용자 지정 Amazon Nova 모델을 생성하기 위해 SageMaker AI가 훈련된 모델 아티팩트를 저장하는 Amazon 관리형 Amazon S3 버킷입니다. SageMaker AI는 첫 번째 SageMaker AI 훈련 작업을 실행할 때 이 버킷을 생성합니다.

버킷의 특정 폴더에 대한 액세스를 제한하려면 폴더 경로와 함께 `s3:prefix` 조건 키를 추가합니다. [예제 2: 특정 접두사가 있는 버킷의 객체 목록 가져오기](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#condition-key-bucket-ops-2)의 **사용자 정책** 예제를 따르면 됩니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::bucket",
                "arn:aws:s3:::bucket/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

------

# Amazon Bedrock 에이전트에 대한 서비스 역할 생성
<a name="agents-permissions"></a>

Amazon Bedrock에서 자동으로 생성하는 역할 대신 에이전트에 대한 사용자 지정 서비스 역할을 사용하려면 서비스에 권한을 [위임할 역할 생성의 단계에 따라 IAM 역할을 생성하고 다음 권한을 연결합니다AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html).
+ 신뢰 정책
+ 다음 자격 증명 기반 권한이 포함된 정책입니다.
  + Amazon Bedrock 기본 모델에 대한 액세스 권한
  + 에이전트의 작업 그룹용 OpenAPI 스키마가 포함된 Amazon S3 객체에 대한 액세스 권한
  + Amazon Bedrock에서 에이전트에 연결하려는 지식 기반을 쿼리할 수 있는 권한
  + 사용 사례가 다음 상황에 관련된 경우, 정책에 설명을 추가하거나 서비스 역할에 대한 설명이 포함된 정책을 추가합니다.
    + (선택 사항) 다중 에이전트 협업을 활성화하면 별칭을 가져오고 에이전트 공동 작업자를 간접 호출할 수 있는 권한이 부여됩니다.
    + (선택 사항) 프로비저닝된 처리량을 에이전트 별칭과 연결하는 경우, 해당 프로비저닝된 처리량을 사용하여 모델 간접 호출을 수행할 수 있는 권한을 부여합니다.
    + (선택 사항) 에이전트에 가드레일을 연결하는 경우, 해당 가드레일을 적용할 수 있는 권한을 부여합니다. 가드레일이 KMS 키로 암호화된 경우, 서비스 역할에도 [키를 복호화할 수 있는 권한](guardrails-permissions-kms.md)이 필요합니다.
    + (선택 사항) KMS 키로 에이전트를 암호화하는 경우, [키를 복호화할 수 있는 권한](encryption-agents.md)을 부여합니다.

사용자 지정 역할 사용 여부와 관계없이, 에이전트의 작업 그룹에 대한 Lambda 함수에 **리소스 기반 정책**을 연결하여 서비스 역할이 함수에 액세스할 수 있는 권한을 제공해야 합니다. 자세한 내용은 [Amazon Bedrock이 작업 그룹 Lambda 함수를 간접적으로 호출하도록 허용하는 리소스 기반 정책](#agents-permissions-lambda) 섹션을 참조하세요.

**Topics**
+ [신뢰 관계](#agents-permissions-trust)
+ [에이전트 서비스 역할에 대한 자격 증명 기반 권한](#agents-permissions-identity)
+ [(선택 사항) Amazon Bedrock이 에이전트 별칭과 함께 프로비저닝된 처리량을 사용하도록 허용하는 ID 기반 정책](#agents-permissions-pt)
+ [(선택 사항) Amazon Bedrock이 에이전트 공동 작업자를 연결하고 간접 호출하도록 허용하는 자격 증명 기반 정책](#agents-permissions-mac)
+ [(선택 사항) Amazon Bedrock이 에이전트에서 가드레일을 사용하도록 허용하는 ID 기반 정책](#agents-permissions-gr)
+ [(선택 사항) Amazon Bedrock이 코드 해석에 사용할 S3의 파일에 액세스할 수 있도록 허용하는 ID 기반 정책](#agents-permissions-files-ci)
+ [Amazon Bedrock이 작업 그룹 Lambda 함수를 간접적으로 호출하도록 허용하는 리소스 기반 정책](#agents-permissions-lambda)

## 신뢰 관계
<a name="agents-permissions-trust"></a>

다음 신뢰 정책은 Amazon Bedrock이 이 역할을 맡아 에이전트를 만들고 관리할 수 있도록 허용합니다. 필요에 따라 *\$1\$1values\$1*를 바꿉니다. 이 정책에는 보안 모범 사례로 사용할 것을 권장하는 선택적 조건 키([Amazon Bedrock의 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys) 및 [AWS 전역 조건 컨텍스트 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys) 참조)가 `Condition` 필드에 포함되어 있습니다.

**참고**  
보안을 위한 가장 좋은 방법은 에이전트 ID를 생성한 후 *\$1*를 특정 에이전트 ID로 바꾸는 것입니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "AWS:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:agent/*"
                }
            }
        }
    ]
}
```

------

## 에이전트 서비스 역할에 대한 자격 증명 기반 권한
<a name="agents-permissions-identity"></a>

다음 정책을 연결하여 서비스 역할에 대한 권한을 제공하고 필요에 따라 *\$1\$1values\$1*를 대체합니다. 정책에는 다음과 같은 설명이 포함되어 있습니다. 사용 사례에 해당되지 않는 설명은 생략합니다. 이 정책에는 보안 모범 사례로 사용할 것을 권장하는 선택적 조건 키([Amazon Bedrock의 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys) 및 [AWS 전역 조건 컨텍스트 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys) 참조)가 `Condition` 필드에 포함되어 있습니다.

**참고**  
고객 관리형 KMS 키로 에이전트를 암호화하는 경우, 추가해야 하는 추가 권한은 [2025년 1월 22일 이전에 생성된 에이전트의 에이전트 리소스 암호화](encryption-agents.md) 섹션을 참조하세요.
+ Amazon Bedrock 파운데이션 모델을 사용하여 에이전트의 오케스트레이션에 사용되는 프롬프트에서 모델 추론을 실행할 수 있는 권한.
+ Amazon S3의 에이전트 작업 그룹 API 스키마에 액세스할 수 있는 권한. 에이전트에 작업 그룹이 없는 경우 이 설명을 생략합니다.
+ 에이전트와 관련된 지식 기반에 액세스할 수 있는 권한. 에이전트에 연결된 지식 기반이 없는 경우 이 설명을 생략합니다.
+ 에이전트와 연결된 타사(Pinecone 또는 Redis Enterprise Cloud) 지식 기반에 액세스할 수 있는 권한. 지식 기반이 자사(Amazon OpenSearch Serverless 또는 Amazon Aurora)이거나 에이전트에 연결된 지식 기반이 없는 경우 이 설명을 생략합니다.
+ 프롬프트 관리에서 프롬프트에 액세스할 수 있는 권한입니다. Amazon Bedrock 콘솔에서 에이전트를 사용하여 프롬프트 관리의 프롬프트를 테스트할 계획이 없는 경우 이 문을 생략합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AgentModelInvocationPermissions",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2",
                "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-v2:1",
                "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-instant-v1"
            ]
        },
        {
            "Sid": "AgentActionGroupS3",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/SchemaJson"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        },
        {
            "Sid": "AgentKnowledgeBaseQuery",
            "Effect": "Allow",
            "Action": [
                "bedrock:Retrieve",
                "bedrock:RetrieveAndGenerate"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/knowledge-base-id"
            ]
        },
        {
            "Sid": "Agent3PKnowledgeBase",
            "Effect": "Allow",
            "Action": [
                "bedrock:AssociateThirdPartyKnowledgeBase"
            ],
            "Resource": "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/knowledge-base-id",
            "Condition": {
                "StringEquals": {
                    "bedrock:ThirdPartyKnowledgeBaseCredentialsSecretArn": "arn:aws:kms:us-east-1:123456789012:key/KeyId"
                }
            }
        },
        {
            "Sid": "AgentPromptManagementConsole",
            "Effect": "Allow",
            "Action": [
                "bedrock:GetPrompt"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:prompt/prompt-id"
            ]
        }
    ]
}
```

------

## (선택 사항) Amazon Bedrock이 에이전트 별칭과 함께 프로비저닝된 처리량을 사용하도록 허용하는 ID 기반 정책
<a name="agents-permissions-pt"></a>

[프로비저닝된 처리량](prov-throughput.md)을 에이전트의 별칭과 연결하는 경우 서비스 역할에 다음 ID 기반 정책을 연결하거나 [에이전트 서비스 역할에 대한 자격 증명 기반 권한](#agents-permissions-identity)의 정책에 설명을 추가합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {        
        "Sid": "UseProvisionedThroughput",
        "Effect": "Allow",
        "Action": [
            "bedrock:InvokeModel", 
            "bedrock:GetProvisionedModelThroughput"
        ],
        "Resource": [
            "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/${provisioned-model-id}"
        ]
      }
    ]
}
```

------

## (선택 사항) Amazon Bedrock이 에이전트 공동 작업자를 연결하고 간접 호출하도록 허용하는 자격 증명 기반 정책
<a name="agents-permissions-mac"></a>

[다중 에이전트 협업](agents-multi-agent-collaboration.md)을 활성화하는 경우 다음 자격 증명 기반 정책을 서비스 역할에 연결하거나 [에이전트 서비스 역할에 대한 자격 증명 기반 권한](#agents-permissions-identity)의 정책에 문을 추가합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AmazonBedrockAgentMultiAgentsPolicyProd",
            "Effect": "Allow",
            "Action": [
                "bedrock:GetAgentAlias",
                "bedrock:InvokeAgent"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:agent-alias/${agent-id}/${agent-alias-id}"
            ]
        }
    ]
}
```

------

## (선택 사항) Amazon Bedrock이 에이전트에서 가드레일을 사용하도록 허용하는 ID 기반 정책
<a name="agents-permissions-gr"></a>

[가드레일](guardrails.md)을 에이전트에 연결하는 경우 다음 ID 기반 정책을 서비스 역할에 연결하거나 [에이전트 서비스 역할에 대한 자격 증명 기반 권한](#agents-permissions-identity)의 정책에 설명을 추가합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ApplyGuardrail",
            "Effect": "Allow",
            "Action": "bedrock:ApplyGuardrail",
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:guardrail/${guardrail-id}"
            ]
        }
    ]
}
```

------

## (선택 사항) Amazon Bedrock이 코드 해석에 사용할 S3의 파일에 액세스할 수 있도록 허용하는 ID 기반 정책
<a name="agents-permissions-files-ci"></a>

[Amazon Bedrock에서 코드 해석 활성화](agents-enable-code-interpretation.md)하는 경우 다음 ID 기반 정책을 서비스 역할에 연결하거나 [에이전트 서비스 역할에 대한 ID 기반 권한](https://docs.aws.amazon.com//bedrock/latest/userguide/agents-permissions.html#agents-permissions-identity)의 정책에 설명을 추가합니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
      {       
        "Sid": "AmazonBedrockAgentFileAccess", 
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:GetObjectVersionAttributes",
            "s3:GetObjectAttributes"
        ],
        "Resource": [
            "arn:aws:s3:::[[customerProvidedS3BucketWithKey]]"
        ]
      }
    ]
}
```

------

## Amazon Bedrock이 작업 그룹 Lambda 함수를 간접적으로 호출하도록 허용하는 리소스 기반 정책
<a name="agents-permissions-lambda"></a>

[Lambda에 리소스 기반 정책 사용](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html)의 단계에 따라 다음 리소스 기반 정책을 Lambda 함수에 연결하여 Amazon Bedrock이 에이전트의 작업 그룹에 대한 Lambda 함수에 액세스하도록 허용하고 필요에 따라 *\$1\$1values\$1*를 대체합니다. 이 정책에는 보안 모범 사례로 사용할 것을 권장하는 선택적 조건 키([Amazon Bedrock의 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys) 및 [AWS 전역 조건 컨텍스트 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys) 참조)가 `Condition` 필드에 포함되어 있습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AccessLambdaFunction",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:us-east-1:123456789012:function:function-name",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "AWS:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}"
                }
            }
        }
    ]
}
```

------

# Amazon Bedrock Knowledge Bases에 대한 서비스 역할 생성
<a name="kb-permissions"></a>

Amazon Bedrock이 자동으로 생성하는 역할 대신 지식 기반에 사용자 지정 역할을 사용하려면 [AWS 서비스에 권한을 위임할 역할 생성의 단계에 따라 IAM 역할을 생성하고 다음 권한을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) 연결합니다. 자체 보안에 필요한 권한만 포함합니다.

**참고**  
서비스 역할을 사용할 때는 여러 역할 간에 정책을 공유할 수 없습니다.
+ 신뢰 관계
+ Amazon Bedrock 기본 모델에 대한 액세스
+ 데이터를 저장하는 데이터 소스에 대한 액세스 권한
+ (Amazon OpenSearch Service에서 벡터 데이터베이스를 생성할 경우) Amazon OpenSearch Service 컬렉션에 대한 액세스 권한
+ (Amazon Aurora에서 벡터 데이터베이스를 만드는 경우) Aurora 클러스터에 대한 액세스 권한
+ ( Pinecone 또는에서 벡터 데이터베이스를 생성하는 경우Redis Enterprise Cloud)가 Pinecone 또는 Redis Enterprise Cloud 계정을 인증 AWS Secrets Manager 할 수 있는 권한
+ (선택 사항) KMS 키로 다음 리소스 중 하나를 암호화하는 경우 키를 복호화할 수 있는 권한([지식 기반 리소스 암호화](encryption-kb.md) 참조)
  + 지식 기반
  + 지식 기반용 데이터 소스
  + Amazon OpenSearch Service의 벡터 데이터베이스
  + 에서 타사 벡터 데이터베이스의 보안 암호 AWS Secrets Manager
  + 데이터 수집 작업

**Topics**
+ [신뢰 관계](#kb-permissions-trust)
+ [Amazon Bedrock 모델에 액세스할 수 있는 권한](#kb-permissions-access-models)
+ [데이터 소스에 액세스할 수 있는 권한](#kb-permissions-access-ds)
+ [Amazon S3에서 암호화된 데이터 소스의 AWS KMS 키를 해독할 수 있는 권한](#kb-permissions-kms-datasource)
+ [문서와의 채팅에 대한 권한](#kb-permissions-chatdoc)
+ [멀티모달 콘텐츠에 대한 권한](#kb-permissions-multimodal)
+ [Amazon Kendra GenAI 인덱스에 액세스할 수 있는 권한](#kb-permissions-kendra)
+ [Amazon OpenSearch Serverless의 벡터 데이터베이스에 액세스할 수 있는 권한](#kb-permissions-oss)
+ [OpenSearch 관리형 클러스터에서 벡터 데이터베이스에 액세스할 수 있는 권한](#kb-permissions-osm)
+ [Amazon Aurora 데이터베이스 클러스터에 액세스할 수 있는 권한](#kb-permissions-rds)
+ [Amazon Neptune Analytics에서 벡터 데이터베이스에 액세스할 수 있는 권한](#kb-permissions-neptune)
+ [Amazon S3 Vectors의 벡터 스토어에 액세스할 수 있는 권한](#kb-permissions-s3vectors)
+ [AWS Secrets Manager 보안 암호로 구성된 벡터 데이터베이스에 액세스할 수 있는 권한](#kb-permissions-secret)
+ [AWS 가 데이터 수집 중에 임시 데이터 스토리지의 AWS KMS 키를 관리할 수 있는 권한](#kb-permissions-kms-ingestion)
+ [AWS 가 다른 사용자의 AWS 계정에서 데이터 소스를 관리할 수 있는 권한.](#kb-permissions-otherds)

## 신뢰 관계
<a name="kb-permissions-trust"></a>

다음 정책은 Amazon Bedrock이 이 역할을 맡아 지식 기반을 생성하고 관리할 수 있도록 허용합니다. 아래에서는 사용 가능한 정책 예제를 보여줍니다. 하나 이상의 전역 조건 컨텍스트 키를 사용하여 권한 범위를 제한할 수 있습니다. 자세한 정보는 [AWS 전역 조건 컨텍스트 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)를 참조하세요. `aws:SourceAccount` 값을 계정 ID로 설정합니다. `ArnEquals` 또는 `ArnLike` 조건을 사용하여 범위를 특정 지식 기반으로 제한할 수 있습니다.

**참고**  
보안을 위한 가장 좋은 방법은 지식 기반 ID를 생성한 후 *\$1*를 특정 지식 기반 ID로 바꾸는 것입니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "AWS:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/*"
                }
            }
        }
    ]
}
```

------

## Amazon Bedrock 모델에 액세스할 수 있는 권한
<a name="kb-permissions-access-models"></a>

다음 정책을 연결하여 해당 역할에 Amazon Bedrock 모델을 사용하여 소스 데이터를 포함할 수 있는 권한을 제공합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:ListFoundationModels",
                "bedrock:ListCustomModels"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-embed-text-v1",
                "arn:aws:bedrock:us-east-1::foundation-model/cohere.embed-english-v3",
                "arn:aws:bedrock:us-east-1::foundation-model/cohere.embed-multilingual-v3"
            ]
        }
    ]
}
```

------

## 데이터 소스에 액세스할 수 있는 권한
<a name="kb-permissions-access-ds"></a>

다음 데이터 소스 중에서 선택하여 역할에 필요한 권한을 연결합니다.

**Topics**
+ [Amazon S3 데이터 소스에 액세스할 수 있는 권한](#kb-permissions-access-s3)
+ [Confluence 데이터 소스에 액세스할 수 있는 권한](#kb-permissions-access-confluence)
+ [Microsoft SharePoint 데이터 소스에 액세스할 수 있는 권한](#kb-permissions-access-sharepoint)
+ [Salesforce 데이터 소스에 액세스할 수 있는 권한](#kb-permissions-access-salesforce)

### Amazon S3 데이터 소스에 액세스할 수 있는 권한
<a name="kb-permissions-access-s3"></a>

데이터 소스가 Amazon S3인 경우 다음 정책을 연결하여 데이터 소스로 연결할 S3 버킷에 액세스할 수 있는 권한을 역할에 제공합니다.

 AWS KMS 키로 데이터 소스를 암호화한 경우의 단계에 따라 역할에 키를 해독할 수 있는 권한을 연결합니다[Amazon S3에서 데이터 소스의 AWS KMS 키를 복호화할 수 있는 권한](encryption-kb.md#encryption-kb-ds).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3ListBucketStatement",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        },
        {
            "Sid": "S3GetObjectStatement",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

------

### Confluence 데이터 소스에 액세스할 수 있는 권한
<a name="kb-permissions-access-confluence"></a>

**참고**  
Confluence 데이터 소스 커넥터는 평가판 릴리스로 제공 중이며 변경될 수 있습니다.

다음 정책을 첨부하여 Confluence에 액세스할 수 있는 권한을 역할에 제공합니다.

**참고**  
`secretsmanager:PutSecretValue`는 OAuth 2.0 인증을 새로 고침 토큰과 함께 사용하는 경우에만 필요합니다.  
Confluence OAuth2.0 **액세스** 토큰의 기본 만료 시간은 60분입니다. 데이터 소스가 동기화(동기화 작업)되는 동안 이 토큰이 만료되면 Amazon Bedrock은 제공된 **새로 고침** 토큰을 사용하여 이 토큰을 재생성합니다. 이 재생성은 액세스 토큰과 새로 고침 토큰을 모두 새로 고칩니다. 토큰을 현재 동기화 작업에서 다음 동기화 작업으로 업데이트하려면 Amazon Bedrock에 보안 자격 증명에 대한 쓰기/입력 권한이 필요합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue",
                "secretsmanager:PutSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretId"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/KeyId"
            ],
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "secretsmanager.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

### Microsoft SharePoint 데이터 소스에 액세스할 수 있는 권한
<a name="kb-permissions-access-sharepoint"></a>

**참고**  
SharePoint 데이터 소스 커넥터는 평가판 릴리스로 제공 중이며 변경될 수 있습니다.

다음 정책을 연결하여 SharePoint 에 액세스할 수 있는 권한을 역할에 제공합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretId"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/KeyId"
            ],
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "secretsmanager.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

### Salesforce 데이터 소스에 액세스할 수 있는 권한
<a name="kb-permissions-access-salesforce"></a>

**참고**  
Salesforce 데이터 소스 커넥터는 평가판 릴리스로 제공 중이며 변경될 수 있습니다.

다음 정책을 첨부하여 Salesforce에 액세스할 수 있는 권한을 역할에 제공합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretId"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/KeyId"
            ],
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "secretsmanager.us-east-1.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

## Amazon S3에서 암호화된 데이터 소스의 AWS KMS 키를 해독할 수 있는 권한
<a name="kb-permissions-kms-datasource"></a>

Amazon S3의 데이터 소스를 AWS KMS 키로 암호화한 경우 Amazon Bedrock 지식 기반 서비스 역할에 다음 정책을 연결하여 Amazon Bedrock이 키를 해독하도록 허용합니다. *\$1\$1Region\$1* 및 *\$1\$1AccountId\$1*를 키가 속한 리전 및 계정 ID로 바꿉니다. *\$1\$1KeyId\$1*를 AWS KMS 키 ID로 바꿉니다.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": [
            "arn:aws:kms:${Region}:${AccountId}:key/${KeyId}"
        ],
        "Condition": {
            "StringEquals": {
                "kms:ViaService": [
                    "s3.${Region}.amazonaws.com"
                ]
            }
        }
    }]
}
```

## 문서와의 채팅에 대한 권한
<a name="kb-permissions-chatdoc"></a>

다음 정책을 연결하여 역할이 Amazon Bedrock을 사용해 문서와의 채팅을 수행할 수 있는 권한을 제공합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
			"Effect": "Allow",
			"Action": [
				"bedrock:RetrieveAndGenerate"
			],
			"Resource": "*"
		}
    ]
}
```

------

문서와의 채팅에 대한 사용자 액세스 권한만 부여하려면(모든 지식 기반에 대한 `RetrieveAndGenerate` 액세스는 부여하지 않음) 다음 정책을 사용합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
			"Effect": "Allow",
			"Action": [
				"bedrock:RetrieveAndGenerate"
			],
			"Resource": "*"
		},
        {
			"Effect": "Deny",
			"Action": [
				"bedrock:Retrieve"
			],
			"Resource": "*"
		}
    ]
}
```

------

문서와의 채팅과 특정 지식 기반에서 대한 `RetrieveAndGenerate` 액세스 권한을 모두 부여하려면 *\$1\$1KnowledgeBaseArn\$1*을 제공하고 다음 정책을 사용합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:RetrieveAndGenerate"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:Retrieve"
            ],
            "Resource": "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/$KnowledgeBaseId"
        }
    ]
}
```

------

## 멀티모달 콘텐츠에 대한 권한
<a name="kb-permissions-multimodal"></a>

멀티모달 콘텐츠(이미지, 오디오, 비디오)로 작업할 때는 처리 접근 방식에 따라 추가 권한이 필요합니다.

### Nova 멀티모달 임베딩 권한
<a name="kb-permissions-multimodal-mme"></a>

Nova 멀티모달 임베딩을 사용하는 경우 다음 정책을 연결하여 비동기 모델 호출에 대한 권한을 제공합니다.

```
{
    "Sid": "BedrockInvokeModelStatement",
    "Effect": "Allow",
    "Action": ["bedrock:InvokeModel"],
    "Resource": [
        "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-*-multimodal-embeddings-*",
        "arn:aws:bedrock:us-east-1::async-invoke/*"
    ],
    "Condition": {
        "StringEquals": {
            "aws:ResourceAccount": ""
        }
    }
},
{
    "Sid": "BedrockGetAsyncInvokeStatement",
    "Effect": "Allow",
    "Action": ["bedrock:GetAsyncInvoke"],
    "Resource": ["arn:aws:bedrock:us-east-1::async-invoke/*"],
    "Condition": {
        "StringEquals": {
            "aws:ResourceAccount": ""
        }
    }
}
```

### Bedrock Data Automation(BDA) 권한
<a name="kb-permissions-multimodal-bda"></a>

BDA를 사용하여 멀티모달 콘텐츠를 처리할 때 다음 정책을 연결합니다.

```
{
    "Sid": "BDAInvokeStatement",
    "Effect": "Allow",
    "Action": ["bedrock:InvokeDataAutomationAsync"],
    "Resource": [
        "arn:aws:bedrock:us-east-1:aws:data-automation-project/public-rag-default",
        "arn:aws:bedrock:us-east-1::data-automation-profile/*"
    ]
},
{
    "Sid": "BDAGetStatement",
    "Effect": "Allow",
    "Action": ["bedrock:GetDataAutomationStatus"],
    "Resource": "arn:aws:bedrock:us-east-1::data-automation-invocation/*"
}
```

BDA에서 고객 관리형 AWS KMS 키를 사용하는 경우 다음 정책도 연결합니다. *account-id*, *region* 및 *key-id*를 특정 값으로 바꿉니다.

```
{
    "Sid": "KmsPermissionStatementForBDA",
    "Effect": "Allow",
    "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt",
        "kms:DescribeKey",
        "kms:CreateGrant"
    ],
    "Resource": ["arn:aws:kms:region:account-id:key/key-id"],
    "Condition": {
        "StringEquals": {
            "aws:ResourceAccount": "account-id",
            "kms:ViaService": "bedrock.region.amazonaws.com"
        }
    }
}
```

## Amazon Kendra GenAI 인덱스에 액세스할 수 있는 권한
<a name="kb-permissions-kendra"></a>

지식 기반에 Amazon Kendra GenAI 인덱스를 생성한 경우, Amazon Bedrock Knowledge Bases 서비스 역할에 다음 정책을 연결하여 인덱스에 대한 액세스를 허용합니다. 정책에서 *\$1\$1Partition\$1*, *\$1\$1Region\$1*, *\$1\$1AccountId\$1* 및 *\$1\$1IndexId\$1*을(를) 인덱스 값으로 바꿉니다. `Resource` 목록에 이를 추가하면 여러 인덱스에 대한 액세스를 허용할 수 있습니다. 의 모든 인덱스에 대한 액세스를 허용하려면 *\$1\$1IndexId\$1*를 와일드카드(\$1)로 AWS 계정바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kendra:Retrieve",
                "kendra:DescribeIndex"
            ],
            "Resource": "arn:aws:kendra:us-east-1:123456789012:index/${IndexId}" 
        }
    ]
}
```

------

## Amazon OpenSearch Serverless의 벡터 데이터베이스에 액세스할 수 있는 권한
<a name="kb-permissions-oss"></a>

OpenSearch Serverless에서 지식 기반에 사용할 벡터 데이터베이스를 생성한 경우, Amazon Bedrock Knowledge Bases 서비스 역할에 다음 정책을 연결하여 에 대한 액세스를 허용합니다. *\$1\$1Region\$1* 및 *\$1\$1AccountId\$1*을(를) 데이터베이스가 속한 리전 및 계정 ID로 바꿉니다. *\$1\$1CollectionId\$1*에 Amazon OpenSearch Service 컬렉션의 ID를 입력합니다. `Resource` 목록에 컬렉션을 추가하면 여러 컬렉션에 대한 액세스를 허용할 수 있습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "aoss:APIAccessAll"
            ],
            "Resource": [
                "arn:aws:aoss:us-east-1:123456789012:collection/${CollectionId}"
            ]
        }
    ]
}
```

------

## OpenSearch 관리형 클러스터에서 벡터 데이터베이스에 액세스할 수 있는 권한
<a name="kb-permissions-osm"></a>

OpenSearch 관리형 클러스터에서 지식 기반에 사용할 벡터 데이터베이스를 생성한 경우, Amazon Bedrock Knowledge Bases 서비스 역할에 다음 정책을 연결하여 도메인에 대한 액세스를 허용합니다. *<region>* 및 *<accountId>*을(를) 데이터베이스가 속한 리전 및 계정 ID로 바꿉니다. `Resource` 목록에 이를 추가하면 여러 도메인에 대한 액세스를 허용할 수 있습니다. 권한 설정에 대한 자세한 정보는 [Amazon Bedrock Knowledge Bases에서 OpenSearch 관리형 클러스터를 사용하는 데 필요한 사전 조건 및 권한권한 구성 개요](kb-osm-permissions-prereq.md) 섹션을 참조하세요.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",       
            "Action": [
                "es:ESHttpGet", 
                "es:ESHttpPost", 
                "es:ESHttpPut", 
                "es:ESHttpDelete" 
            ],
            "Resource": [
                "arn:aws:es:us-east-1:123456789012:domain/domainName/indexName"
            ]       
        }, 
        {
            "Effect": "Allow",
            "Action": [
                "es:DescribeDomain" 
            ],
            "Resource": [
                "arn:aws:es:us-east-1:123456789012:domain/domainName"
            ]       
        }
    ]
}
```

------

## Amazon Aurora 데이터베이스 클러스터에 액세스할 수 있는 권한
<a name="kb-permissions-rds"></a>

**참고**  
Amazon Aurora 클러스터는 Amazon Bedrock에 대한 지식 기반이 생성된 AWS 계정 클러스터와 동일한에 있어야 합니다.

Amazon Aurora에서 지식 기반용으로 데이터베이스(DB) 클러스터를 만든 경우 Amazon Bedrock Knowledge Bases 서비스 역할에 다음 정책을 연결하여 DB 클러스터에 대한 액세스를 허용하고 읽고 쓰는 권한을 제공합니다. *\$1\$1Region\$1* 및 *\$1\$1AccountId\$1*을(를) DB 클러스터가 속한 리전 및 계정 ID로 바꿉니다. *\$1\$1DbClusterId\$1*에 Amazon Aurora 데이터베이스 클러스터의 ID를 입력합니다. `Resource` 목록에 이를 추가하면 여러 DB 클러스터에 대한 액세스를 허용할 수 있습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RdsDescribeStatementID",
            "Effect": "Allow",
            "Action": [
                "rds:DescribeDBClusters"
            ],
            "Resource": [
                "arn:aws:rds:us-east-1:123456789012:cluster:${DbClusterId}"
            ]
        },
        {
            "Sid": "DataAPIStatementID",
            "Effect": "Allow",
            "Action": [
                "rds-data:BatchExecuteStatement",
                "rds-data:ExecuteStatement"
            ],
            "Resource": [
                "arn:aws:rds:us-east-1:123456789012:cluster:${DbClusterId}"
            ]
        }
    ]
}
```

------

## Amazon Neptune Analytics에서 벡터 데이터베이스에 액세스할 수 있는 권한
<a name="kb-permissions-neptune"></a>

지식 기반에 사용할 Amazon Neptune Analytics 그래프를 생성한 경우, Amazon Bedrock Knowledge Bases 서비스 역할에 다음 정책을 연결하여 그래프에 대한 액세스를 허용합니다. 정책에서 *\$1\$1Region\$1* 및 *\$1\$1AccountId\$1*을(를) 데이터베이스가 속한 리전 및 계정 ID로 바꿉니다. *\$1\$1GraphId\$1*을(를) 그래프 데이터베이스의 값으로 바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "NeptuneAnalyticsAccess",
            "Effect": "Allow",
            "Action": [
                "neptune-graph:GetGraph",
                "neptune-graph:ReadDataViaQuery",
                "neptune-graph:WriteDataViaQuery",
                "neptune-graph:DeleteDataViaQuery"
            ],
            "Resource": [
                "arn:aws:neptune-graph:us-east-1:123456789012:graph/${GraphId}"
            ]
        }
    ]
}
```

------

## Amazon S3 Vectors의 벡터 스토어에 액세스할 수 있는 권한
<a name="kb-permissions-s3vectors"></a>

지식 기반에 사용할 Amazon S3 Vectors를 생성한 경우, Amazon Bedrock Knowledge Bases 서비스 역할에 다음 정책을 연결하여 벡터 인덱스에 대한 액세스를 허용합니다.

정책에서 *\$1\$1Region\$1* 및 *\$1\$1AccountId\$1*을(를) 벡터 인덱스가 속한 리전 및 계정 ID로 바꿉니다. *\$1\$1BucketName\$1*을(를) S3 벡터 버킷 이름으로 바꾸고 *\$1\$1IndexName\$1*을(를) 벡터 인덱스 이름으로 바꿉니다. Amazon S3 Vectors에 대한 자세한 내용은 [Amazon S3 Vectors를 사용하도록 설정](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-setting-up.html)을 참조하세요.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3VectorBucketReadAndWritePermission",
            "Effect": "Allow",
            "Action": [
                "s3vectors:PutVectors",
                "s3vectors:GetVectors",
                "s3vectors:DeleteVectors",
                "s3vectors:QueryVectors",
                "s3vectors:GetIndex"
            ],
            "Resource": "arn:aws:s3vectors:us-east-1:123456789012:bucket/${BucketName}/index/${IndexName}"
        }
    ]
}
```

------

## AWS Secrets Manager 보안 암호로 구성된 벡터 데이터베이스에 액세스할 수 있는 권한
<a name="kb-permissions-secret"></a>

벡터 데이터베이스가 AWS Secrets Manager 보안 암호로 구성된 경우 Amazon Bedrock 지식 기반 서비스 역할에 다음 정책을 연결하여 AWS Secrets Manager 가 데이터베이스에 액세스하기 위해 계정을 인증할 수 있도록 합니다. *\$1\$1Region\$1* 및 *\$1\$1AccountId\$1*을(를) 데이터베이스가 속한 리전 및 계정 ID로 바꿉니다. *\$1\$1SecretId\$1*을(를) 보안 암호의 ID로 바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:123456789012:secret:${SecretId}"
            ]
        }
    ]
}
```

------

 AWS KMS 키로 보안 암호를 암호화한 경우의 단계에 따라 역할에 키를 해독할 수 있는 권한을 연결합니다[지식 기반이 포함된 벡터 저장소의 AWS Secrets Manager 보안 암호를 해독할 수 있는 권한](encryption-kb.md#encryption-kb-3p).

## AWS 가 데이터 수집 중에 임시 데이터 스토리지의 AWS KMS 키를 관리할 수 있는 권한
<a name="kb-permissions-kms-ingestion"></a>

데이터 소스를 수집하는 과정에서 임시 데이터 스토리지용 AWS KMS 키를 생성할 수 있도록 하려면 Amazon Bedrock 지식 기반 서비스 역할에 다음 정책을 연결합니다. *\$1\$1Region\$1*, *\$1\$1AccountId\$1*, *\$1\$1KeyId\$1*을(를) 적절한 값으로 바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/${KeyId}"
            ]
        }
    ]
}
```

------

## AWS 가 다른 사용자의 AWS 계정에서 데이터 소스를 관리할 수 있는 권한.
<a name="kb-permissions-otherds"></a>

다른 사용자의 AWS 계정에 대한 액세스를 허용하려면 다른 사용자의 계정에서 Amazon S3 버킷에 대한 교차 계정 액세스를 허용하는 역할을 생성해야 합니다. *\$1\$1BucketName\$1*, *\$1\$1BucketOwnerAccountId\$1*, *\$1\$1BucketNameAndPrefix\$1*을(를) 적절한 값으로 바꿉니다.

**지식 기반 역할에 필요한 권한**

지식 기반을 만드는 과정에서 제공되는 지식 기반 역할인 `createKnowledgeBase`에는 다음과 같은 Amazon S3 권한이 필요합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3ListBucketStatement",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        },
        {
            "Sid": "S3GetObjectStatement",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

------

Amazon S3 버킷이 AWS KMS 키를 사용하여 암호화된 경우 지식 기반 역할에 다음 항목도 추가해야 합니다. *\$1\$1BucketOwnerAccountId\$1* 및 *\$1\$1Region\$1*을(를) 적절한 값으로 바꿉니다.

```
{
        "Sid": "KmsDecryptStatement",
        "Effect": "Allow",
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": [
            "arn:aws:kms:${Region}:${BucketOwnerAccountId}:key/${KeyId}"
        ],
        "Condition": {
        "StringEquals": {
            "kms:ViaService": [
                "s3.${Region}.amazonaws.com"
            ]
        }
        }
    }
```

**교차 계정 Amazon S3 버킷 정책에 필요한 권한**

다른 계정의 버킷에는 다음과 같은 Amazon S3 버킷 정책이 필요합니다. *\$1\$1KbRoleArn\$1*, *\$1\$1BucketName\$1*, *\$1\$1BucketNameAndPrefix\$1*을(를) 적절한 값으로 바꿉니다.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "ListBucket",
         "Effect": "Allow",
         "Principal": {
            "AWS": "123456789012"
         },
         "Action": [
            "s3:ListBucket"
         ],
         "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket"
         ]
      },
      {
         "Sid": "GetObject",
         "Effect": "Allow",
         "Principal": {
            "AWS": "123456789012"
         },
         "Action": [
            "s3:GetObject"
         ],
         "Resource": [
            "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
      }
   ]
}
```

------

**교차 계정 AWS KMS 키 정책에 필요한 권한**

교차 계정 Amazon S3 버킷이 해당 계정의 AWS KMS 키를 사용하여 암호화된 경우 키의 AWS KMS 정책에는 다음 정책이 필요합니다. *\$1\$1KbRoleArn\$1* 및 *\$1\$1KmsKeyArn\$1*을(를) 적절한 값으로 바꿉니다.

```
{
    "Sid": "Example policy",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "${KbRoleArn}"
        ]
    },
    "Action": [
        "kms:Decrypt"
    ],
    "Resource": "${KmsKeyArn}"
}
```

# Amazon Bedrock에서 Amazon Bedrock Flows의 서비스 역할 생성
<a name="flows-permissions"></a>

Amazon Bedrock에서 흐름을 만들고 관리하려면 이 페이지에 설명된 필수 권한이 있는 서비스 역할을 사용해야 합니다. Amazon Bedrock이 콘솔에서 자동으로 생성하는 서비스 역할을 사용하거나 직접 사용자 지정한 역할을 사용할 수 있습니다.

**참고**  
Amazon Bedrock이 콘솔에서 자동으로 생성하는 서비스 역할을 사용하는 경우, 흐름에 노드를 추가하고 흐름을 저장하면 동적으로 권한이 연결됩니다. 그러나 노드를 제거하면 권한이 삭제되지 않으므로 더 이상 필요하지 않은 권한을 삭제해야 합니다. 사용자를 위해 생성된 역할에 대한 권한을 관리하려면 IAM 사용자 안내서의 [역할 수정](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) 단계를 따르세요.

Amazon Bedrock Flows에 대한 사용자 지정 서비스 역할을 생성하려면 [AWS서비스에 권한을 위임할 역할 생성의 단계에 따라 IAM 역할을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) 생성합니다. 그런 다음, 역할에 다음과 같은 권한을 연결합니다.
+ 신뢰 정책
+ 다음의 ID 기반 권한:
  + 흐름에서 사용할 Amazon Bedrock 기본 모델에 대한 액세스 권한. 흐름에 사용되는 각 모델을 `Resource` 목록에 추가합니다.
  + 프로비저닝된 처리량을 사용하여 모델을 간접적으로 호출하는 경우, 프로비저닝된 모델에 액세스하고 간접적으로 호출할 수 있는 권한. 흐름에 사용되는 각 모델을 `Resource` 목록에 추가합니다.
  + 사용자 지정 모델을 간접적으로 호출하는 경우, 사용자 지정 모델에 액세스하고 이를 간접적으로 호출할 수 있는 권한. 흐름에 사용되는 각 모델을 `Resource` 목록에 추가합니다.
  + 흐름에 추가하는 노드를 기반으로 하는 권한:
    + 프롬프트 관리의 프롬프트를 사용하는 프롬프트 노드를 포함하는 경우, 프롬프트에 액세스할 수 있는 권한이 필요합니다. 흐름에 사용되는 각 프롬프트를 `Resource` 목록에 추가합니다.
    + 지식 기반 노드를 포함하는 경우, 지식 기반을 쿼리할 수 있는 권한이 필요합니다. 흐름에서 쿼리된 각 지식 기반을 `Resource` 목록에 추가합니다.
    + 에이전트 노드를 포함하는 경우, 에이전트의 별칭을 간접적으로 호출할 수 있는 권한이 필요합니다. 흐름에서 간접적으로 호출된 각 에이전트를 `Resource` 목록에 추가합니다.
    + S3 검색 노드를 포함하는 경우, 데이터를 검색할 Amazon S3 버킷에 액세스할 수 있는 권한이 필요합니다. 데이터가 검색되는 각 버킷을 `Resource` 목록에 추가합니다.
    + S3 스토리지 노드를 포함하는 경우, 출력 데이터가 저장될 Amazon S3 버킷에 쓸 수 있는 권한이 필요합니다. 데이터가 기록되는 각 버킷을 `Resource` 목록에 추가합니다.
    + 지식 기반 노드 또는 프롬프트 노드에 대한 가드레일을 포함하는 경우 흐름에 가드레일을 적용할 수 있는 권한이 필요합니다. 흐름에 사용되는 각 가드레일을 `Resource` 목록에 추가합니다.
    + Lambda 노드를 포함하는 경우 Lambda 함수를 간접적으로 호출할 수 있는 권한이 필요합니다. 간접적으로 호출해야 하는 각 Lambda 함수를 `Resource` 목록에 추가합니다.
    + Amazon Lex 노드를 포함하는 경우 Amazon Lex 봇을 사용할 수 있는 권한이 필요합니다. 사용해야 하는 각 봇 별칭을 `Resource` 목록에 추가합니다.
    + 흐름에서 간접적으로 호출된 리소스를 암호화한 경우 키를 복호화할 수 있는 권한이 필요합니다. 각 키를 `Resource` 목록에 추가합니다.
+ 또한, 흐름을 암호화하는 경우 흐름을 암호화하는 데 사용할 KMS 키에 키 정책을 연결해야 합니다.

**참고**  
최근에 구현된 변경 사항은 다음과 같습니다.  
이전에AWS Lambda는 및 Amazon Lex 리소스가 Amazon Bedrock 서비스 보안 주체를 사용하여 호출되었습니다. 이 동작은 2024-11-22 이후에 생성된 흐름에 대해 변경되고 있으며 Amazon Bedrock Flows 서비스 역할은 AWS Lambda및 Amazon Lex 리소스를 호출하는 데 사용됩니다. 2024-11-22 이전에 이러한 리소스 중 하나를 사용하는 흐름을 생성한 경우 Amazon Bedrock Flows 서비스 역할을 AWS Lambda및 Amazon Lex 권한으로 업데이트해야 합니다.
이전에는 `bedrock:GetPrompt` 작업을 사용하여 프롬프트 관리 리소스가 렌더링되었습니다. 이 동작은 2024년 11월 22일 이후에 생성된 흐름에 대해 변경되며 `bedrock:RenderPrompt` 작업은 프롬프트 리소스를 렌더링하는 데 사용됩니다. 2024년 11월 22일 이전에 프롬프트 리소스를 사용하는 흐름을 생성한 경우 Amazon Bedrock Flows 서비스 역할을 `bedrock:RenderPrompt` 권한으로 업데이트해야 합니다.
Amazon Bedrock이 콘솔에서 자동으로 생성한 서비스 역할을 사용하는 경우, 흐름에 노드를 추가하고 흐름을 저장하면 동적으로 권한이 연결됩니다.

**Topics**
+ [신뢰 관계](#flows-permissions-trust)
+ [흐름 서비스 역할에 대한 ID 기반 권한입니다.](#flows-permissions-identity)

## 신뢰 관계
<a name="flows-permissions-trust"></a>

Amazon Bedrock이 이 역할을 수임하고 프롬프트 흐름을 관리할 수 있도록 다음 신뢰 정책을 흐름 실행 역할에 연결합니다. 필요에 따라 *값*을 바꿉니다. 이 정책에는 보안 모범 사례로 사용할 것을 권장하는 선택적 조건 키([Amazon Bedrock의 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys) 및 [AWS 전역 조건 컨텍스트 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys) 참조)가 `Condition` 필드에 포함되어 있습니다.

**참고**  
흐름 ID를 생성한 후 *\$1*를 흐름 ID로 바꾸는 것이 좋습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "FlowsTrustBedrock",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "AWS:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:flow/*"
                }
            }
        }
    ]
}
```

------

## 흐름 서비스 역할에 대한 ID 기반 권한입니다.
<a name="flows-permissions-identity"></a>

다음 정책을 연결하여 서비스 역할에 대한 권한을 제공하고 필요에 따라 *값*을 바꿉니다. 정책에는 다음과 같은 설명이 포함되어 있습니다. 사용 사례에 해당되지 않는 설명은 생략합니다. 이 정책에는 보안 모범 사례로 사용할 것을 권장하는 선택적 조건 키([Amazon Bedrock의 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys) 및 [AWS 전역 조건 컨텍스트 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys) 참조)가 `Condition` 필드에 포함되어 있습니다.
+ 흐름에서 사용할 Amazon Bedrock 기본 모델에 대한 액세스 권한. 흐름에 사용되는 각 모델을 `Resource` 목록에 추가합니다.
+ 프로비저닝된 처리량을 사용하여 모델을 간접적으로 호출하는 경우, 프로비저닝된 모델에 액세스하고 간접적으로 호출할 수 있는 권한. 흐름에 사용되는 각 모델을 `Resource` 목록에 추가합니다.
+ 사용자 지정 모델을 간접적으로 호출하는 경우, 사용자 지정 모델에 액세스하고 이를 간접적으로 호출할 수 있는 권한. 흐름에 사용되는 각 모델을 `Resource` 목록에 추가합니다.
+ 흐름에 추가하는 노드를 기반으로 하는 권한:
  + 프롬프트 관리의 프롬프트를 사용하는 프롬프트 노드를 포함하는 경우, 프롬프트에 액세스할 수 있는 권한이 필요합니다. 흐름에 사용되는 각 프롬프트를 `Resource` 목록에 추가합니다.
  + 지식 기반 노드를 포함하는 경우, 지식 기반을 쿼리할 수 있는 권한이 필요합니다. 흐름에서 쿼리된 각 지식 기반을 `Resource` 목록에 추가합니다.
  + 에이전트 노드를 포함하는 경우, 에이전트의 별칭을 간접적으로 호출할 수 있는 권한이 필요합니다. 흐름에서 간접적으로 호출된 각 에이전트를 `Resource` 목록에 추가합니다.
  + S3 검색 노드를 포함하는 경우, 데이터를 검색할 Amazon S3 버킷에 액세스할 수 있는 권한이 필요합니다. 데이터가 검색되는 각 버킷을 `Resource` 목록에 추가합니다.
  + S3 스토리지 노드를 포함하는 경우, 출력 데이터가 저장될 Amazon S3 버킷에 쓸 수 있는 권한이 필요합니다. 데이터가 기록되는 각 버킷을 `Resource` 목록에 추가합니다.
  + 지식 기반 노드 또는 프롬프트 노드에 대한 가드레일을 포함하는 경우 흐름에 가드레일을 적용할 수 있는 권한이 필요합니다. 흐름에 사용되는 각 가드레일을 `Resource` 목록에 추가합니다.
  + Lambda 노드를 포함하는 경우 Lambda 함수를 간접적으로 호출할 수 있는 권한이 필요합니다. 간접적으로 호출해야 하는 각 Lambda 함수를 `Resource` 목록에 추가합니다.
  + Amazon Lex 노드를 포함하는 경우 Amazon Lex 봇을 사용할 수 있는 권한이 필요합니다. 사용해야 하는 각 봇 별칭을 `Resource` 목록에 추가합니다.
  + 흐름에서 간접적으로 호출된 리소스를 암호화한 경우 키를 복호화할 수 있는 권한이 필요합니다. 각 키를 `Resource` 목록에 추가합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "InvokeModel",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/ModelId"
            ]
        },
        {
            "Sid": "InvokeProvisionedThroughput",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:GetProvisionedModelThroughput"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/ModelId"
            ]
        },
        {
            "Sid": "InvokeCustomModel",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:GetCustomModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:custom-model/ModelId"
            ]
        },
        {
            "Sid": "UsePromptFromPromptManagement",
            "Effect": "Allow",
            "Action": [
                "bedrock:RenderPrompt"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:prompt/PromptId"
            ]
        },
        {
            "Sid": "QueryKnowledgeBase",
            "Effect": "Allow",
            "Action": [
                "bedrock:Retrieve"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/KnowledgeBaseId"
            ]
        },
        {
            "Sid": "InvokeAgent",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeAgent"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:agent-alias/AgentId/AgentAliasId"
            ]
        },
        {
            "Sid": "AccessS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        },
        {
            "Sid": "WriteToS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        },
        {
            "Sid": "GuardrailPermissions",
            "Effect": "Allow",
            "Action": [
                "bedrock:ApplyGuardrail"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:guardrail/GuardrailId"
            ]
        },
        {
            "Sid": "LambdaPermissions",
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:us-east-1:123456789012:function:FunctionId"
            ]
        },
        {
            "Sid": "AmazonLexPermissions",
            "Effect": "Allow",
            "Action": [
                "lex:RecognizeUtterance"
            ],
            "Resource": [ 
                "arn:aws:lex:us-east-1:123456789012:bot-alias/BotId/BotAliasId"
            ]
        },
        {
            "Sid": "KMSPermissions",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:123456789012:key/KeyId"
            ],
             "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

------

# 모델 평가 작업의 서비스 역할 요구 사항
<a name="model-evaluation-security-service-roles"></a>

모델 평가 작업을 생성하려면 서비스 역할을 지정해야 합니다. 서비스 역할은 서비스가 사용자를 대신하여 작업을 수행하는 것으로 가정하는 [IAM 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)입니다. IAM 관리자는 IAM 내에서 서비스 역할을 생성, 수정 및 삭제할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*의 [AWS 서비스 AWS에 권한을 위임할 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)을 참조하세요.

필요한 IAM 작업 및 리소스는 생성 중인 모델 평가 작업 유형에 따라 다릅니다. 다음 섹션을 사용하여 필수 Amazon Bedrock,Amazon SageMaker AI 및 Amazon S3 IAM 작업, 서비스 위탁자 및 리소스에 대해 자세히 알아봅니다. AWS Key Management Service를 사용하여 데이터를 암호화하도록 선택할 수 있습니다.

**Topics**
+ [자동 모델 평가 작업의 서비스 역할 요구 사항](automatic-service-roles.md)
+ [인적 기반 모델 평가 작업의 서비스 역할 요구 사항](model-eval-service-roles.md)
+ [평가자 모델을 사용하는 모델 평가 작업을 생성하는 데 필요한 서비스 역할 권한](judge-service-roles.md)
+ [지식 기반 평가 작업의 서비스 역할 요구 사항](rag-eval-service-roles.md)

# 자동 모델 평가 작업의 서비스 역할 요구 사항
<a name="automatic-service-roles"></a>

자동 모델 평가 작업을 생성하려면 서비스 역할을 지정해야 합니다. 연결하는 정책은 Amazon Bedrock에 사용자 계정의 리소스에 대한 액세스 권한을 부여하고 Amazon Bedrock이 사용자를 대신하여 선택한 모델을 간접 호출하도록 허용합니다.

Amazon Bedrock을 `bedrock.amazonaws.com`을 사용하여 서비스 보안 주체로 정의하는 신뢰 정책도 연결해야 합니다. 다음 각 정책 예제는 자동 모델 평가 작업에서 간접 호출된 각 서비스에 따라 필요한 정확한 IAM 작업을 보여 줍니다.

사용자 지정 서비스 역할을 만들려면 **IAM 사용 설명서의 [사용자 지정 신뢰 정책을 사용하는 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)을 참조하세요.

**필수 Amazon S3 IAM 작업**  
다음 정책 예제는 모델 평가 결과가 저장되는 S3 버킷에 대한 액세스 권한과 필요에 따라 사용자가 지정한 사용자 지정 프롬프트 데이터 세트에 대한 액세스 권한을 부여합니다.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
    {
        "Sid": "AllowAccessToCustomDatasets",
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:ListBucket"
        ],
        "Resource": [
            "arn:aws:s3:::my_customdataset1_bucket",
            "arn:aws:s3:::my_customdataset1_bucket/myfolder",
            "arn:aws:s3:::my_customdataset2_bucket",
            "arn:aws:s3:::my_customdataset2_bucket/myfolder"
        ]
    },
    {
        "Sid": "AllowAccessToOutputBucket",
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:ListBucket",
            "s3:PutObject",
            "s3:GetBucketLocation",
            "s3:AbortMultipartUpload",
            "s3:ListBucketMultipartUploads"
        ],
        "Resource": [
            "arn:aws:s3:::my_output_bucket",
            "arn:aws:s3:::my_output_bucket/myfolder"
        ]
    }
]
}
```

------

**필수 Amazon Bedrock IAM 작업**  
또한 Amazon Bedrock이 자동 모델 평가 작업에서 지정하려는 모델을 간접적으로 호출하도록 허용하는 정책을 생성해야 합니다. Amazon Bedrock에 대한 액세스 관리에 관한 자세한 내용은 [Amazon Bedrock 파운데이션 모델 액세스](model-access.md) 섹션을 참조하세요. 정책의 `"Resource"` 섹션에서 나에게도 액세스 권한이 있는 모델의 ARN을 하나 이상 지정해야 합니다. 고객 관리형 KMS 키로 암호화된 모델을 사용하려면 IAM 서비스 역할 정책에 필요한 IAM 작업 및 리소스를 추가해야 합니다. 또한 AWS KMS키 정책에 서비스 역할을 추가해야 합니다.

------
#### [ JSON ]

****  

```
{
		    "Version":"2012-10-17",		 	 	 
            "Statement": [
        {
            "Sid": "AllowAccessToBedrockResources",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream",
                "bedrock:CreateModelInvocationJob",
                "bedrock:StopModelInvocationJob",
                "bedrock:GetProvisionedModelThroughput",
                "bedrock:GetInferenceProfile", 
                "bedrock:ListInferenceProfiles",
                "bedrock:GetImportedModel",
                "bedrock:GetPromptRouter",
                "sagemaker:InvokeEndpoint"
            ],
            "Resource": [
                "arn:aws:bedrock:*::foundation-model/*",
                "arn:aws:bedrock:*:111122223333:inference-profile/*",
                "arn:aws:bedrock:*:111122223333:provisioned-model/*",
                "arn:aws:bedrock:*:111122223333:imported-model/*",
                "arn:aws:bedrock:*:111122223333:application-inference-profile/*",
                "arn:aws:bedrock:*:111122223333:default-prompt-router/*",
                "arn:aws:sagemaker:*:111122223333:endpoint/*",
                "arn:aws:bedrock:*:111122223333:marketplace/model-endpoint/all-access"
            ]
        }
    ]
}
```

------

**서비스 보안 주체 요구 사항**  
Amazon Bedrock을 서비스 보안 주체로 정의하는 신뢰 정책도 지정해야 합니다. 이렇게 하면 Amazon Bedrock이 역할을 수임할 수 있습니다. Amazon Bedrock이 AWS계정에서 모델 평가 작업을 생성하려면 와일드카드(`*`) 모델 평가 작업 ARN이 필요합니다.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [{
    "Sid": "AllowBedrockToAssumeRole",
    "Effect": "Allow",
    "Principal": {
        "Service": "bedrock.amazonaws.com"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": "111122223333"
        },
        "ArnEquals": {
            "aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:evaluation-job/*"
        }
    }
}]
}
```

------

# 인적 기반 모델 평가 작업의 서비스 역할 요구 사항
<a name="model-eval-service-roles"></a>

평가를 사용하는 모델 평가 작업을 생성하려면 서비스 역할 2개를 지정해야 합니다.

다음 목록에는 Amazon Bedrock 콘솔에서 지정해야 하는 각 필수 서비스 역할에 대한 IAM 정책 요구 사항이 요약되어 있습니다.

**Amazon Bedrock 서비스 역할에 대한 IAM 정책 요구 사항 요약**
+ Amazon Bedrock을 서비스 위탁자로 정의하는 신뢰 정책을 연결해야 합니다.
+ Amazon Bedrock이 사용자를 대신하여 선택한 모델을 간접적으로 호출하도록 허용해야 합니다.
+ Amazon Bedrock이 프롬프트 데이터세트를 보관하는 S3 버킷과 결과를 저장하려는 S3 버킷에 액세스할 수 있도록 허용해야 합니다.
+ Amazon Bedrock이 계정에 필요한 인적 루프 리소스를 생성하도록 허용해야 합니다.
+ (권장) `Condition` *블록*을 사용하여 액세스할 수 있는 계정을 지정합니다.
+ (선택 사항) 결과를 저장하려는 프롬프트 데이터세트 버킷 또는 Amazon S3 버킷을 암호화한 경우 Amazon Bedrock이 KMS 키를 복호화하도록 허용해야 합니다.

**Amazon SageMaker AI 서비스 역할에 대한 IAM 정책 요구 사항 요약**
+ SageMaker AI를 서비스 위탁자로 정의하는 신뢰 정책을 연결해야 합니다.
+ SageMaker AI가 프롬프트 데이터세트를 보관하는 S3 버킷과 결과를 저장하려는 S3 버킷에 액세스할 수 있도록 허용해야 합니다.
+ (선택 사항) 프롬프트 데이터세트 버킷 또는 결과를 저장하려는 위치를 암호화한 경우 SageMaker AI가 고객 관리형 키를 사용하도록 허용해야 합니다.

사용자 지정 서비스 역할을 만들려면 *IAM 사용 설명서*의 [사용자 지정 신뢰 정책을 사용하는 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)을 참조하세요.

**필수 Amazon S3 IAM 작업**  
다음 정책 예제는 모델 평가 결과가 저장되는 S3 버킷에 대한 액세스 권한과 사용자가 지정한 사용자 지정 프롬프트 데이터세트에 대한 액세스 권한을 부여합니다. 이 정책을 SageMaker AI 서비스 역할과 Amazon Bedrock 서비스 역할 모두에 연결해야 합니다.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
    {
        "Sid": "AllowAccessToCustomDatasets",
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:ListBucket"
        ],
        "Resource": [
            "arn:aws:s3:::custom-prompt-dataset"
        ]
    },
    {
        "Sid": "AllowAccessToOutputBucket",
        "Effect": "Allow",
        "Action": [
            "s3:GetObject",
            "s3:ListBucket",
            "s3:PutObject",
            "s3:GetBucketLocation",
            "s3:AbortMultipartUpload",
            "s3:ListBucketMultipartUploads"
        ],
        "Resource": [
            "arn:aws:s3:::model_evaluation_job_output"
        ]
    }
]
}
```

------

**필수 Amazon Bedrock IAM 작업**  
자동 모델 평가 작업에 지정하려는 모델을 Amazon Bedrock이 간접적으로 호출하도록 허용하려면 Amazon Bedrock 서비스 역할에 다음 정책을 연결합니다. 정책의 `"Resource"` 섹션에서 나에게도 액세스 권한이 있는 모델의 ARN을 하나 이상 지정해야 합니다. 고객 관리형 KMS 키로 암호화된 모델을 사용하려면 IAM 서비스 역할에 필요한 IAM 작업 및 리소스를 추가해야 합니다. 필요한 AWS KMS 키 정책 요소도 추가해야 합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAccessToBedrockResources",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream",
                "bedrock:CreateModelInvocationJob",
                "bedrock:StopModelInvocationJob",
                "bedrock:GetProvisionedModelThroughput",
                "bedrock:GetInferenceProfile", 
                "bedrock:ListInferenceProfiles",
                "bedrock:GetImportedModel",
                "bedrock:GetPromptRouter",
                "sagemaker:InvokeEndpoint"
            ],
            "Resource": [
                "arn:aws:bedrock:*::foundation-model/*",
                "arn:aws:bedrock:*:111122223333:inference-profile/*",
                "arn:aws:bedrock:*:111122223333:provisioned-model/*",
                "arn:aws:bedrock:*:111122223333:imported-model/*",
                "arn:aws:bedrock:*:111122223333:application-inference-profile/*",
                "arn:aws:bedrock:*:111122223333:default-prompt-router/*",
                "arn:aws:sagemaker:*:111122223333:endpoint/*",
                "arn:aws:bedrock:*:111122223333:marketplace/model-endpoint/all-access"
            ]
        }
    ]
}
```

------

**필수 Amazon Augmented AI IAM 작업**  
Amazon Bedrock이 인적 기반 모델 평가 작업과 관련된 리소스를 생성할 수 있도록 허용하는 정책도 생성해야 합니다. Amazon Bedrock은 모델 평가 작업을 시작하는 데 필요한 리소스를 생성하므로 반드시 `"Resource": "*"`를 사용해야 합니다. Amazon Bedrock 서비스 역할에 이 정책을 연결해야 합니다.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
    {
        "Sid": "ManageHumanLoops",
        "Effect": "Allow",
        "Action": [
            "sagemaker:StartHumanLoop",
            "sagemaker:DescribeFlowDefinition",
            "sagemaker:DescribeHumanLoop",
            "sagemaker:StopHumanLoop",
            "sagemaker:DeleteHumanLoop"
        ],
        "Resource": "*"
    }
]
}
```

------

**서비스 위탁자 요구 사항(Amazon Bedrock)**  
Amazon Bedrock을 서비스 위탁자로 정의하는 신뢰 정책도 지정해야 합니다. 이렇게 하면 Amazon Bedrock이 역할을 수임할 수 있습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowBedrockToAssumeRole",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:evaluation-job/*"
                }
            }
        }
    ]
}
```

------

**서비스 위탁자 요구 사항(SageMaker AI)**  
Amazon Bedrock을 서비스 위탁자로 정의하는 신뢰 정책도 지정해야 합니다. 이렇게 하면 SageMaker AI가 그 역할을 수임할 수 있습니다.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
{
  "Sid": "AllowSageMakerToAssumeRole",
  "Effect": "Allow",
  "Principal": {
    "Service": "sagemaker.amazonaws.com"
  },
  "Action": "sts:AssumeRole"
}
]
}
```

------

# 평가자 모델을 사용하는 모델 평가 작업을 생성하는 데 필요한 서비스 역할 권한
<a name="judge-service-roles"></a>

LLM을 심사자로 사용하는 모델 평가 작업을 생성하려면 서비스 역할을 지정해야 합니다. 연결하는 정책은 Amazon Bedrock에 사용자 계정의 리소스에 대한 액세스 권한을 부여하고 Amazon Bedrock이 사용자를 대신하여 선택한 모델을 간접 호출하도록 허용합니다.

신뢰 정책은 `bedrock.amazonaws.com`을 사용하여 Amazon Bedrock을 서비스 위탁자로 정의합니다. 다음 각 정책 예제는 모델 평가 작업에서 간접 호출된 각 서비스에 따라 필요한 정확한 IAM 작업을 보여 줍니다

아래 설명과 같이 사용자 지정 서비스 역할을 만들려면 *IAM 사용 설명서*의 [사용자 지정 신뢰 정책을 사용하는 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)을 참조하세요.

## 필수 Amazon Bedrock IAM 작업
<a name="judge-service-roles-br"></a>

Amazon Bedrock이 모델 평가 작업에서 지정하려는 모델을 간접적으로 호출하도록 허용하는 정책을 생성해야 합니다. Amazon Bedrock에 대한 액세스 관리에 관한 자세한 내용은 [Amazon Bedrock 파운데이션 모델 액세스](model-access.md) 섹션을 참조하세요. 정책의 `"Resource"` 섹션에서 나에게도 액세스 권한이 있는 모델의 ARN을 하나 이상 지정해야 합니다. 고객 관리형 KMS 키로 암호화된 모델을 사용하려면 IAM 서비스 역할 정책에 필요한 IAM 작업 및 리소스를 추가해야 합니다. 또한 AWS KMS키 정책에 서비스 역할을 추가해야 합니다.

서비스 역할에는 지원되는 평가자 모델에 대한 액세스가 하나 이상 포함되어야 합니다. 현재 지원되는 평가자 모델 목록은 [지원되는 모델](evaluation-judge.md#evaluation-judge-supported) 섹션을 참조하세요.

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "BedrockModelInvoke",
			"Effect": "Allow",
			"Action": [
				"bedrock:InvokeModel",
				"bedrock:CreateModelInvocationJob",
				"bedrock:StopModelInvocationJob"
			],
			"Resource": [
				"arn:aws:bedrock:us-east-1::foundation-model/*",
				"arn:aws:bedrock:us-east-1:111122223333:inference-profile/*",
				"arn:aws:bedrock:us-east-1:111122223333:provisioned-model/*",
				"arn:aws:bedrock:us-east-1:111122223333:imported-model/*"
			]
		}
	]
}
```

------

## 필수 Amazon S3 IAM 작업 및 리소스
<a name="judge-service-roles-s3"></a>

서비스 역할 정책에는 모델 평가 작업의 출력을 저장하려는 Amazon S3 버킷에 대한 액세스와 `CreateEvaluationJob` 요청 또는 Amazon Bedrock 콘솔을 통해 지정한 프롬프트 데이터세트에 대한 액세스가 포함되어야 합니다.

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "FetchAndUpdateOutputBucket",
			"Effect": "Allow",
			"Action": [
				"s3:GetObject",
				"s3:ListBucket",
				"s3:PutObject",
				"s3:GetBucketLocation",
				"s3:AbortMultipartUpload",
				"s3:ListBucketMultipartUploads"
			],
			"Resource": [
				"arn:aws:s3:::my_customdataset1_bucket",
	            "arn:aws:s3:::my_customdataset1_bucket/myfolder",
	            "arn:aws:s3:::my_customdataset2_bucket",
				"arn:aws:s3:::my_customdataset2_bucket/myfolder"
			]
		}
	]
}
```

------

# 지식 기반 평가 작업의 서비스 역할 요구 사항
<a name="rag-eval-service-roles"></a>

지식 기반 평가 작업을 생성하려면 서비스 역할을 지정해야 합니다. 역할에 연결하는 정책은 Amazon Bedrock에 계정의 리소스에 대한 액세스 권한을 부여하고 Amazon Bedrock이 다음을 수행하도록 허용합니다.
+ `RetrieveAndGenerate` API 작업을 사용하여 출력 생성을 위해 선택한 모델을 간접 호출하고 지식 기반 출력을 평가합니다.
+ 지식 기반 인스턴스에서 Amazon Bedrock 지식 기반 `Retrieve` 및 `RetrieveAndGenerate` API 작업을 간접 호출합니다.

사용자 지정 서비스 역할을 만들려면 *IAM 사용자 설명서*의 [사용자 지정 신뢰 정책을 사용하는 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)을 참조하세요.

**Amazon S3 액세스에 필요한 IAM 작업**  
다음 예제 정책은 다음 두 가지가 모두 발생하는 S3 버킷에 대한 액세스 권한을 부여합니다.
+ 지식 기반 평가 결과를 저장합니다.
+ Amazon Bedrock은 입력 데이터세트를 읽습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Sid": "AllowAccessToCustomDatasets",
            "Effect": "Allow",
            "Action":
            [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource":
            [
                "arn:aws:s3:::my_customdataset1_bucket",
                "arn:aws:s3:::my_customdataset1_bucket/myfolder",
                "arn:aws:s3:::my_customdataset2_bucket",
                "arn:aws:s3:::my_customdataset2_bucket/myfolder"
            ]
        },
        {
            "Sid": "AllowAccessToOutputBucket",
            "Effect": "Allow",
            "Action":
            [
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:GetBucketLocation",
                "s3:AbortMultipartUpload",
                "s3:ListBucketMultipartUploads"
            ],
            "Resource":
            [
                "arn:aws:s3:::my_output_bucket",
                "arn:aws:s3:::my_output_bucket/myfolder"
            ]
        }
    ]
}
```

------

**필수 Amazon Bedrock IAM 작업**  
또한 Amazon Bedrock이 다음을 수행하도록 허용하는 정책을 생성해야 합니다.

1. 다음에 대해 지정하려는 모델을 간접 호출합니다.
   + `RetrieveAndGenerate` API 작업을 사용한 결과 생성.
   + 평가 결과.

   정책의 `Resource` 키에서 사용자에게 액세스 권한이 있는 모델의 ARN을 하나 이상 지정해야 합니다. 고객 관리형 KMS 키로 암호화된 모델을 사용하려면 IAM 서비스 역할 정책에 필요한 IAM 작업 및 리소스를 추가해야 합니다. 또한 AWS KMS 키 정책에 서비스 역할을 추가해야 합니다.

1. `Retrieve` 및 `RetrieveAndGenerate` API 작업을 직접 호출합니다. 콘솔의 자동 역할 생성에서는 해당 작업에 대해 평가하도록 선택한 작업에 관계없이 `Retrieve` 및 `RetrieveAndGenerate` API 작업 모두에 권한을 부여합니다. 이렇게 하면 해당 역할에 대한 유연성과 재사용 가능성을 높일 수 있습니다. 그러나 보안을 강화하기 위해 자동으로 생성된 역할은 단일 지식 기반 인스턴스에 연결됩니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowSpecificModels",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream",
                "bedrock:CreateModelInvocationJob",
                "bedrock:StopModelInvocationJob",
                "bedrock:GetProvisionedModelThroughput",
                "bedrock:GetInferenceProfile",
                "bedrock:GetImportedModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:inference-profile/*",
                "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:imported-model/*",
                "arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/*"
            ]
        },
        {
            "Sid": "AllowKnowledgeBaseAPis",
            "Effect": "Allow",
            "Action": [
                "bedrock:Retrieve",
                "bedrock:RetrieveAndGenerate"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/knowledge-base-id"
            ]
        }
    ]
}
```

------

**서비스 보안 주체 요구 사항**  
Amazon Bedrock을 서비스 위탁자로 정의하는 신뢰 정책도 지정해야 합니다. 이 정책을 통해 Amazon Bedrock이 역할을 수임할 수 있습니다. Amazon Bedrock이 AWS 계정에서 모델 평가 작업을 생성하려면 와일드카드(`*`) 모델 평가 작업 ARN이 필요합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowBedrockToAssumeRole",
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:bedrock:us-east-1:123456789012:evaluation-job/*"
                }
            }
        }
    ]
}
```

------

# Amazon S3 버킷에 액세스 구성
<a name="s3-bucket-access"></a>

여러 Amazon Bedrock 기능을 사용하려면 Amazon S3 버킷에 저장된 데이터에 액세스해야 합니다. 이 데이터에 액세스하려면 다음 권한을 구성해야 합니다.


****  

| 사용 사례: | 권한 | 
| --- | --- | 
| S3 버킷에서 데이터를 검색할 수 있는 권한 | s3:GetObjects3:ListBucket | 
| S3 버킷에 데이터를 쓸 수 있는 권한 | s3:PutObject | 
| S3 버킷을 암호화한 KMS 키를 복호화할 수 있는 권한 | kms:Decryptkms:DescribeKey | 

위 권한을 연결해야 하는 ID 또는 리소스는 다음 요인에 따라 달라집니다.
+ Amazon Bedrock의 여러 기능은 [서비스 역할](security-iam-sr.md)을 사용합니다. 기능에서 서비스 역할을 사용하는 경우 사용자의 IAM 자격 증명이 아닌 서비스 역할이 S3 데이터에 액세스할 수 있도록 권한을 구성해야 합니다. 일부 Amazon Bedrock 기능은 AWS Management Console을 사용하는 경우 자동으로 서비스 역할을 생성하고 필요한 [ID 기반 권한](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies.html#policies_id-based)을 서비스 역할에 연결할 수 있습니다.
+ Amazon Bedrock의 일부 기능을 사용하면 ID로 다른 계정의 S3 버킷에 액세스할 수 있습니다. 다른 계정에서 S3 데이터에 액세스해야 하는 경우 버킷 소유자는 S3 버킷에 연결된 [S3 버킷 정책](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)에 위의 [리소스 기반 권한](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based)을 포함해야 합니다.

다음은 S3 데이터에 액세스하는 데 필요한 권한을 연결해야 하는 위치를 결정하는 방법을 설명합니다.
+ IAM 자격 증명 권한
  + 콘솔에서 서비스 역할을 자동으로 생성할 수 있는 경우 서비스 역할에 대한 권한이 구성되므로 직접 구성할 필요가 없습니다.
  + 사용자 지정 서비스 역할을 사용하려는 경우 또는 액세스가 필요한 ID가 서비스 역할이 아닌 경우 [Amazon S3 버킷에 액세스할 수 있도록 IAM 자격 증명에 권한 연결](#s3-bucket-access-identity) 섹션으로 이동하여 적절한 권한이 있는 ID 기반 정책을 생성하는 방법을 알아봅니다.
+ 리소스 기반 권한
  + ID에 동일한 계정의 S3 데이터에 대한 액세스가 필요한 경우 데이터가 포함된 버킷에 S3 버킷 정책을 연결할 필요가 없습니다.
  + ID에 다른 계정의 S3 데이터에 대한 액세스가 필요한 경우 [다른 계정이 액세스할 수 있도록 Amazon S3 버킷에 버킷 정책 연결](#s3-bucket-access-cross-account) 섹션으로 이동하여 적절한 권한이 있는 S3 버킷 정책을 생성하는 방법을 알아봅니다.
**중요**  
에서 서비스 역할을 자동으로 생성하면 역할에 적절한 자격 증명 기반 권한이 AWS Management Console연결되지만 액세스 권한이 필요한 자격 증명이 다른에 있는 경우에도 S3 버킷 정책을 구성해야 합니다AWS 계정.

자세한 내용은 다음 링크를 참조하세요.
+ Amazon S3의 데이터에 대한 액세스 제어에 대한 자세한 내용은 [Amazon S3의 액세스 제어](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-management.html)를 참조하세요.
+ Amazon S3 권한에 대한 자세한 내용은 [Amazon S3에서 정의한 작업](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-actions-as-permissions)을 참조하세요.
+ AWS KMS권한에 대한 자세한 내용은에서 [정의한 작업을AWS Key Management Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html#awskeymanagementservice-actions-as-permissions) 참조하세요.

사용 사례와 관련된 주제를 진행합니다.

**Topics**
+ [Amazon S3 버킷에 액세스할 수 있도록 IAM 자격 증명에 권한 연결](#s3-bucket-access-identity)
+ [다른 계정이 액세스할 수 있도록 Amazon S3 버킷에 버킷 정책 연결](#s3-bucket-access-cross-account)
+ [(고급 보안 옵션) 보다 세분화된 액세스를 위해 스테이트먼트에 조건 포함](#s3-bucket-access-conditions)

## Amazon S3 버킷에 액세스할 수 있도록 IAM 자격 증명에 권한 연결
<a name="s3-bucket-access-identity"></a>

이 주제에서는 IAM 자격 증명에 연결할 정책에 대한 템플릿을 제공합니다. 이 정책에는 IAM 자격 증명에 S3 버킷에 대한 액세스 권한을 부여하는 권한을 정의하는 다음 스테이트먼트가 포함되어 있습니다.

1. S3 버킷에서 데이터를 검색할 수 있는 권한. 이 스테이트먼트에는 `s3:prefix` [조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys)를 사용하여 버킷의 특정 폴더에 대한 액세스를 제한하는 조건도 포함되어 있습니다. 이 조건에 대한 자세한 내용은 [예제 2: 특정 접두사가 있는 버킷의 객체 목록 가져오기](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#condition-key-bucket-ops-2)의 **사용자 정책** 섹션을 참조하세요.

1. (S3 위치에 데이터를 작성해야 하는 경우) S3 버킷에 데이터를 쓸 수 있는 권한. 이 문에는 조건 [키를](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount) 사용하여 특정에서 전송된 요청에 대한 액세스를 제한하는 `aws:ResourceAccount` 조건도 포함되어 있습니다AWS 계정.

1. (S3 버킷이 KMS 키로 암호화된 경우) S3 버킷을 암호화한 KMS 키를 설명하고 해독할 수 있는 권한입니다.
**참고**  
버전 관리가 활성화된 S3 버킷의 경우, 이 기능을 사용하여 업로드 하는 각 객체의 버전에는 자체 암호화 키가 있습니다. 어떤 객체 버전에 어떤 암호화 키가 사용되었는지는 직접 추적해야 합니다.

다음 정책의 스테이트먼트, 리소스 및 조건을 추가, 수정 및 제거하고 필요에 따라 *\$1\$1values\$1*를 바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::${S3Bucket}",
                "arn:aws:s3:::${S3Bucket}/*"
            ]
        },
        {
            "Sid": "WriteToS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::${S3Bucket}",
                "arn:aws:s3:::${S3Bucket}/*"
            ]
        },
        {
            "Sid": "DecryptKMSKey",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${KMSKeyId}"
        }
    ]
}
```

------

정책을 사용 사례에 맞게 수정한 후 S3 버킷에 액세스해야 하는 서비스 역할(또는 IAM 자격 증명)에 연결합니다. IAM 자격 증명에 권한을 부여하는 방법을 알아보려면 [IAM 자격 증명 권한 추가 및 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)를 참조하세요.

## 다른 계정이 액세스할 수 있도록 Amazon S3 버킷에 버킷 정책 연결
<a name="s3-bucket-access-cross-account"></a>

이 주제에서는 IAM 자격 증명이 버킷의 데이터에 액세스할 수 있도록 S3 버킷에 연결할 리소스 기반 정책에 대한 템플릿을 제공합니다. 이 정책에는 ID가 버킷에 액세스할 수 있는 권한을 정의하는 다음 스테이트먼트가 포함되어 있습니다.

1. S3 버킷에서 데이터를 검색할 수 있는 권한.

1. (S3 위치에 데이터를 작성해야 하는 경우) S3 버킷에 데이터를 쓸 수 있는 권한.

1. (S3 버킷이 KMS 키로 암호화된 경우) S3 버킷을 암호화한 KMS 키를 설명하고 해독할 수 있는 권한입니다.
**참고**  
버전 관리가 활성화된 S3 버킷의 경우, 이 기능을 사용하여 업로드 하는 각 객체의 버전에는 자체 암호화 키가 있습니다. 어떤 객체 버전에 어떤 암호화 키가 사용되었는지는 직접 추적해야 합니다.

권한은 [Amazon S3 버킷에 액세스할 수 있도록 IAM 자격 증명에 권한 연결](#s3-bucket-access-identity)에 설명된 ID 기반 권한과 유사합니다. 그러나 각 스테이트먼트에서는 `Principal` 필드의 리소스에 권한을 부여할 ID를 지정해야 합니다. `Principal` 필드에 ID(Amazon Bedrock의 대부분의 기능 포함, 서비스 역할)를 지정합니다. 다음 정책의 스테이트먼트, 리소스 및 조건을 추가, 수정 및 제거하고 필요에 따라 *\$1\$1values\$1*를 바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadS3Bucket",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ServiceRole"
            },
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::${S3Bucket}",
                "arn:aws:s3:::${S3Bucket}/*"
            ]
        },
        {
            "Sid": "WriteToS3Bucket",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ServiceRole"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::${S3Bucket}",
                "arn:aws:s3:::${S3Bucket}/*"
            ]
        },
        {
            "Sid": "DecryptKMSKey",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ServiceRole"
            },
            "Action": [
                "kms:Decrypt",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${KMSKeyId}"
        }
    ]
}
```

------

정책을 사용 사례로 수정한 후 S3 버킷에 연결합니다. S3 버킷에 정책을 연결하는 방법을 알아보려면 [Amazon S3 콘솔을 사용하여 버킷 정책 추가](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)를 참조하세요.

## (고급 보안 옵션) 보다 세분화된 액세스를 위해 스테이트먼트에 조건 포함
<a name="s3-bucket-access-conditions"></a>

리소스에 액세스할 수 있는 ID를 더 잘 제어하려면 정책 설명에 조건을 포함할 수 있습니다. 이 주제의 정책은 다음 조건 키를 사용하는 예제를 제공합니다.
+ `s3:prefix` - S3 버킷의 특정 폴더에 대한 액세스를 제한하는 S3 조건 키입니다. 이 조건 키에 대한 자세한 내용은 [예제 2: 특정 접두사가 있는 버킷의 객체 목록 가져오기](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#condition-key-bucket-ops-2)의 **사용자 정책** 섹션을 참조하세요.
+ `aws:ResourceAccount` - 특정의 요청에 대한 액세스를 제한하는 전역 조건 키입니다AWS 계정.

다음 정책은 *amzn**-s3-demo-bucket S3 버킷의 my-folder* 폴더에 대한 읽기 액세스를 제한하고 *amzn-s3-demo-destination-bucket* S3 버킷에 대한 쓰기 액세스를 IDAWS 계정가 *111122223333*인의 요청으로 제한합니다. S3 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ],
            "Condition" : {
                "StringEquals" : {
                    "s3:prefix": "my-folder" 
                }
            }
        },
        {
            "Sid": "WriteToS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-destination-bucket",
                "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "111122223333"
                }
            }
        }
    ]
}
```

------

조건 및 조건 키에 대한 자세한 내용은 다음 링크를 참조하세요.
+ 조건에 대한 자세한 내용은 IAM 사용자 설명서의 [IAM JSON 정책 요소: 조건](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)을 참조하세요.
+ S3에 특화된 조건 키에 대해 자세히 알아보려면 서비스 승인 참조의 [Amazon S3에 대한 조건 키](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys) 를 참조하세요.
+ 전역적으로 사용되는 전역 조건 키에 대한 자세한 내용은 [AWS전역 조건 컨텍스트 키를](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount) AWS 서비스참조하세요.

# Amazon Bedrock 자격 증명 및 액세스 문제 해결
<a name="security_iam_troubleshoot"></a>

다음 정보를 사용하여 Amazon Bedrock 및 IAM으로 작업할 때 발생할 수 있는 일반적인 문제를 진단하고 수정할 수 있습니다.

**Topics**
+ [Amazon Bedrock에서 작업을 수행할 권한이 없음](#security_iam_troubleshoot-no-permissions)
+ [iam:PassRole을 수행하도록 인증되지 않음](#security_iam_troubleshoot-passrole)
+ [내 외부의 사람이 내 Amazon Bedrock 리소스 AWS 계정 에 액세스하도록 허용하고 싶습니다.](#security_iam_troubleshoot-cross-account-access)

## Amazon Bedrock에서 작업을 수행할 권한이 없음
<a name="security_iam_troubleshoot-no-permissions"></a>

작업을 수행할 권한이 없다는 오류가 표시되면 작업을 수행할 수 있도록 정책을 업데이트해야 합니다.

다음의 예제 오류는 `mateojackson` IAM 사용자가 콘솔을 사용하여 가상 `my-example-widget` 리소스에 대한 세부 정보를 보려고 하지만 가상 `bedrock:GetWidget` 권한이 없을 때 발생합니다.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: bedrock:GetWidget on resource: my-example-widget
```

이 경우, `bedrock:GetWidget` 작업을 사용하여 `my-example-widget` 리소스에 액세스할 수 있도록 `mateojackson` 사용자 정책을 업데이트해야 합니다.

도움이 필요한 경우 AWS 관리자에게 문의하세요. 관리자는 로그인 자격 증명을 제공한 사람입니다.

## iam:PassRole을 수행하도록 인증되지 않음
<a name="security_iam_troubleshoot-passrole"></a>

`iam:PassRole` 작업을 수행할 수 있는 권한이 없다는 오류가 수신되면 Amazon Bedrock에 역할을 전달할 수 있도록 정책을 업데이트해야 합니다.

일부 AWS 서비스 에서는 새 서비스 역할 또는 서비스 연결 역할을 생성하는 대신 기존 역할을 해당 서비스에 전달할 수 있습니다. 이렇게 하려면 역할을 서비스에 전달할 권한이 있어야 합니다.

다음 예제 오류는 `marymajor`라는 IAM 사용자가 콘솔을 사용하여 Amazon Bedrock에서 태스크를 수행하려고 하는 경우에 발생합니다. 하지만 작업을 수행하려면 서비스 역할이 부여한 권한이 서비스에 있어야 합니다. Mary는 서비스에 역할을 전달할 권한이 없습니다.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

이 경우, Mary가 `iam:PassRole`작업을 수행할 수 있도록 Mary의 정책을 업데이트해야 합니다.

도움이 필요한 경우 AWS 관리자에게 문의하세요. 관리자는 로그인 자격 증명을 제공한 사람입니다.

## 내 외부의 사람이 내 Amazon Bedrock 리소스 AWS 계정 에 액세스하도록 허용하고 싶습니다.
<a name="security_iam_troubleshoot-cross-account-access"></a>

다른 계정의 사용자 또는 조직 외부의 사람이 리소스에 액세스할 때 사용할 수 있는 역할을 생성할 수 있습니다. 역할을 수임할 신뢰할 수 있는 사람을 지정할 수 있습니다. 리소스 기반 정책 또는 액세스 제어 목록(ACL)을 지원하는 서비스의 경우, 이러한 정책을 사용하여 다른 사람에게 리소스에 대한 액세스 권한을 부여할 수 있습니다.

자세한 내용은 다음을 참조하세요.
+ Amazon Bedrock에서 이러한 기능을 지원하는지 여부를 알아보려면 [Amazon Bedrock에서 IAM을 사용하는 방법](security_iam_service-with-iam.md) 섹션을 참조하세요.
+ 소유 AWS 계정 한의 리소스에 대한 액세스 권한을 제공하는 방법을 알아보려면 [IAM 사용 설명서의 소유한 다른의 IAM 사용자에게 액세스 권한 제공을 참조 AWS 계정 하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html). ** 
+ 타사에 리소스에 대한 액세스 권한을 제공하는 방법을 알아보려면 *IAM 사용 설명서*의 [타사가 AWS 계정 소유한에 대한 액세스 권한 제공을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) AWS 계정참조하세요.
+ ID 페더레이션을 통해 액세스 권한을 제공하는 방법을 알아보려면 *IAM 사용 설명서*의 [외부에서 인증된 사용자에게 액세스 권한 제공(ID 페더레이션)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)을 참조하세요.
+ 크로스 계정 액세스에 대한 역할과 리소스 기반 정책 사용의 차이점을 알아보려면 *IAM 사용 설명서*의 [IAM의 크로스 계정 리소스 액세스](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)를 참조하세요.

# 사용자 지정 모델 가져오기 작업을 위한 Amazon S3 버킷에 대한 교차 계정 액세스
<a name="cross-account-access-cmi"></a>

Amazon S3 버킷에서 모델을 가져오고 교차 계정 Amazon S3를 사용하는 경우, 사용자 지정 모델을 가져오기 전에 버킷 소유자 계정의 사용자에게 버킷에 액세스할 수 있는 권한을 부여해야 합니다. [사용자 지정 모델을 가져오기 위한 사전 조건](custom-model-import-prereq.md)을(를) 참조하세요.

## Amazon S3 버킷에 대한 교차 계정 액세스 구성
<a name="configure-cross-acct-access"></a>

이 섹션에서는 Amazon S3 버킷에 액세스하기 위한 버킷 소유자 계정의 사용자에 대한 정책을 생성하는 단계를 안내합니다.

1. 버킷 소유자 계정에서 버킷 소유자 계정의 사용자에게 액세스 권한을 제공하는 버킷 정책을 생성합니다.

   버킷 소유자가 생성하여 버킷 `s3://amzn-s3-demo-bucket`에 적용한 다음 예제 버킷 정책은 버킷 사용자 계정 `123456789123`의 사용자에게 액세스 권한을 부여합니다.

------
#### [ JSON ]

****  

   ```
   { 
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "CrossAccountAccess",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:role/ImportRole"
               },           
               "Action": [
                   "s3:ListBucket",
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket",
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           }
       ]
   }
   ```

------

1. 사용자의에서 가져오기 실행 역할 정책을 AWS 계정생성합니다. 버킷 소유자의 계정 ID를 `aws:ResourceAccount` 지정합니다 AWS 계정.

   사용자 계정의 다음 예제 가져오기 실행 역할 정책은 Amazon S3 버킷 `s3://amzn-s3-demo-bucket`에 대한 버킷 소유자의 계정 ID `111222333444555` 액세스를 제공합니다.

------
#### [ JSON ]

****  

   ```
   { 
       "Version":"2012-10-17",		 	 	 
      "Statement": [
       {
           "Effect": "Allow",
           "Action": [
               "s3:ListBucket",
               "s3:GetObject"
           ],
           "Resource": [
               "arn:aws:s3:::amzn-s3-demo-bucket",
               "arn:aws:s3:::amzn-s3-demo-bucket/*"
           ],
           "Condition": {
               "StringEquals": {
                   "aws:ResourceAccount": "123456789012"
               }
           }
       }
     ]
   }
   ```

------

## 사용자 지정으로 암호화된 Amazon S3 버킷에 대한 교차 계정 액세스 구성 AWS KMS key
<a name="configure-cross-acct-access-kms"></a>

사용자 지정 AWS Key Management Service (AWS KMS) 키로 암호화된 Amazon S3 버킷이 있는 경우 버킷 소유자 계정의 사용자에게 액세스 권한을 부여해야 합니다.

사용자 지정 로 암호화된 Amazon S3 버킷에 대한 교차 계정 액세스를 구성하려면 AWS KMS key

1. 버킷 소유자 계정에서 버킷 소유자 계정의 사용자에게 액세스 권한을 제공하는 버킷 정책을 생성합니다.

   버킷 소유자가 생성하여 버킷 `s3://amzn-s3-demo-bucket`에 적용한 다음 예제 버킷 정책은 버킷 사용자 계정 `123456789123`의 사용자에게 액세스 권한을 부여합니다.

------
#### [ JSON ]

****  

   ```
   { 
      "Version":"2012-10-17",		 	 	 
      "Statement": [
       {
           "Sid": "CrossAccountAccess",
           "Effect": "Allow",
           "Principal": {
               "AWS": "arn:aws:iam::123456789012:role/ImportRole"
           },           
           "Action": [
               "s3:ListBucket",
               "s3:GetObject"
           ],
           "Resource": [
               "arn:aws:s3:::amzn-s3-demo-bucket",
               "arn:aws:s3:::amzn-s3-demo-bucket/*"
           ]
        }
      ]
   }
   ```

------

1. 버킷 소유자 계정에서 다음 리소스 정책을 생성하여 사용자의 계정 가져오기 역할이 복호화되도록 허용합니다.

   ```
   {
      "Sid": "Allow use of the key by the destination account",
      "Effect": "Allow",
      "Principal": {
      "AWS": "arn:aws:iam::"arn:aws:iam::123456789123:role/ImportRole"
       },
       "Action": [
             "kms:Decrypt",
             "kms:DescribeKey"
       ],
       "Resource": "*"
   }
   ```

1. 사용자의에서 가져오기 실행 역할 정책을 AWS 계정생성합니다. 버킷 소유자의 계정 ID를 `aws:ResourceAccount` 지정합니다 AWS 계정. 또한 버킷을 암호화하는 데 AWS KMS key 사용되는에 대한 액세스 권한을 제공합니다.

   사용자 계정의 다음 예제 가져오기 실행 역할 정책은 Amazon S3 버킷 `s3://amzn-s3-demo-bucket` 및에 대한 버킷 소유자의 계정 ID `111222333444555` 액세스를 제공합니다. AWS KMS key `arn:aws:kms:us-west-2:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd`

------
#### [ JSON ]

****  

   ```
   { 
       "Version":"2012-10-17",		 	 	 
      "Statement": [
         {
           "Effect": "Allow",
           "Action": [
               "s3:ListBucket",
               "s3:GetObject"
           ],
           "Resource": [
               "arn:aws:s3:::amzn-s3-demo-bucket",
               "arn:aws:s3:::amzn-s3-demo-bucket/*"
           ],
           "Condition": {
               "StringEquals": {
                   "aws:ResourceAccount": "123456789012"
               }
           }
        },
        {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt",
           "kms:DescribeKey"
         ],
         "Resource": "arn:aws:kms:us-west-2:123456789012:key/111aa2bb-333c-4d44-5555-a111bb2c33dd"
       }
     ]
    }
   ```

------

# Amazon Bedrock의 규정 준수 확인
<a name="compliance-validation"></a>

 AWS 서비스 가 특정 규정 준수 프로그램의 범위 내에 있는지 알아보려면 [AWS 서비스 규정 준수 프로그램 범위 내](https://aws.amazon.com/compliance/services-in-scope/)를 참조하고 관심 있는 규정 준수 프로그램을 선택합니다. 일반 정보는 [AWS 규정 준수 프로그램](https://aws.amazon.com/compliance/programs/).

를 사용하여 타사 감사 보고서를 다운로드할 수 있습니다 AWS Artifact. 자세한 내용은 [Downloading Reports inDownloading AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)을 참조하세요.

사용 시 규정 준수 책임은 데이터의 민감도, 회사의 규정 준수 목표 및 관련 법률과 규정에 따라 AWS 서비스 결정됩니다. 사용 시 규정 준수 책임에 대한 자세한 내용은 [AWS 보안 설명서를](https://docs.aws.amazon.com/security/) AWS 서비스참조하세요.

# Amazon Bedrock의 인시던트 대응
<a name="security-incident-response"></a>

 AWS에서는 보안을 가장 중요하게 생각합니다. AWS 클라우드 [공동 책임 모델의](https://aws.amazon.com/compliance/shared-responsibility-model) 일환으로 보안에 가장 민감한 조직의 요구 사항을 충족하는 데이터 센터, 네트워크 및 소프트웨어 아키텍처를 AWS 관리합니다. AWS 는 Amazon Bedrock 서비스 자체와 관련된 모든 인시던트 대응을 담당합니다. 또한 AWS 고객은 클라우드에서 보안을 유지할 책임이 있습니다. 즉, 액세스할 수 있는 AWS 도구 및 기능에서 구현하도록 선택한 보안을 제어합니다. 또한 사용자는 공유 책임 모델에 따라 사고 대응에 대한 책임이 있습니다.

클라우드에서 실행되는 애플리케이션의 목표를 충족하는 보안 기준을 설정하면 대응할 수 있는 편차를 감지할 수 있습니다. 인시던트 대응과 사용자의 선택이 회사 목표에 미치는 영향을 이해하는 데 도움이 되도록 다음 리소스를 검토하는 것이 좋습니다.
+ [AWS 보안 인시던트 대응 가이드](https://docs.aws.amazon.com/whitepapers/latest/aws-security-incident-response-guide/welcome.html)
+ [AWS 보안, 자격 증명 및 규정 준수 모범 사례](https://aws.amazon.com/architecture/security-identity-compliance)
+ [AWS 클라우드 채택 프레임워크(CAF) 백서의 보안 관점](https://docs.aws.amazon.com/whitepapers/latest/overview-aws-cloud-adoption-framework/security-perspective.html) 

 [Amazon GuardDuty](https://aws.amazon.com/guardduty/)는 악성 또는 무단 동작을 지속적으로 모니터링하는 관리형 위협 탐지 서비스로, 고객이 AWS 계정과 워크로드를 보호하고 잠재적으로 의심스러운 활동이 인시던트로 에스컬레이션되기 전에 식별하는 데 도움이 됩니다. 이 서비스는 비정상적인 API 직접 호출이나 잠재적으로 승인되지 않은 배포와 같은 활동을 모니터링하여 악의적인 행위자에 의한 계정 또는 리소스 손상이나 정찰 가능성을 보여줍니다. Amazon GuardDuty는 Amazon Bedrock API에서 의심스러운 활동을 감지할 수 있습니다. 예를 들어, 사용자가 새로운 위치에서 로그인하여 Amazon Bedrock API를 사용해 Amazon Bedrock Guardrails를 제거하거나 모델 훈련 데이터에 대한 Amazon S3 버킷 세트를 변경하는 경우가 있습니다.

# Amazon Bedrock의 복원성
<a name="disaster-recovery-resiliency"></a>

 AWS 글로벌 인프라는 AWS 리전 및 가용 영역을 중심으로 구축됩니다.는 물리적으로 분리되고 격리된 여러 가용 영역을 AWS 리전 제공하며,이 가용 영역은 지연 시간이 짧고 처리량이 높으며 중복성이 높은 네트워킹과 연결됩니다. 가용 영역을 사용하면 중단 없이 영역 간에 자동으로 장애 극복 조치가 이루어지는 애플리케이션 및 데이터베이스를 설계하고 운영할 수 있습니다. 가용 영역은 기존의 단일 또는 다중 데이터 센터 인프라보다 가용성, 내결함성, 확장성이 뛰어납니다.

 AWS 리전 및 가용 영역에 대한 자세한 내용은 [AWS 글로벌 인프라를](https://aws.amazon.com/about-aws/global-infrastructure/) 참조하세요.

# Amazon Bedrock의 인프라 보안
<a name="infrastructure-security"></a>

관리형 서비스인 Amazon Bedrock은 AWS 글로벌 네트워크 보안으로 보호됩니다. AWS 보안 서비스 및가 인프라를 AWS 보호하는 방법에 대한 자세한 내용은 [AWS 클라우드 보안을](https://aws.amazon.com/security/) 참조하세요. 인프라 보안 모범 사례를 사용하여 AWS 환경을 설계하려면 *보안 원칙 AWS Well‐Architected Framework*의 [인프라 보호를](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) 참조하세요.

 AWS 에서 게시한 API 호출을 사용하여 네트워크를 통해 Amazon Bedrock에 액세스합니다. 클라이언트는 다음을 지원해야 합니다.
+ Transport Layer Security(TLS). TLS 1.2는 필수이며 TLS 1.3을 권장합니다.
+ DHE(Ephemeral Diffie-Hellman) 또는 ECDHE(Elliptic Curve Ephemeral Diffie-Hellman)와 같은 완전 전송 보안(PFS)이 포함된 암호 제품군. Java 7 이상의 최신 시스템은 대부분 이러한 모드를 지원합니다.

또한 요청은 액세스 키 ID 및 IAM 위탁자와 관련된 시크릿 액세스 키를 사용하여 서명해야 합니다. 또는 [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html)(AWS STS)를 사용하여 임시 자격 증명을 생성하여 요청에 서명할 수 있습니다.

# 교차 서비스 혼동된 대리인 방지
<a name="cross-service-confused-deputy-prevention"></a>

혼동된 대리자 문제는 작업을 수행할 권한이 없는 엔터티가 권한이 더 많은 엔터티에게 작업을 수행하도록 강요할 수 있는 보안 문제입니다. 에서 AWS교차 서비스 가장은 혼동된 대리자 문제를 초래할 수 있습니다. 교차 서비스 가장은 한 서비스(*직접 호출하는 서비스*)가 다른 서비스(*직접 호출되는 서비스*)를 직접 호출할 때 발생할 수 있습니다. 직접 호출하는 서비스는 다른 고객의 리소스에 대해 액세스 권한이 없는 방식으로 작동하게 권한을 사용하도록 조작될 수 있습니다. 이를 방지하기 위해 AWS 에서는 계정의 리소스에 대한 액세스 권한이 부여된 서비스 위탁자를 사용하여 모든 서비스에 대한 데이터를 보호하는 데 도움이 되는 도구를 제공합니다.

Amazon Bedrock가 리소스에 다른 서비스를 제공하는 권한을 제한하려면 리소스 정책에서 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) 및 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) 전역 조건 컨텍스트 키를 사용하는 것이 좋습니다. 하나의 리소스만 교차 서비스 액세스와 연결되도록 허용하려는 경우 `aws:SourceArn`을 사용하세요. 해당 계정의 모든 리소스가 교차 서비스 사용과 연결되도록 허용하려는 경우 `aws:SourceAccount`을(를) 사용합니다.

혼동된 대리자 문제로부터 보호하는 가장 효과적인 방법은 리소스의 전체 ARN이 포함된 `aws:SourceArn` 전역 조건 컨텍스트 키를 사용하는 것입니다. 리소스의 전체 ARN을 모르거나 여러 리소스를 지정하는 경우, ARN의 알 수 없는 부분에 대해 와일드카드 문자(`*`)를 포함한 `aws:SourceArn` 글로벌 조건 컨텍스트 키를 사용합니다. 예를 들어 `arn:aws:bedrock:*:123456789012:*`입니다.

만약 `aws:SourceArn` 값에 Amazon S3 버킷 ARN과 같은 계정 ID가 포함되어 있지 않은 경우, 권한을 제한하려면 두 글로벌 조건 컨텍스트 키를 모두 사용해야 합니다.

`aws:SourceArn`의 값은 ResourceDescription이어야 합니다.

다음 예제는 Bedrock에서 `aws:SourceArn` 및 `aws:SourceAccount` 전역 조건 컨텍스트 키를 사용하여 혼동된 대리자 문제를 방지하는 방법을 보여줍니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:model-customization-job/*"
                }
            }
        }
    ] 
}
```

------

# Amazon Bedrock의 구성 및 취약성 분석
<a name="vulnerability-analysis-and-management"></a>

구성 및 IT 제어는 AWS 와 고객 간의 공동 책임입니다. 자세한 내용은 AWS [공동 책임 모델을](https://aws.amazon.com/compliance/shared-responsibility-model/) 참조하세요.

# Amazon Bedrock 침해 탐지
<a name="abuse-detection"></a>

AWS 는 AI를 책임감 있게 사용하기 위해 최선을 다합니다. 잠재적 오용을 방지하기 위해 Amazon Bedrock은 자동화된 침해 탐지 메커니즘을 구현하여 AWS의 [이용 정책](https://aws.amazon.com/aup/)(AUP) 및 [책임 있는 AI 정책](https://aws.amazon.com/machine-learning/responsible-ai/policy/) 또는 타사 모델 공급자의 AUP에 대한 잠재적 위반을 식별하고 완화합니다.

침해 탐지 메커니즘은 완전히 자동화되어 있으므로, 사용자 입력 또는 모델 출력을 사람이 검토하거나 액세스할 필요가 없습니다.

자동 침해 탐지 기능은 다음과 같습니다.
+ **콘텐츠 분류** - 분류자를 사용하여 사용자 입력 및 모델 출력에 있는 유해한 콘텐츠(예: 폭력을 조장하는 콘텐츠)를 탐지합니다. 분류자는 모델 입력 및 출력을 처리하고 유해성의 유형과 신뢰도를 할당하는 알고리즘입니다. 당사는 Titan 및 타사 모델 모두에서 이러한 분류자를 실행할 수 있습니다. 여기에는 Amazon Bedrock의 모델 사용자 지정을 사용하여 미세 조정된 모델이 포함될 수 있습니다. 분류 프로세스는 자동화되어 있으며 사용자 입력 또는 모델 출력을 사람이 검토하지 않습니다.
+ **패턴 식별** - 분류자 지표를 사용하여 잠재적 위반과 반복되는 행동을 식별합니다. 당사는 익명화된 분류자 지표를 컴파일한 후 타사 모델 공급자와 공유할 수 있습니다. Amazon Bedrock은 사용자 입력 또는 모델 출력을 저장하지 않으며 타사 모델 제공업체와 공유하지 않습니다.
+ **아동 성착취물(CSAM) 감지 및 차단** - 사용자 (및 최종 사용자)가 Amazon Bedrock에 업로드하는 콘텐츠에 대한 책임은 사용자 본인에게 있으며 이 콘텐츠에 불법 이미지가 없는지 확인해야 합니다. Amazon Bedrock은 CSAM의 배포를 중지하기 위해 자동 남용 탐지 메커니즘(해시 매칭 기술 또는 분류자 등)을 사용하여 명백한 CSAM을 탐지할 수 있습니다. Amazon Bedrock이 이미지 입력에서 명백한 CSAM을 감지하면 Amazon Bedrock에서 요청을 차단하고 자동 오류 메시지를 받게 됩니다. Amazon Bedrock은 NCMEC(National Center for Missing and Exploited Children) 또는 관련 기관에 보고서를 제출할 수도 있습니다. 당사는 CSAM을 심각한 사안으로 간주하므로 감지, 차단, 보고 메커니즘을 계속해서 업데이트할 예정입니다. 관련 법률에 따라 추가 조치를 취해야 할 수 있으며 이러한 조치에 대한 책임은 사용자에게 있습니다.

자동 침해 탐지 메커니즘으로 잠재적 위반 사항이 식별되면 당사는 사용자의 Amazon Bedrock 사용 및 당사 서비스 약관 또는 타사 제공업체의 AUP 준수에 대한 정보를 요청할 수 있습니다. 응답하지 않거나 이러한 약관 또는 정책을 준수할 의지가 없거나 준수할 수 없는 경우 Amazon Bedrock에 대한 액세스가 일시 중지 AWS 될 수 있습니다. 또한, 자동 테스트에서 모델 응답이 타사 모델 제공업체의 라이선스 약관 및 정책과 일치하지 않는 것으로 감지되면 실패한 미세 조정 작업에 대한 요금이 청구될 수 있습니다.

추가 질문이 있는 경우 AWS Support에 문의하세요. 자세한 내용은 [Amazon Bedrock FAQ](https://aws.amazon.com/bedrock/faqs/?refid=6f95042b-28fe-493f-8858-601fe99cea89)를 참조하세요.

# 프롬프트 인젝션 보안
<a name="prompt-injection"></a>

 [AWS 공동 책임 모델에](https://aws.amazon.com/compliance/shared-responsibility-model/) 따라 AWS 는 AWS 서비스를 실행하는 하드웨어, 소프트웨어, 네트워킹 및 시설을 포함한 기본 클라우드 인프라를 보호할 책임이 있습니다. 그러나 고객은 배포된 애플리케이션, 데이터 및 리소스를 보호할 책임이 있습니다 AWS.

Amazon Bedrock의 맥락에서는 물리적 데이터 센터, 네트워킹 및 Amazon Bedrock 서비스 자체를 포함한 기본 인프라의 보안을 AWS 처리합니다. 그러나 애플리케이션 개발을 보호하고 프롬프트 인젝션 같은 취약성을 방지하는 책임은 고객에게 있습니다.

프롬프트 인젝션은 데이터베이스 애플리케이션의 SQL 명령어 삽입과 마찬가지로 애플리케이션 수준의 보안 문제입니다. Amazon RDS 및 Amazon Aurora와 같은 AWS 서비스가 안전한 데이터베이스 엔진을 제공하는 것처럼 고객은 애플리케이션에서 SQL 주입을 방지할 책임이 있습니다. Amazon Bedrock은 자연어 처리를 위한 안전한 기반을 제공하지만 고객은 코드의 프롬프트 인젝션 취약성을 방지하기 위한 조치를 취해야 합니다. 또한 Bedrock 및 기타 AWS 서비스의 보안 코딩 사례에 대한 자세한 설명서, 모범 사례 및 지침을 AWS 제공합니다.

Amazon Bedrock을 사용할 때 프롬프트 인젝션 및 기타 보안 취약성으로부터 시스템을 보호하려면 고객은 다음 모범 사례를 따라야 합니다.
+ **입력 검증** - Amazon Bedrock API 또는 토크나이저에 전달하기 전에 모든 사용자 입력을 검증하고 보안 검사를 수행합니다. 여기에는 특수 문자를 제거하거나 이스케이프하고 입력이 예상 형식을 준수하는지 확인하는 것이 포함됩니다.
+ **보안 코딩 관행** - 파라미터화된 쿼리 사용, 입력에 대한 문자열 연결 방지, 리소스에 대한 액세스 권한을 부여할 때 최소 권한 원칙 실행과 같은 보안 코딩 관행을 따릅니다.
+ **보안 테스트** - 침투 테스트, 정적 코드 분석, 동적 애플리케이션 보안 테스트(DAST)와 같은 기술을 사용하여 애플리케이션에 대한 프롬프트 인젝션 및 기타 보안 취약성을 정기적으로 테스트합니다.
+ **최신 상태 유지** - 최신 보안 패치 및 업데이트를 통해 Amazon Bedrock SDK, 라이브러리, 종속성을 최신 상태로 유지합니다. AWS 보안 게시판 및 공지에서 관련 업데이트 또는 지침을 모니터링합니다.는 고객이 Bedrock 및 기타 AWS 서비스를 사용하여 안전한 애플리케이션을 구축할 수 있도록 자세한 설명서, 블로그 게시물 및 샘플 코드를 AWS 제공합니다. 고객은 이러한 리소스를 검토하고 권장 보안 모범 사례를 따라 애플리케이션을 즉시 프롬프트 인젝션 및 기타 취약성으로부터 보호해야 합니다.

Amazon Bedrock Guardrails를 사용하여 프롬프트 인젝션 공격으로부터 보호할 수 있습니다. 자세한 내용은 [Amazon Bedrock Guardrails를 사용하여 프롬프트 공격 감지](guardrails-prompt-attack.md) 단원을 참조하십시오.

Amazon Bedrock Agents를 생성할 때 다음 기법을 사용하여 프롬프트 인젝션 공격으로부터 보호합니다.
+ 가드레일을 에이전트와 연결합니다. 자세한 내용은 [에이전트와 가드레일을 연결하여 애플리케이션에 대한 보호 장치 구현](agents-guardrail.md) 단원을 참조하십시오.
+ [고급 프롬프트](https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html)를 사용하여 기본 사전 처리 프롬프트를 활성화합니다. 모든 에이전트에는 활성화할 수 있는 기본 사전 처리 프롬프트가 있습니다. 파운데이션 모델을 사용하여 사용자 입력을 안전하게 처리할 수 있는지 확인하는 간단한 프롬프트입니다. 기본 동작을 사용하거나 다른 분류 범주를 포함하도록 프롬프트를 완전히 사용자 지정할 수 있습니다. 선택적으로 [AWS Lambda](https://docs.aws.amazon.com/bedrock/latest/userguide/lambda-parser.html) 함수에 자체 파운데이션 모델 응답 구문 분석기를 작성하여 자체 사용자 지정 규칙을 구현할 수 있습니다.

  자세한 내용은 [Amazon Bedrock Agents의 작동 방식](agents-how.md) 단원을 참조하십시오.
+ 고급 프롬프트 기능을 사용하여 시스템 프롬프트를 업데이트합니다. 최신 모델은 시스템 프롬프트와 사용자 프롬프트를 구분합니다. 에이전트에서 시스템 프롬프트를 사용하는 경우 에이전트가 수행할 수 있는 작업과 수행할 수 없는 작업의 범위를 명확하게 정의하는 것이 좋습니다. 또한 모델별 지침은 모델 공급자의 자체 설명서를 참조하십시오. Amazon Bedrock에서 시스템 프롬프트를 지원하는 서버리스 모델을 확인하려면 [파운데이션 모델의 추론 요청 파라미터 및 응답 필드](model-parameters.md) 섹션을 참조하세요.