Amazon Bedrock 지식 베이스를 생성할 때 발생하는 권한 오류를 해결하고 싶습니다.
간략한 설명
Amazon Bedrock에서 지식 베이스를 생성하려면 서비스 역할을 사용해야 합니다. 서비스 역할은 Amazon Bedrock에게 필요한 AWS 서비스에 액세스하는 데 필요한 권한을 제공합니다. Amazon Bedrock에서 생성한 서비스 역할을 사용하거나 직접 생성한 사용자 지정 역할을 사용할 수 있습니다.
해결 방법
다음 오류를 검토하여 문제의 해결 방법을 찾으십시오.
Amazon Bedrock에서 사용자 지정 역할을 찾을 수 없음
오류: "콘솔에서 KnowledgeBase를 만드는 동안 사용자 지정 서비스 역할을 찾거나 볼 수 없습니다."
위의 오류는 사용자 지정 서비스 역할에 필요한 신뢰 정책이 없을 때 발생합니다.
오류를 해결하려면 서비스 역할에 신뢰 정책을 연결하십시오.
신뢰 정책 예시:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "bedrock.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "account-id"
},
"ArnLike": {
"AWS:SourceArn": "arn:aws:bedrock:region:account-id:knowledge-base/*"
}
}
}
]
}
서비스 역할에 필요한 IAM 권한 없음
오류: "iam:CreateRole 작업을 허용하는 ID 기반 정책이 없어 사용자 arn:aws:sts::999999999999: assumed-role/DataScientist/user가 리소스 arn:aws:iam::9999999999:role/service-role/bedrock-knowledge-base에서 iam:CreateRole을 수행할 권한이 없습니다."
위의 오류는 사용자 지정 역할을 생성하는 데 사용하는 AWS IAM(Identity and Access Management) 사용자 또는 역할에 iam:CreateRole 권한이 없을 때 발생합니다.
이 문제를 해결하려면 IAM 정책에 iam:CreateRole 권한을 추가합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:AttachRolePolicy",
"iam:CreateRole",
"iam:PutRolePolicy",
],
"Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME"
}
]
}
오류: "iam:PassRole 작업을 허용하는 ID 기반 정책이 없어 사용자 arn:aws:sts::999999999999: assumed-role/DataScientist/user가 리소스 arn:aws:iam::9999999999:role/service-role/bedrock-knowledge-base에서 iam:PassRole을 수행할 권한이 없습니다."
위의 오류는 IAM 사용자가 Amazon Bedrock에 역할을 전달할 수 있도록 허용하는 iam:PassRole 권한이 없을 때 발생합니다.
이 문제를 해결하려면 IAM 정책에 iam:PassRole 권한을 추가하십시오.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:PassRole",
],
"Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME"
}
]
}
잘못된 인증 또는 403 금지됨 오류 발생
오류: "CreateKnowledgeBase 작업을 호출하는 동안 오류 발생(ValidationException): 제공한 지식 베이스 스토리지 구성이 유효하지 않습니다... 잘못된 인증"
-또는-
오류: "제공한 지식 베이스 스토리지 구성이 유효하지 않습니다... 요청 실패: [security_exception] 403 금지됨"
위의 오류는 다음과 같은 상황에서 발생합니다.
- 서비스 역할에 Amazon OpenSearch Serverless 컬렉션에 필요한 권한이 없습니다.
- 컬렉션의 데이터 액세스 정책의 보안 주체 섹션에 서비스 역할이 포함되어 있지 않습니다.
- Amazon Bedrock이 AWS Secrets Manager 구성을 제대로 인증하지 못했습니다.
이러한 문제를 해결하려면 서비스 역할에 OpenSearch Serverless 컬렉션에 대한 액세스 권한이 있어야 합니다. Amazon OpenSearch Serverless에서 지식 베이스를 위한 벡터 데이터베이스를 생성한 경우 Amazon Bedrock의 서비스 역할에 다음 정책을 연결하십시오. 이 정책은 Amazon Bedrock이 컬렉션에 액세스할 수 있도록 허용합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"aoss:APIAccessAll"
],
"Resource": [
"arn:aws:aoss:region:account-id:collection/collection-id"
]
}
]
}
컬렉션에 대한 데이터 액세스 정책이 Amazon Bedrock의 서비스 역할에 권한을 부여하는지 확인하십시오. 또한 Amazon Bedrock 서비스 역할이 데이터 액세스 제어 정책의 보안 주체 섹션에 나열되어 있는지 확인하십시오. 자세한 내용은 Amazon OpenSearch Serverless에 대한 데이터 액세스 제어를 참조하십시오.
벡터 데이터베이스는 AWS Secrets Manager 시크릿으로 구성될 수 있습니다. 사용자가 데이터베이스에 액세스할 수 있도록 Amazon Bedrock 서비스 역할이 AWS Secrets Manager가 계정을 인증하도록 허용하는지 확인하십시오. 자세한 내용은 Amazon Bedrock 지식 베이스에 대한 서비스 역할 생성을 참조하십시오.
인덱스가 존재하지 않음
오류: "제공된 지식 베이스 스토리지 구성이 잘못되었습니다... 해당 인덱스 [bedrock-knowledge-base-default-index]가 없습니다."
Amazon OpenSearch Serverless가 인덱스의 모든 노드 또는 복제본에 시스템 변경 사항 또는 업데이트를 배포하는 데 다소 시간이 걸릴 수 있습니다. 배포 프로세스 중에 데이터에 액세스하려고 하면 위 오류가 발생할 수 있습니다.
이 문제를 해결하려면 다음 조치를 취하십시오.
- 사용 중인 서비스 역할에 OpenSearch Serverless 컬렉션 또는 선택한 벡터 데이터베이스에 액세스하는 데 필요한 권한이 있는지 확인합니다.
- OpenSearch Serverless에서 수동으로 인덱스를 표시하거나 만들 수 있는지 확인하십시오. 수동으로 인덱스를 생성할 수 있다면 시스템의 최종 일관성과 관련된 문제가 있는 것입니다. 수동으로 인덱스를 생성할 수 없는 경우 인덱스 생성에 필요한 권한이 있는지 확인하십시오. 자세한 내용은 OpenSearch 대시보드의 샘플 데이터세트를 참조하십시오.
- 필요한 권한이 있는데도 문제가 계속 발생하는 경우 구성이 시스템 전체에서 변경을 완료할 때까지 약 5분 정도 기다리십시오.