

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

# 관리형 Amazon Bedrock 지식 기반에 대한 서비스 역할 생성
<a name="kb-managed-permissions"></a>

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

**참고**  
서비스 역할을 사용할 때는 여러 역할 간에 정책을 공유할 수 없습니다.
+ 신뢰 관계
+ Amazon Bedrock 기본 모델에 대한 액세스
+ 데이터를 저장하는 데이터 소스에 대한 액세스 권한
+ (멀티모달 스토리지 대상을 구성하는 경우) 멀티모달 스토리지 버킷에 대한 액세스

**Topics**
+ [신뢰 관계](#kb-managed-permissions-trust)
+ [Amazon Bedrock 모델에 액세스할 수 있는 권한](#kb-managed-permissions-access-models)
+ [멀티모달 스토리지 대상에 대한 권한](#kb-managed-permissions-multimodal-storage)
+ [데이터 소스에 액세스할 수 있는 권한](#kb-managed-permissions-access-ds)

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

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

**참고**  
보안을 위한 가장 좋은 방법은 지식 기반 ID를 생성한 후 {{\*}}를 특정 지식 기반 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-managed-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"
            ]
        }
    ]
}
```

------

TwelveLabs Marengo Embed 3.0 임베딩 모델을 사용하는 경우 지식 기반은 모델을 동기식 및 비동기식으로 호출하므로 역할에는 둘 다에 대한 권한이 필요합니다. 다음 문을 첨부하여 {{${Region}}} 및 {{${AccountId}}}를 지식 기반의 AWS 리전 및 계정 ID로 바꾸고 {{${InferenceProfileId}}}를 사용하는 추론 프로파일의 ID로 바꿉니다. `foundation-model` ARN은 특정 리전 대신 리전`*`에를 사용합니다. 이는 교차 리전 추론 프로파일이 모델 호출을 해당 멤버의 기본 파운데이션 모델로 라우팅할 수 있기 때문에 필요합니다 AWS 리전.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "BedrockInvokeModelStatement",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:*::foundation-model/twelvelabs.marengo-embed-3-0-v1:0",
                "arn:aws:bedrock:{{${Region}}}:{{${AccountId}}}:inference-profile/{{${InferenceProfileId}}}",
                "arn:aws:bedrock:{{${Region}}}:{{${AccountId}}}:async-invoke/*"
            ]
        },
        {
            "Sid": "BedrockGetAsyncInvokeStatement",
            "Effect": "Allow",
            "Action": [
                "bedrock:GetAsyncInvoke"
            ],
            "Resource": [
                "arn:aws:bedrock:{{${Region}}}:{{${AccountId}}}:async-invoke/*"
            ]
        }
    ]
}
```

**참고**  
앞의 정책에는 [추론 프로필](inference-profiles-support.md) ARN이 포함되어 있습니다. 지식 기반을 생성할 TwelveLabs Marengo Embed 3.0 때 모델에 대한 추론 프로필을 지정 AWS 리전 해야 하는 경우도 있기 때문입니다. 이러한 리전에서 지식 기반은 추론 프로파일과 온디맨드 모델을 모두 사용하므로 역할은 둘 다에 액세스해야 합니다. 추론 프로파일을 사용하지 않는 경우 `Resource` 목록에서 추론 프로파일 ARN을 생략할 수 있습니다.  
사용하는 리전에 추론 프로파일이 필요한지 확인하려면 섹션을 참조하세요[네이티브 멀티모달 처리](kb-managed-native-multimodal.md).

## 멀티모달 스토리지 대상에 대한 권한
<a name="kb-managed-permissions-multimodal-storage"></a>

멀티모달 스토리지 대상은 멀티모달 콘텐츠를 처리하고 지식 기반으로 수집하는 데 사용되는 Amazon S3 버킷입니다. Amazon Bedrock 지식 기반은 쉽게 액세스할 수 있도록 버킷 내에 `aws/` 접두사 폴더를 생성합니다.

다음 정책을 연결하여 역할이이 콘텐츠를 읽고, 쓰고, 삭제할 수 있는 권한을 제공합니다. {{amzn-s3-demo-bucket}}을 멀티모달 스토리지 버킷의 이름으로 바꿉니다.

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

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

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

**Topics**
+ [Amazon S3 데이터 소스에 액세스할 수 있는 권한](#kb-managed-permissions-access-s3)
+ [Confluence 데이터 소스에 액세스할 수 있는 권한](#kb-managed-permissions-access-confluence)
+ [Microsoft SharePoint 데이터 소스에 액세스할 수 있는 권한](#kb-managed-permissions-access-sharepoint)
+ [웹 크롤러 데이터 소스에 액세스할 수 있는 권한](#kb-managed-permissions-access-webcrawler)
+ [Microsoft OneDrive 데이터 소스에 액세스할 수 있는 권한](#kb-managed-permissions-access-onedrive)
+ [Google Drive 데이터 소스에 액세스할 수 있는 권한](#kb-managed-permissions-access-googledrive)

### Amazon S3 데이터 소스에 액세스할 수 있는 권한
<a name="kb-managed-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-managed-permissions-access-confluence"></a>

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

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

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

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

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

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

**참고**  
인증서 기반 인증(X.509)을 사용하고 인증서를 Amazon S3 버킷에 저장하는 경우 인증서 파일(.pfx 또는 .pem)이 저장되는 버킷 및 키의 서비스 역할에도 `s3:GetObject` 권한을 부여해야 합니다. 다음 예제에서는 필요한 추가 정책 설명을 보여줍니다.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "s3:GetObject"
        ],
        "Resource": [
            "arn:aws:s3:::{{${CertificateBucketName}}}/{{${CertificateKeyPath}}}"
        ]
    }]
}
```

### 웹 크롤러 데이터 소스에 액세스할 수 있는 권한
<a name="kb-managed-permissions-access-webcrawler"></a>

다음 정책을 연결하여 웹 크롤러를 통해 역할에 웹 사이트에 액세스할 수 있는 권한을 제공합니다. 웹 사이트에 인증이 필요한 경우 자격 증명을 저장하는 AWS Secrets Manager 보안 암호에 액세스할 수 있는 권한을 포함합니다.

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

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

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

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

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

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

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