

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

# 모델 사용자 지정 액세스 및 보안
<a name="custom-model-job-access-security"></a>

이 페이지에서는 미세 조정, 강화 미세 조정, 추출 및 모델 작업을 포함하여 모든 Amazon Bedrock 모델 사용자 지정 유형에 대한 포괄적인 보안 및 권한 정보를 제공합니다. 모델 사용자 지정을 시작하기 전에 Amazon Bedrock에 필요한 액세스 유형을 이해하고 사용자 지정 작업 및 아티팩트를 보호하기 위한 몇 가지 옵션을 고려해야 합니다.

다음 섹션에는 다양한 사용자 지정 시나리오에 필요한 권한이 포함되어 있습니다. 특정 사용 사례에 따라 적절한 권한을 선택합니다.

## 기본 모델 사용자 지정 권한
<a name="custom-model-job-basic-permissions"></a>

모든 모델 사용자 지정 작업에는 이러한 기본 권한이 필요합니다. 이는 미세 조정, 추출 및 기타 사용자 지정 유형에 적용됩니다.

### 모델 사용자 지정을 위한 IAM 서비스 역할 생성
<a name="custom-model-job-service-role"></a>

모델 사용자 지정 훈련 및 검증 데이터를 저장하려는 S3 버킷에 액세스하려면 Amazon Bedrock에 AWS Identity and Access Management (IAM) 서비스 역할이 필요합니다. 이를 수행하는 몇 가지 방법이 있습니다.
+  AWS Management Console을 사용하여 서비스 역할을 자동으로 생성합니다.
+ S3 버킷에 액세스할 수 있는 적절한 권한을 사용하여 서비스 역할을 수동으로 생성합니다.

수동 옵션의 경우 서비스에 권한을 [위임할 역할 생성의 단계에 따라 IAM 역할을 생성하고 다음 권한을 연결합니다 AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html).
+ 신뢰 관계
+ S3의 훈련 및 검증 데이터에 액세스하고 S3에 출력 데이터를 쓸 수 있는 권한
+ (선택 사항) KMS 키로 다음 리소스 중 하나를 암호화하는 경우 키를 복호화할 수 있는 권한([사용자 지정 모델 암호화](encryption-custom-job.md) 참조)
  + 모델 사용자 지정 작업 또는 그에 따른 사용자 지정 모델
  + 모델 사용자 지정 작업용 훈련, 검증 또는 출력 데이터

### 신뢰 관계
<a name="custom-model-job-service-role-trust-relationship"></a>

다음 정책은 Amazon Bedrock이 이 역할을 맡아 모델 사용자 지정 작업을 수행하도록 허용합니다. 아래에서는 사용 가능한 정책 예제를 보여줍니다.

`Condition` 필드와 함께 하나 이상의 글로벌 조건 컨텍스트 키를 사용하여 [서비스 간 대리자 혼동 방지](cross-service-confused-deputy-prevention.md)를 위해 권한 범위를 선택적으로 제한할 수 있습니다. 자세한 정보는 [AWS 전역 조건 컨텍스트 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)를 참조하세요.
+ `aws:SourceAccount` 값을 계정 ID로 설정합니다.
+ (선택 사항) `ArnEquals` 또는 `ArnLike` 조건을 사용하여 범위를 계정 ID의 특정 모델 사용자 지정 작업으로 제한합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:model-customization-job/*"
                }
            }
        }
    ]
}
```

------

### S3의 훈련 및 검증 파일에 액세스하고 S3에 출력 파일을 쓸 수 있는 권한
<a name="custom-model-job-service-role-s3-permissions"></a>

다음 정책을 연결하여 역할이 훈련 및 검증 데이터에 액세스하고 출력 데이터를 쓸 버킷에 액세스할 수 있도록 허용합니다. `Resource` 목록의 값을 실제 버킷 이름으로 바꿉니다.

버킷의 특정 폴더에 대한 액세스를 제한하려면 폴더 경로와 함께 `s3:prefix` 조건 키를 추가합니다. [예제 2: 특정 접두사가 있는 버킷의 객체 목록 가져오기](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#condition-key-bucket-ops-2)의 **사용자 정책** 예제를 따르면 됩니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::training-bucket",
                "arn:aws:s3:::training-bucket/*",
                "arn:aws:s3:::validation-bucket",
                "arn:aws:s3:::validation-bucket/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::output-bucket",
                "arn:aws:s3:::output-bucket/*"
            ]
        }
    ]
}
```

------

## 모델 복사 권한
<a name="custom-model-job-model-copying-permissions"></a>

모델을 다른 리전에 복사하려면 역할의 현재 권한과 모델의 구성에 따라 특정 권한이 필요합니다.

1. 역할에 [AmazonBedrockFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockFullAccess) 정책이 연결되어 있지 않은 경우, 역할에 다음과 같은 ID 기반 정책을 연결하여 모델을 복사하고 복사 작업을 추적할 수 있는 최소 권한을 허용합니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "CopyModels",
               "Effect": "Allow",
               "Action": [
                   "bedrock:CreateModelCopyJob",
                   "bedrock:GetModelCopyJob",
                   "bedrock:ListModelCopyJobs"
               ],
               "Resource": [
                   "arn:aws:bedrock:us-east-1::foundation-model/model-id"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:RequestedRegion": [
                           "us-east-1"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. (선택 사항) 복사할 모델을 KMS 키로 암호화한 경우, 역할을 통해 복호화할 수 있도록 [모델을 암호화한 KMS 키에 키 정책을 연결](encryption-custom-job.md#encryption-key-policy-decrypt)합니다.

1. (선택 사항) KMS 키로 모델 사본을 암호화하려는 경우, 역할을 통해 키를 사용하여 모델을 암호화할 수 있도록 [모델 암호화에 사용할 KMS 키에 키 정책을 연결](encryption-custom-job.md#encryption-key-policy-encrypt)합니다.

## 교차 리전 추론 프로파일 권한
<a name="custom-models-cross-region-inference-profile-basic-permissions"></a>

추출 작업에서 교사 모델에 교차 리전 추론 프로파일을 사용하려면 추론 프로파일의 각 리전에 있는 모델 AWS 리전외에도에서 추론 프로파일을 호출할 수 있는 권한이 서비스 역할에 있어야 합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossRegionInference",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:inference-profile/${InferenceProfileId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}"
            ]
        }
    ]
}
```

------

## (선택 사항) 교차 리전 추론 프로파일을 사용하여 증류 작업을 생성할 수 있는 권한
<a name="custom-models-cross-region-inference-profile-permissions"></a>

추출 작업에서 교사 모델에 교차 리전 추론 프로파일을 사용하려면 추론 프로파일의 각 리전에 있는 모델 AWS 리전외에도에서 추론 프로파일을 호출할 수 있는 권한이 서비스 역할에 있어야 합니다.

교차 리전(시스템 정의) 추론 프로파일을 사용하여 간접 호출할 수 있는 권한의 경우 다음 정책을 서비스 역할에 연결할 권한 정책의 템플릿으로 사용합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossRegionInference",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:inference-profile/${InferenceProfileId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}"
            ]
        }
    ]
}
```

------

## (선택 사항) 모델 사용자 지정 작업 및 아티팩트 암호화
<a name="custom-model-job-encryption"></a>

입력 및 출력 데이터, 사용자 지정 작업 또는 사용자 지정 모델에 대한 추론 요청을 암호화합니다. 자세한 내용은 [사용자 지정 모델 암호화](encryption-custom-job.md) 단원을 참조하십시오.

## (선택 사항) VPC를 사용하여 모델 사용자 지정 작업 보호
<a name="vpc-model-customization"></a>

모델 사용자 지정 작업을 실행하면 작업이 Amazon S3 버킷에 액세스하여 입력 데이터를 다운로드하고 작업 지표를 업로드합니다. 데이터에 대한 액세스 권한을 제어하려면 [Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)로 가상 프라이빗 클라우드(VPC)를 사용하는 것이 좋습니다. 인터넷을 통해 사용자 데이터에 접근할 수 없도록 VPC를 구성하고 대신 [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html)를 사용하여 VPC 인터페이스 엔드포인트를 만들어 데이터에 대한 프라이빗 연결을 설정하여 데이터를 추가로 보호할 수 있습니다. Amazon VPC 및를 Amazon Bedrock과 AWS PrivateLink 통합하는 방법에 대한 자세한 내용은 섹션을 참조하세요[Amazon VPC 및 AWS PrivateLink를 사용하여 데이터 보호](usingVPC.md).

모델 사용자 지정 작업에 대한 훈련, 검증, 출력 데이터에 VPC를 구성하고 사용할 수 있도록 다음 단계를 수행합니다.

**Topics**
+ [모델 사용자 지정 과정에서 데이터를 보호하도록 VPC 설정](#vpc-cm-setup)
+ [모델 사용자 지정 역할에 VPC 권한 연결](#vpc-data-access-role)
+ [모델 사용자 지정 작업을 제출할 때 VPC 구성 추가](#vpc-config)

### 모델 사용자 지정 과정에서 데이터를 보호하도록 VPC 설정
<a name="vpc-cm-setup"></a>

VPC를 설정하려면 [VPC 설정](usingVPC.md#create-vpc)의 단계를 따릅니다. [(예제) VPC를 사용하여 Amazon S3 데이터에 대한 데이터 액세스 제한](vpc-s3.md)의 단계에 따라 S3 VPC 엔드포인트를 설정하고 리소스 기반 IAM 정책을 사용하여 모델 사용자 지정 데이터가 포함된 S3 버킷에 대한 액세스를 제한하면 VPC의 보안을 더욱 강화할 수 있습니다.

### 모델 사용자 지정 역할에 VPC 권한 연결
<a name="vpc-data-access-role"></a>

VPC 설정을 완료한 후 [모델 사용자 지정 서비스 역할](model-customization-iam-role.md)에 다음 권한을 연결하여 VPC에 액세스할 수 있도록 합니다. 작업에 필요한 VPC 리소스에만 액세스할 수 있도록 이 정책을 수정합니다. *\$1\$1\$1subnet-ids\$1\$1* 및 *security-group-id*를 VPC의 값으로 바꿉니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeVpcs",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:123456789012:network-interface/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/BedrockManaged": [
                        "true"
                    ]
                },
                "ArnEquals": {
                    "aws:RequestTag/BedrockModelCustomizationJobArn": [
                        "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id",
                "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id2",
                "arn:aws:ec2:us-east-1:123456789012:security-group/security-group-id"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterfacePermission",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteNetworkInterfacePermission"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "ec2:Subnet": [
                        "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id",
                        "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id2"
                    ],
                    "ec2:ResourceTag/BedrockModelCustomizationJobArn": [
                        "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*"
                    ]
                },
                "StringEquals": {
                    "ec2:ResourceTag/BedrockManaged": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:123456789012:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": [
                        "CreateNetworkInterface"
                    ]
                },
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "BedrockManaged",
                        "BedrockModelCustomizationJobArn"
                    ]
                }
            }
        }
    ]
}
```

------

### 모델 사용자 지정 작업을 제출할 때 VPC 구성 추가
<a name="vpc-config"></a>

이전 섹션에서 설명한 것처럼, VPC 및 필수 역할과 권한을 구성한 후에는 이 VPC를 사용하는 모델 사용자 지정 작업을 생성할 수 있습니다.

작업에 대한 VPC 서브넷 및 보안 그룹을 지정할 경우, Amazon Bedrock은 한 서브넷의 보안 그룹과 연결된 **탄력적 네트워크 인터페이스(ENI)를 생성합니다. ENI를 통해 Amazon Bedrock은 사용자 VPC에 있는 리소스에 연결할 수 있습니다. ENI에 대한 자세한 내용은 *Amazon VPC 사용 설명서*의 [탄력적 네트워크 인터페이스](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html)를 참조하세요. Amazon Bedrock은 생성한 ENI에 `BedrockManaged` 및 `BedrockModelCustomizationJobArn` 태그를 지정합니다.

각각의 가용 영역에서 하나 이상의 서브넷을 제공하는 것이 좋습니다.

보안 그룹을 사용하면 VPC 리소스에 대한 Amazon Bedrock의 액세스를 제어하기 위한 규칙을 설정할 수 있습니다.

콘솔 또는 API를 통해 VPC를 구성할 수 있습니다. 원하는 방법의 탭을 선택한 후 다음 단계를 따릅니다.

------
#### [ Console ]

Amazon Bedrock 콘솔의 경우, 모델 사용자 지정 작업을 생성할 때 선택적 **VPC 설정** 섹션에서 VPC 서브넷과 보안 그룹을 지정합니다. 작업 구성에 대한 자세한 내용은 [미세 조정을 위한 모델 사용자 지정 작업 제출](model-customization-submit.md) 섹션을 참조하세요.

**참고**  
VPC 구성이 포함된 작업의 경우, 콘솔은 서비스 역할을 자동으로 만들 수 없습니다. [모델 사용자 지정을 위한 서비스 역할 생성](model-customization-iam-role.md)의 지침에 따라 사용자 지정 역할을 만듭니다.

------
#### [ API ]

[CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html) 요청을 제출할 때 다음 예제와 같이 `VpcConfig`를 요청 파라미터로 포함하여 사용할 VPC 서브넷 및 보안 그룹을 지정할 수 있습니다.

```
"vpcConfig": { 
    "securityGroupIds": [
        "${{sg-0123456789abcdef0}}"
    ],
    "subnets": [
        "${{subnet-0123456789abcdef0}}",
        "${{subnet-0123456789abcdef1}}",
        "${{subnet-0123456789abcdef2}}"
    ]
}
```

------