

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

# MLflow에 대한 IAM 권한을 설정합니다.
<a name="mlflow-create-tracking-server-iam"></a>

Amazon SageMaker AI에서 MLflow를 시작하려면 필수 IAM 서비스 역할을 구성해야 합니다.

Studio에서 실험에 액세스하기 위해 새 Amazon SageMaker AI 도메인을 만드는 경우 도메인 설정 중에 필수 IAM 권한을 구성할 수 있습니다. 자세한 내용은 [새 도메인을 생성할 때 MLflow IAM 권한 설정](#mlflow-create-tracking-server-iam-role-manager) 단원을 참조하십시오.

IAM 콘솔을 사용하여 권한을 설정하려면 [IAM 콘솔에서 필요한 IAM 서비스 역할 생성](#mlflow-create-tracking-server-iam-service-roles) 섹션을 참조하세요.

`sagemaker-mlflow` 작업에 대한 권한 부여 제어를 구성해야 합니다. 선택적으로 작업별 MLflow 권한을 관리하기 위해 보다 세분화된 권한 부여 제어를 정의할 수 있습니다. 자세한 내용은 [작업별 권한 부여 제어 생성](#mlflow-create-tracking-server-update-iam-actions) 섹션을 참조하세요.

## 새 도메인을 생성할 때 MLflow IAM 권한 설정
<a name="mlflow-create-tracking-server-iam-role-manager"></a>

조직에 새 Amazon SageMaker AI 도메인을 설정할 때 **사용자 및 ML 활동** 설정을 통해 도메인 서비스 역할에 대한 IAM 권한을 구성할 수 있습니다.

**새 도메인을 설정할 때 SageMaker AI에서 MLflow를 사용하기 위한 IAM 권한을 구성하려면 다음과 같이 합니다.**

1. SageMaker AI 콘솔을 사용하여 새 도메인을 설정합니다. **SageMaker AI 도메인 설정** 페이지에서 **조직용 설정**을 선택합니다. 자세한 내용은 [콘솔을 사용한 사용자 지정 설정](onboard-custom.md#onboard-custom-instructions-console) 단원을 참조하십시오.

1. **사용자 및 ML 활동을** 설정할 때 MLflow에 대한 다음 ML 활동 중에서 선택합니다. ** MLflow 사용**, ** MLflow 추적 서버 관리**, ** MLflow AWS 서비스에 필요한 액세스**. 이러한 활동에 대한 자세한 내용은 이 절차를 따르는 설명을 참조하세요.

1. 새 도메인의 설정 및 생성을 완료합니다.

Amazon SageMaker Role Manager에서 사용할 수 있는 MLflow ML 활동은 다음과 같습니다.
+ **MLflow 사용**: 이 ML 활동은 도메인 서비스 역할에 MLflow의 실험, 실행 및 모델을 관리하기 위해 MLflow REST API를 호출할 수 있는 권한을 부여합니다.
+ **MLflow 추적 서버 관리:** 이 ML 활동은 도메인 서비스 역할에 추적 서버를 생성, 업데이트, 시작, 중지 및 삭제할 수 있는 권한을 부여합니다.
+ **MLflow용 AWS 서비스에 필요한 액세스**:이 ML 활동은 Amazon S3 및 SageMaker AI 모델 레지스트리에 액세스하는 데 필요한 도메인 서비스 역할 권한을 제공합니다. 이렇게 하면 도메인 서비스 역할을 추적 서버 서비스 역할로 사용할 수 있습니다.

역할 관리자의 ML 활성화에 대한 자세한 내용은 [ML 활동 참조](role-manager-ml-activities.md) 섹션을 참조하세요.

## IAM 콘솔에서 필요한 IAM 서비스 역할 생성
<a name="mlflow-create-tracking-server-iam-service-roles"></a>

도메인 서비스 역할을 생성하거나 업데이트하지 않은 경우 MLflow 추적 서버를 생성하고 사용하려면 IAM 콘솔에서 대신 다음 서비스 역할을 생성해야 합니다.
+ 추적 서버가 SageMaker AI 리소스에 액세스하는 데 사용할 수 있는 추적 서버 IAM 서비스 역할
+ SageMaker AI가 MLflow 리소스를 만들고 관리하는 데 사용할 수 있는 SageMaker AI IAM 서비스 역할

### 추적 서버 IAM 서비스 역할에 대한 IAM 정책
<a name="mlflow-create-tracking-server-iam-service-roles-ts"></a>

추적 서버 IAM 서비스 역할은 추적 서버에서 Amazon S3 및 SageMaker 모델 레지스트리와 같이 필요한 리소스에 액세스하는 데 사용됩니다.

추적 서버 IAM 서비스 역할을 생성할 때 다음 IAM 신뢰 정책을 사용합니다.

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

****  

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

------

IAM 콘솔에서 추적 서버 서비스 역할에 다음 권한 정책을 추가합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:Put*",
                "s3:List*",
                "sagemaker:AddTags",
                "sagemaker:CreateModelPackageGroup",
                "sagemaker:CreateModelPackage",
                "sagemaker:UpdateModelPackage",
                "sagemaker:DescribeModelPackageGroup"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### SageMaker AI IAM 서비스 역할에 대한 IAM 정책
<a name="mlflow-create-tracking-server-iam-service-roles-sm"></a>

SageMaker AI 서비스 역할은 MLflow 추적 서버에 액세스하는 클라이언트에서 사용되며 MLflow REST API를 직접적으로 호출할 권한이 필요합니다. 또한 SageMaker AI 서비스 역할에는 추적 서버 만들기, 업데이트 보기, 시작, 중지 및 삭제하는 SageMaker API 권한이 필요합니다.

새로운 실행 역할을 생성하거나 기존 역할을 업데이트할 수 있습니다. SageMaker AI 서비스 역할에는 다음 정책이 필요합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	     
    "Statement": [        
        {            
            "Effect": "Allow",            
            "Action": [
                "sagemaker-mlflow:*",
                "sagemaker:CreateMlflowTrackingServer",
                "sagemaker:ListMlflowTrackingServers",
                "sagemaker:UpdateMlflowTrackingServer",
                "sagemaker:DeleteMlflowTrackingServer",
                "sagemaker:StartMlflowTrackingServer",
                "sagemaker:StopMlflowTrackingServer",
                "sagemaker:CreatePresignedMlflowTrackingServerUrl"
            ],            
            "Resource": "*"        
        }        
    ]
}
```

------

## 작업별 권한 부여 제어 생성
<a name="mlflow-create-tracking-server-update-iam-actions"></a>

`sagemaker-mlflow`에 대한 권한 부여 제어를 설정해야 하며, 선택적으로 작업별 권한 부여 제어를 구성하여 사용자가 MLflow 추적 서버에 대해 가지고 있는 더 세분화된 MLflow 권한을 제어할 수 있습니다.

**참고**  
다음 단계에서는 MLflow 추적 서버에 대한 ARN을 이미 사용할 수 있다고 가정합니다. 추적 서버를 생성하는 방법을 알아보려면 [Studio를 사용하여 추적 서버 생성](mlflow-create-tracking-server-studio.md) 또는 [를 사용하여 추적 서버 생성 AWS CLI](mlflow-create-tracking-server-cli.md) 섹션을 참조하세요.

다음 명령은 추적 서버에 사용 가능한 모든 SageMaker AI MLflow 작업에 대한 IAM 권한을 제공하는 `mlflow-policy.json` 파일을 만듭니다. 선택적으로 해당 사용자가 수행할 특정 작업을 선택하여 사용자의 권한을 제한할 수 있습니다. 사용할 수 있는 작업의 목록은 [MLflow에 지원되는 IAM 작업](#mlflow-create-tracking-server-iam-actions) 섹션을 참조하세요.

```
# Replace "Resource":"*" with "Resource":"TrackingServerArn" 
# Replace "sagemaker-mlflow:*" with specific actions

printf '{
    "Version": "2012-10-17",		 	 	     
    "Statement": [        
        {            
            "Effect": "Allow",            
            "Action": "sagemaker-mlflow:*",            
            "Resource": "*"        
        }        
    ]
}' > mlflow-policy.json
```

 AWS CLI를 사용하여 IAM 정책을 생성하려면 `mlflow-policy.json` 파일을 사용합니다.

```
aws iam create-policy \
  --policy-name MLflowPolicy \
  --policy-document file://mlflow-policy.json
```

계정 ID를 검색하고 정책을 IAM 역할에 연결합니다.

```
# Get your account ID
aws sts get-caller-identity

# Attach the IAM policy using your exported role and account ID
aws iam attach-role-policy \
  --role-name $role_name \
  --policy-arn arn:aws:iam::123456789012:policy/MLflowPolicy
```

### MLflow에 지원되는 IAM 작업
<a name="mlflow-create-tracking-server-iam-actions"></a>

권한 부여 액세스 제어에는 다음 SageMaker AI MLflow 작업이 지원됩니다.
+ sagemaker-mlflow:AccessUI
+ sagemaker-mlflow:CreateExperiment
+ sagemaker-mlflow:SearchExperiments
+ sagemaker-mlflow:GetExperiment
+ sagemaker-mlflow:GetExperimentByName
+ sagemaker-mlflow:DeleteExperiment
+ sagemaker-mlflow:RestoreExperiment
+ sagemaker-mlflow:UpdateExperiment
+ sagemaker-mlflow:CreateRun
+ sagemaker-mlflow:DeleteRun
+ sagemaker-mlflow:RestoreRun
+ sagemaker-mlflow:GetRun
+ sagemaker-mlflow:LogMetric
+ sagemaker-mlflow:LogBatch
+ sagemaker-mlflow:LogModel
+ sagemaker-mlflow:LogInputs
+ sagemaker-mlflow:SetExperimentTag
+ sagemaker-mlflow:SetTag
+ sagemaker-mlflow:DeleteTag
+ sagemaker-mlflow:LogParam
+ sagemaker-mlflow:GetMetricHistory
+ sagemaker-mlflow:SearchRuns
+ sagemaker-mlflow:ListArtifacts
+ sagemaker-mlflow:UpdateRun
+ sagemaker-mlflow:CreateRegisteredModel
+ sagemaker-mlflow:GetRegisteredModel
+ sagemaker-mlflow:RenameRegisteredModel
+ sagemaker-mlflow:UpdateRegisteredModel
+ sagemaker-mlflow:DeleteRegisteredModel
+ sagemaker-mlflow:GetLatestModelVersions
+ sagemaker-mlflow:CreateModelVersion
+ sagemaker-mlflow:GetModelVersion
+ sagemaker-mlflow:UpdateModelVersion
+ sagemaker-mlflow:DeleteModelVersion
+ sagemaker-mlflow:SearchModelVersions
+ sagemaker-mlflow:GetDownloadURIForModelVersionArtifacts
+ sagemaker-mlflow:TransitionModelVersionStage
+ sagemaker-mlflow:SearchRegisteredModels
+ sagemaker-mlflow:SetRegisteredModelTag
+ sagemaker-mlflow:DeleteRegisteredModelTag
+ sagemaker-mlflow:DeleteModelVersionTag
+ sagemaker-mlflow:DeleteRegisteredModelAlias
+ sagemaker-mlflow:SetRegisteredModelAlias
+ sagemaker-mlflow:GetModelVersionByAlias
+ sagemaker-mlflow:FinalizeLoggedModel
+ sagemaker-mlflow:GetLoggedModel
+ sagemaker-mlflow:DeleteLoggedModel
+ sagemaker-mlflow:SearchLoggedModels
+ sagemaker-mlflow:SetLoggedModelTags
+ sagemaker-mlflow:DeleteLoggedModelTag
+ sagemaker-mlflow:ListLoggedModelArtifacts
+ sagemaker-mlflow:LogLoggedModelParams
+ sagemaker-mlflow:LogOutputs