

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

# 관리형 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-access-ds)

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

다음 정책은 Amazon Bedrock이 이 역할을 맡아 지식 기반을 생성하고 관리할 수 있도록 허용합니다. 하나 이상의 전역 조건 컨텍스트 키를 사용하여 권한 범위를 제한할 수 있습니다. 자세한 정보는 [AWS 전역 조건 컨텍스트 키](https://docs.aws.amazon.com/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"
            ]
        }
    ]
}
```

------

## 데이터 소스에 액세스할 수 있는 권한
<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}}}"
        ]
    }]
}
```