Amazon Bedrock Knowledge Bases에 대한 서비스 역할 생성 - Amazon Bedrock

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

Amazon Bedrock Knowledge Bases에 대한 서비스 역할 생성

Amazon Bedrock이 자동으로 생성하는 역할 대신 지식 기반에 사용자 지정 역할을 사용하려면 AWS 서비스에 권한을 위임하는 역할 생성의 단계에 따라 IAM 역할을 생성하고 다음 권한을 연결합니다. 자체 보안에 필요한 권한만 포함합니다.

  • 신뢰 관계

  • Amazon Bedrock 기본 모델에 대한 액세스

  • 데이터를 저장하는 데이터 소스에 대한 액세스 권한

  • (Amazon OpenSearch Service에서 벡터 데이터베이스를 생성할 경우) Amazon OpenSearch Service 컬렉션에 대한 액세스 권한

  • (Amazon Aurora에서 벡터 데이터베이스를 만드는 경우) Aurora 클러스터에 대한 액세스 권한

  • ( Pinecone 또는에서 벡터 데이터베이스를 생성하는 경우Redis Enterprise Cloud) Pinecone 또는 Redis Enterprise Cloud 계정을 인증 AWS Secrets Manager 할 수 있는 권한

  • (선택 사항) KMS 키로 다음 리소스 중 하나를 암호화하는 경우 키를 복호화할 수 있는 권한(지식 기반 리소스 암호화 참조)

    • 지식 기반

    • 지식 기반용 데이터 소스

    • Amazon OpenSearch Service의 벡터 데이터베이스

    • 에서 타사 벡터 데이터베이스의 보안 암호 AWS Secrets Manager

    • 데이터 모으기 작업

신뢰 관계

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

참고

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

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

Amazon Bedrock 모델에 액세스할 수 있는 권한

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

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

데이터 소스에 액세스할 수 있는 권한

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

Amazon S3 데이터 소스에 액세스할 수 있는 권한

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

AWS KMS 키로 데이터 소스를 암호화한 경우의 단계에 따라 역할에 키를 복호화할 수 있는 권한을 연결합니다Amazon S3의 데이터 소스에 대한 AWS KMS 키를 복호화할 수 있는 권한.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ListBucketStatement", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${Bucket}" ], "Condition": { "StringEquals": { "aws:ResourceAccount": [${AccountId}] } } }, { "Sid": "S3GetObjectStatement", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::${BucketAndKeyPrefix}" ], "Condition": { "StringEquals": { "aws:ResourceAccount": [${AccountId}] } } } ] }

Confluence 데이터 소스에 액세스할 수 있는 권한

참고

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

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

참고

secretsmanager:PutSecretValue는 OAuth 2.0 인증을 새로 고침 토큰과 함께 사용하는 경우에만 필요합니다.

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue" ], "Resource": [ "arn:aws:secretsmanager:${Region}:${AccountId}:secret:${secret-id}" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${AccountId}:key/${KeyId}" ], "Condition": { "StringLike": { "kms:ViaService": [ "secretsmanager.${Region}.amazonaws.com" ] } } }, }

Microsoft SharePoint 데이터 소스에 액세스할 수 있는 권한

참고

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

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

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

Salesforce 데이터 소스에 액세스할 수 있는 권한

참고

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

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

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

문서와의 채팅에 대한 권한

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

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

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

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

문서와 채팅하고 특정 지식 기반RetrieveAndGenerate에서를 모두 사용하려면 ${KnowledgeBaseArn}을 제공하고 다음 정책을 사용합니다.

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

(선택 사항) Amazon Kendra GenAI 인덱스에 액세스할 수 있는 권한

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kendra:Retrieve", // To call their Retrieve API "kendra:DescribeIndex" // For validation when creating the KB ], "Resource": "arn:${${Partition}}:kendra:${${Region}}:${${AccountId}}:index/${${IndexId}}" } ] }

(선택 사항) Amazon OpenSearch Service의 벡터 데이터베이스에 액세스할 수 있는 권한

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

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "aoss:APIAccessAll" ], "Resource": [ "arn:aws:aoss:${Region}:${AccountId}:collection/${CollectionId}" ] }] }

(선택 사항) Amazon Aurora 데이터베이스 클러스터에 액세스할 수 있는 권한

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

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

(선택 사항) AWS Secrets Manager 보안 암호로 구성된 벡터 데이터베이스에 액세스할 수 있는 권한

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

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:${Region}:${AccountId}:secret:${SecretId}" ] }] }

보안 암호를 AWS KMS 키로 암호화한 경우의 단계에 따라 역할에 키를 복호화할 수 있는 권한을 연결합니다지식 기반이 포함된 벡터 스토어의 AWS Secrets Manager 보안 암호를 해독할 수 있는 권한.

(선택 사항) AWS 가 데이터 수집 중에 임시 데이터 스토리지에 대한 AWS KMS 키를 관리할 수 있는 권한

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${AccountId}:key/${KeyId}" ] } ] }

(선택 사항) AWS 가 다른 사용자의 AWS 계정에서 데이터 소스를 관리할 수 있는 권한입니다.

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

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

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

{ "Version": "2012-10-17", "Statement": [{ "Sid": "S3ListBucketStatement", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${BucketName}" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${BucketOwnerAccountId}" } } },{ "Sid": "S3GetObjectStatement", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::${BucketNameAndPrefix}/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${BucketOwnerAccountId}" } }] }

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

{ "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 버킷 정책이 필요합니다. ${KbRoleArn}, ${BucketName}${BucketNameAndPrefix}를 적절한 값으로 바꿉니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Example ListBucket permissions", "Effect": "Allow", "Principal": { "AWS": "${KbRoleArn}" }, "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${BucketName}" ] }, { "Sid": "Example GetObject permissions", "Effect": "Allow", "Principal": { "AWS": "${KbRoleArn}" }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::${BucketNameAndPrefix}/*" ] } ] }

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

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

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