기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
구조화된 데이터 스토어를 사용하여 지식 기반을 생성하기 위한 쿼리 엔진 및 권한 설정
이 주제에서는 지식 기반을 구조화된 데이터 스토어에 연결할 때 필요한 권한을 설명합니다. Amazon Bedrock 지식 기반을 구조화된 데이터 스토어에 연결하려는 경우 사전 조건을 충족해야 합니다. 충족해야 할 일반 권한 요구 사항은 섹션을 참조하세요지식 기반을 생성하고 관리할 수 있는 사용자 또는 역할에 대한 권한 설정.
중요
임의의 SQL 쿼리를 실행하면 모든 Text-to-SQL 애플리케이션의 보안 위험이 발생할 수 있습니다. 제한된 역할, 읽기 전용 데이터베이스, 샌드박스 사용 등 필요에 따라 예방 조치를 취하는 것이 좋습니다.
Amazon Bedrock 지식 기반은 Amazon Redshift를 데이터 스토어 쿼리를 위한 쿼리 엔진으로 사용합니다. 쿼리 엔진은 구조화된 데이터 스토어에서 메타데이터에 액세스하고 메타데이터를 사용하여 SQL 쿼리를 생성합니다. Amazon Redshift는 SQL을 사용하여 데이터 웨어하우스, 데이터베이스 및 데이터 레이크에서 구조화된 데이터를 분석하는 데이터 웨어하우스 서비스입니다.
Amazon Redshift 쿼리 엔진 생성
사용 사례에 따라 Amazon Redshift Serverless 또는 Amazon Redshift Provisioned를 사용하고 데이터 웨어하우스의 작업 그룹 또는 클러스터에 연결할 수 있습니다. Amazon Redshift 엔진이 쿼리할 수 있는 기본 데이터는 기본적으로 Amazon Redshift 클러스터에 저장된 데이터이거나 기본값 아래에 있는 데이터 AWS Glue Data Catalog (예: Amazon S3)일 수 있습니다.
쿼리 엔진을 이미 생성한 경우이 사전 조건을 건너뛸 수 있습니다. 그렇지 않으면 다음 단계를 수행하여 Amazon Redshift 프로비저닝 또는 Amazon Redshift Serverless 쿼리 엔진을 설정합니다.
프로비저닝된 Amazon Redshift에서 쿼리 엔진을 설정하려면
-
Amazon Redshift 시작 안내서의 1단계: 샘플 Amazon Redshift 클러스터 생성의 절차를 따릅니다.
-
클러스터 ID를 기록해 둡니다.
-
(선택 사항) Amazon Redshift 프로비저닝된 클러스터에 대한 자세한 내용은 Amazon Redshift 관리 안내서의 Amazon Redshift 프로비저닝된 클러스터를 참조하세요.
Amazon Redshift Serverless에서 쿼리 엔진을 설정하려면
-
Amazon Redshift 시작 안내서의 Amazon Redshift Serverless를 사용하여 데이터 웨어하우스 생성의 설정 절차만 따르고 기본 설정으로 구성합니다.
-
작업 그룹 ARN을 기록해 둡니다.
-
(선택 사항) Amazon Redshift Serverless 작업 그룹에 대한 자세한 내용은 Amazon Redshift 관리 안내서의 작업 그룹 및 네임스페이스를 참조하세요.
Amazon Redshift 쿼리 엔진 권한 구성
선택한 Amazon Redshift 쿼리 엔진에 따라 특정 권한을 구성할 수 있습니다. 구성하는 권한은 인증 방법에 따라 다릅니다. 다음 표에는 다양한 쿼리 엔진에 사용할 수 있는 인증 방법이 나와 있습니다.
인증 방법 | Amazon Redshift 프로비저닝됨 | Amazon Redshift Serverless |
---|---|---|
IAM |
![]() |
![]() |
데이터베이스 사용자 이름 |
![]() |
![]() |
AWS Secrets Manager |
![]() |
![]() |
Amazon Bedrock 지식 기반은 서비스 역할을 사용하여 지식 기반을 구조화된 데이터 스토어에 연결하고, 이러한 데이터 스토어에서 데이터를 검색하고, 사용자 쿼리 및 데이터 스토어 구조를 기반으로 SQL 쿼리를 생성합니다.
참고
AWS Management Console 를 사용하여 지식 기반을 생성하려는 경우이 사전 조건을 건너뛸 수 있습니다. 콘솔은 적절한 권한을 가진 Amazon Bedrock 지식 기반 서비스 역할을 생성합니다.
적절한 권한이 있는 사용자 지정 IAM 서비스 역할을 생성하려면 역할 생성의 단계에 따라에 권한을 위임 AWS 서비스하고에 정의된 신뢰 관계를 연결합니다신뢰 관계.
그런 다음 지식 기반에 대한 권한을 추가하여 Amazon Redshift 쿼리 엔진 및 데이터베이스에 액세스합니다. 사용 사례에 적용되는 섹션을 확장합니다.
사용자 지정 서비스 역할에 다음 정책을 연결하여 데이터에 액세스하고 이를 사용하여 쿼리를 생성할 수 있도록 합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RedshiftDataAPIStatementPermissions", "Effect": "Allow", "Action": [ "redshift-data:GetStatementResult", "redshift-data:DescribeStatement", "redshift-data:CancelStatement" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "redshift-data:statement-owner-iam-userid": "
${aws:userid}
" } } }, { "Sid": "RedshiftDataAPIExecutePermissions", "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement" ], "Resource": [ "arn:aws:redshift:${Region}
:${Account}
:cluster:${Cluster}
" ] }, { "Sid": "SqlWorkbenchAccess", "Effect": "Allow", "Action": [ "sqlworkbench:GetSqlRecommendations", "sqlworkbench:PutSqlGenerationContext", "sqlworkbench:GetSqlGenerationContext", "sqlworkbench:DeleteSqlGenerationContext" ], "Resource": "*" }, { "Sid": "GenerateQueryAccess", "Effect": "Allow", "Action": [ "bedrock:GenerateQuery" ], "Resource": "*" } ] }
또한 서비스 역할이 쿼리 엔진에 인증할 수 있도록 권한을 추가해야 합니다. 섹션을 확장하여 해당 메서드에 대한 권한을 확인합니다.
연결 권한은 인증 방법에 따라 다릅니다. 섹션을 확장하여 메서드에 대한 권한을 확인합니다.
지식 기반 서비스 역할이 데이터 스토어에 액세스하도록 허용
데이터가 지원되는 다음 구조화된 데이터 스토어 중 하나에 저장되어 있는지 확인합니다.
Amazon Redshift
AWS Glue Data Catalog (AWS Lake Formation)
다음 표에는 데이터 스토어에 따라 쿼리 엔진에 사용할 수 있는 인증 방법이 요약되어 있습니다.
인증 방법 | Amazon Redshift | AWS Glue Data Catalog (AWS Lake Formation) |
---|---|---|
IAM |
![]() |
![]() |
데이터베이스 사용자 이름 |
![]() |
![]() |
AWS Secrets Manager |
![]() |
![]() |
Amazon Bedrock Knowledge Bases 서비스 역할에 대한 권한을 설정하여 데이터 스토어에 액세스하고 이를 기반으로 쿼리를 생성하는 방법을 알아보려면 데이터 스토어가 있는 서비스에 해당하는 섹션을 확장합니다.
Amazon Bedrock 지식 기반 서비스 역할에 Amazon Redshift 데이터베이스에 대한 액세스 권한을 부여하려면 Amazon Redshift 쿼리 편집기 v2를 사용하고 다음 SQL 명령을 실행합니다.
-
(IAM으로 인증하고 데이터베이스에 대해 사용자가 아직 생성되지 않은 경우) CREATE USER를 사용하여 데이터베이스 사용자를 생성하고 IAM을 통해 인증하도록 허용하는 다음 명령을 실행하여
${service-role}
을 생성한 사용자 지정 Amazon Bedrock 지식 기반 서비스 역할의 이름으로 바꿉니다.CREATE USER "IAMR:
${service-role}
" WITH PASSWORD DISABLE;중요
콘솔에서 생성한 Amazon Bedrock 지식 기반 서비스 역할을 사용한 다음이 단계를 수행하기 전에 데이터 스토어를 동기화하면 사용자가 자동으로 생성되지만 사용자에게 데이터 스토어에 액세스할 수 있는 권한이 부여되지 않았기 때문에 동기화가 실패합니다. 동기화하기 전에 다음 단계를 수행해야 합니다.
-
GRANT 명령을 실행하여 데이터베이스에서 정보를 검색할 수 있는 자격 증명 권한을 부여합니다.
중요
CREATE
,UPDATE
또는DELETE
액세스 권한을 부여하지 마십시오. 이러한 작업을 허용하면 의도하지 않은 데이터 수정이 발생할 수 있습니다.액세스할 수 있는 테이블을 더 세밀하게 제어하기 위해
ALL TABLES
특정 테이블 이름을${schemaName}
${tableName}
표기법으로 바꿀 수 있습니다. 이 표기법에 대한 자세한 내용은 데이터베이스 간 쿼리의 객체 쿼리 섹션을 참조하세요. https://docs.aws.amazon.com/redshift/latest/dg/cross-database-overview.html -
Redshift 데이터베이스에서 새 스키마를 생성한 경우 다음 명령을 실행하여 새 스키마에 대한 자격 증명 권한을 부여합니다.
GRANT USAGE ON SCHEMA ${schemaName} TO "IAMR:${serviceRole}";
Amazon Bedrock 지식 기반 서비스 역할에 AWS Glue Data Catalog 데이터 스토어에 대한 액세스 권한을 부여하려면 Amazon Redshift 쿼리 편집기 v2를 사용하고 다음 SQL 명령을 실행합니다.
-
CREATE USER를 사용하여 데이터베이스 사용자를 생성하고 IAM을 통해 인증하도록 허용하는 다음 명령을 실행하여
${service-role}
을 생성한 사용자 지정 Amazon Bedrock 지식 기반 서비스 역할의 이름으로 바꿉니다.CREATE USER "IAMR:
${service-role}
" WITH PASSWORD DISABLE;중요
콘솔에서 생성한 Amazon Bedrock 지식 기반 서비스 역할을 사용한 다음이 단계를 수행하기 전에 데이터 스토어를 동기화하면 사용자가 자동으로 생성되지만 사용자에게 데이터 스토어에 액세스할 수 있는 권한이 부여되지 않았기 때문에 동기화가 실패합니다. 동기화하기 전에 다음 단계를 수행해야 합니다.
-
다음 GRANT 명령을 실행하여 서비스 역할에 데이터베이스에서 정보를 검색할 수 있는 권한을 부여합니다.
GRANT USAGE ON DATABASE awsdatacatalog TO "IAMR:
${serviceRole}
";중요
CREATE
,UPDATE
또는DELETE
액세스 권한을 부여하지 마십시오. 이러한 작업을 허용하면 의도하지 않은 데이터 수정이 발생할 수 있습니다. -
AWS Glue Data Catalog 데이터베이스에 대한 액세스를 허용하려면 서비스 역할에 다음 권한을 연결합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "glue:GetDatabases", "glue:GetDatabase", "glue:GetTables", "glue:GetTable", "glue:GetPartitions", "glue:GetPartition", "glue:SearchTables" ], "Resource": [ "arn:aws:glue:
${Region}
:${Account}
:table/${DatabaseName}
/${TableName}
", "arn:aws:glue:${Region}
:${Account}
:database/${DatabaseName}
", "arn:aws:glue:${Region}
:${Account}
:catalog" ] } ] } -
다음을 수행하여를 통해 서비스 역할에 권한을 부여합니다 AWS Lake Formation ( Lake Formation 및 Amazon Redshift와의 관계에 대한 자세한 내용은 Redshift용 데이터 소스 참조).
-
에 로그인 AWS Management Console하고 https://console.aws.amazon.com/lakeformation/
Lake Formation 콘솔을 엽니다. -
왼쪽 탐색 창에서 데이터 권한을 선택합니다.
-
Amazon Bedrock 지식 기반에 사용 중인 서비스 역할에 권한을 부여합니다.
-
데이터베이스 및 테이블에 대한 설명 및 선택 권한을 부여합니다.
-
-
에서 사용하는 데이터 소스에 따라 해당 데이터 소스에 액세스할 수 있는 권한을 추가해야 할 AWS Glue Data Catalog수 있습니다(자세한 내용은 AWS Glue 다른에 대한 종속성 AWS 서비스 참조). 예를 들어 데이터 소스가 Amazon S3 위치에 있는 경우 위 정책에 다음 문을 추가해야 합니다.
{ "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::
${BucketName}
", "arn:aws:s3:::${BucketName}
/*" ] } -
(선택 사항) AWS KMS 를 사용하여 Amazon S3 또는의 데이터를 암호화하는 경우 KMS 키의 데이터를 해독할 수 있는 권한을 역할에 추가 AWS Glue Data Catalog해야 합니다.
{ "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${Region}:${Account}:key/{KmsId}", "arn:aws:kms:${Region}:${Account}:key/{KmsId}" ], "Effect": "Allow" }