내용으로 건너뛰기

Amazon Bedrock에서 지식 기반을 만들 때 발생하는 권한 오류를 해결하려면 어떻게 해야 합니까?

5분 분량
0

Amazon Bedrock 지식 기반을 만들려고 할 때 권한 관련 오류가 발생합니다. 이러한 권한 오류를 해결하여 지식 기반을 성공적으로 설정하고 싶습니다.

간략한 설명

Amazon Bedrock에서 지식 기반을 만들려면 서비스 역할을 구성해야 합니다. 서비스 역할은 Amazon Bedrock에 필수 AWS 서비스에 액세스하는 데 필요한 권한을 부여합니다. Amazon Bedrock에서 이미 생성한 서비스 역할을 사용할 수도 있습니다. 또는 사용자 지정 서비스 역할을 만들어 필요한 권한을 할당할 수 있습니다.

해결 방법

IAM 서비스 역할 누락

Amazon Bedrock 지식 기반을 만들기 위한 Identity and Access Management(IAM) 서비스 역할에 대한 Amazon Bedrock 신뢰 관계 정책이 없는 경우, 다음과 같은 오류가 발생합니다.

"Bedrock Knowledge Base was unable to assume the given role. Provide the proper permissions and retry the request"

이 오류를 해결하려면 Amazon Bedrock에 대한 다음 신뢰 관계 정책을 IAM 정책에 연결하십시오.

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

IAM 권한 누락

Amazon Bedrock 지식 기반을 만드는 데 사용한 IAM 역할에 iam:CreateRole 권한이 없는 경우, 다음과 같은 오류가 발생합니다.

"User: arn:aws:sts::account id:assumed-role/IAM role/IAM user is not authorized to perform: iam:CreateRole on resource: arn:aws:iam:region:account id:role/service-role/bedrock-knowledge-base because no identity-based policy allows the iam:CreateRole action"

이 오류를 해결하려면 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"
        }
    ]
}

참고: service-role-name을 서비스 역할 이름으로 바꾸십시오.

Amazon Bedrock 지식 기반을 만드는 데 사용한 IAM 역할에 iam:PassRole 권한이 없는 경우, 다음과 같은 오류가 발생합니다.

"User: arn:aws:sts::account id:assumed-role/IAM role/IAM user is not authorized to perform: iam:PassRole on resource: arn:aws:iam:region:account id:role/service-role/bedrock-knowledge-base because no identity-based policy allows the iam:PassRole action"

이 오류를 해결하려면 IAM 정책에 iam:PassRole 권한을 추가하십시오.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::*:role/service-role-name"
        }
    ]
}

참고: service-role-name을 서비스 역할 이름으로 바꾸십시오.

Amazon OpenSearch Serverless 컬렉션에 대한 권한 누락

IAM 서비스 역할에 Amazon OpenSearch Serverless 컬렉션에 필요한 권한이 없는 경우 다음과 같은 오류가 발생합니다.

"The knowledge base storage configuration provided is invalid... Request failed: [security_exception] 403 Forbidden"

이 오류를 해결하려면 IAM 서비스 역할에 Amazon OpenSearch Serverless 컬렉션에 필요한 권한을 포함하십시오. Amazon OpenSearch Serverless에서 지식 기반을 위한 벡터 데이터베이스를 만든 경우 다음 정책을 연결하십시오.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "OpenSearchServerlessAPIAccessAllStatement",
            "Effect": "Allow",
            "Action": [
                "aoss:APIAccessAll"
            ],
            "Resource": [
                "arn:aws:aoss:region:account-id:collection/collection-id"
            ]
        }
    ]
}

위 정책은 컬렉션에 대한 액세스에 사용하는 IAM 서비스 역할을 제공합니다.

Amazon OpenSearch Serverless 컬렉션 콘솔의 데이터 액세스 정책이 Amazon Bedrock 서비스 역할에 권한을 부여하는지 확인합니다. 또한 Amazon Bedrock 서비스 역할이 데이터 액세스 제어 정책의 위탁자 섹션에 나열되어 있는지 확인하십시오.

벡터 데이터베이스가 AWS Secrets Manager 보안 암호로 구성되었을 수 있습니다. 사용자가 데이터베이스에 액세스할 수 있도록 IAM 서비스 역할이 AWS Secrets Manager에서 계정을 인증하도록 허용하는지 확인하십시오.

엔드포인트 인증 누락

Amazon OpenSearch Service 컬렉션의 네트워크 정책에 Amazon Bedrock 엔드포인트 도메인 이름을 추가하지 않은 경우 다음과 같은 오류가 발생합니다.

"The knowledge base storage configuration provided is invalid... Request failed: [http_exception] server returned 401"

Amazon Bedrock에 프라이빗 컬렉션 또는 가상 프라이빗 클라우드(VPC) 엔드포인트에 대한 액세스 권한을 부여하려면 네트워크 정책에 엔드포인트 도메인 이름을 추가합니다.

이 오류를 해결하려면 프라이빗 네트워크 정책으로 컬렉션을 업데이트하십시오. 프라이빗 네트워크 정책이 적용된 컬렉션이 없는 경우 컬렉션을 만들어야 합니다. 자세한 내용은 다음 문서에서 프라이빗 네트워크 정책을 사용하여 컬렉션 만들기 섹션을 참조하십시오.

프라이빗 네트워크 정책으로 Amazon OpenSearch Serverless 컬렉션을 사용하여 Amazon Bedrock에 지식 기반을 만들려면 어떻게 해야 합니까?

참고: 새 컬렉션을 만들 때 액세스 유형에서 프라이빗을 선택하십시오. 또한 AWS 서비스 프라이빗 액세스를 선택한 다음, bedrock.amazonaws.com을 허용된 서비스 목록에 추가해야 합니다.

S3 버킷에 대한 CORS 권한 누락

지식 기반에 Amazon Simple Storage Service(Amazon S3) 데이터 소스가 있고 버킷에 필요한 CORS(Cross-Origin Resource Sharing) 권한이 없는 경우, 다음 오류가 발생합니다.

"The knowledge base storage configuration provided is invalid... Dependency error document status code: 404, error message: no such index [bedrock-knowledge-base-default-index]"

S3 버킷에 적절한 CORS 구성이 없으면 Amazon Bedrock 지식 기반에서 S3 버킷에 저장된 데이터에 액세스할 수 없습니다.

오류를 해결하려면 다음 CORS 구성을 사용하여 S3 버킷에 CORS를 설정하십시오.

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "PUT",
            "POST",
            "DELETE"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "Access-Control-Allow-Origin"
        ]
    }
]

Amazon OpenSearch Serverless가 인덱스의 모든 노드 또는 복제본에 변경 사항을 전파하는 데 시간이 필요하기 때문에 이 오류가 표시될 수도 있습니다.

Amazon OpenSearch Serverless로 인한 지연 문제를 해결하려면 다음 작업을 수행하십시오.

  • 사용하려는 서비스 역할에 OpenSearch Serverless 컬렉션 및 선택한 벡터 데이터베이스에 액세스하고 상호 작용할 수 있는 권한이 있는지 확인합니다.
  • 기존 인덱스가 있는지 또는 Amazon OpenSearch Serverless에서 새 인덱스를 수동으로 만들 수 있는지 확인합니다. Amazon OpenSearch 대시보드에서 인덱스를 수동으로 만들 수 있는 경우 시스템 내 최종 일관성으로 인해 오류가 발생할 수 있습니다. 이 오류를 해결하려면 시스템이 변경 사항을 완전히 전파하고 일관된 상태에 도달할 때까지 약 5분 정도 기다리십시오. 인덱스를 수동으로 만들 수 없는 경우 작업 수행에 필요한 권한이 있는지 확인합니다. 자세한 내용은 OpenSearch 대시보드의 샘플 데이터세트를 참조하십시오.