

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

# 사용자를 위한 SageMaker Canvas 설정
<a name="setting-up-canvas-sso"></a>

Amazon SageMaker Canvas를 설정하려면 다음 작업을 수행합니다.
+ Amazon SageMaker AI 도메인을 생성합니다.
+ 도메인에 대한 사용자 프로필 만들기
+ 사용자를 위해 Okta 싱글 사인온(Okta SSO)을 설정합니다.
+ 모델의 링크 공유를 활성화하세요.

Okta 싱글 사인온(Okta SSO) 을 사용하여 사용자에게 Amazon SageMaker Canvas에 대한 액세스 권한을 부여하세요. SageMaker Canvas는 SAML 2.0 SSO 메서드를 지원합니다. 다음 섹션에서는 Okta SSO를 설정하는 절차를 안내합니다.

도메인을 설정하려면 [Amazon SageMaker AI에 사용자 지정 설정 사용](onboard-custom.md) 섹션을 참조하고 IAM 인증을 사용하여 도메인을 설정하는 지침을 따르세요. 다음 정보를 사용하여 섹션의 절차를 완료할 수 있습니다.
+ 프로젝트 생성 단계는 무시해도 됩니다.
+ 추가적인 Amazon S3 버킷에 대한 액세스 권한을 제공할 필요가 없습니다. 사용자는 역할을 생성할 때 제공되는 기본 버킷을 사용할 수 있습니다.
+ 사용자에게 데이터 과학자와 노트북을 공유할 수 있는 액세스 권한을 부여하려면 **노트북 공유 구성**을 활성화하세요.
+ Amazon SageMaker Studio Classic 버전 3.19.0 이상을 사용합니다. Amazon SageMaker Studio Classic 업데이트에 대한 자세한 내용은 [Amazon SageMaker Studio Classic 종료 및 업데이트](studio-tasks-update-studio.md) 섹션을 참조하세요.

다음 절차에 따라 Okta를 설정합니다. 다음 모든 절차에서 `IAM-role`에 대해 동일한 IAM 역할을 지정합니다.

## SageMaker Canvas 애플리케이션을 Okta에 추가
<a name="canvas-set-up-okta"></a>

Okta의 사인온 방법을 설정합니다.

1. Okta 관리자 대시보드에 로그인합니다.

1. **애플리케이션 추가**를 선택합니다. **AWS 계정 페더레이션을** 검색합니다.

1. **추가**를 선택합니다.

1. 선택 사항: 이름을 **Amazon SageMaker Canvas**로 변경합니다.

1. **다음**을 선택합니다.

1. **사인온** 방법에서 **SAML v2.0**을 선택합니다.

1. **ID 공급자 메타데이터**를 선택하여 메타데이터 XML 파일을 엽니다. 파일을 로컬에 저장합니다.

1. **완료**를 선택합니다.

## IAM에서 ID 페더레이션 설정
<a name="set-up-id-federation-IAM"></a>

AWS Identity and Access Management (IAM)는 계정에 AWS 액세스하는 데 사용하는 AWS 서비스입니다. IAM 계정을 AWS 통해에 액세스할 수 있습니다.

1.  AWS 콘솔에 로그인합니다.

1. **AWS Identity and Access Management (IAM)**을 선택합니다.

1. **ID 제공자**를 선택합니다.

1. **공급자 생성**을 선택합니다.

1. **공급자 구성**에서 다음을 지정합니다.
   + **공급자 유형** - 드롭다운 목록에서 **SAML**을 선택합니다.
   + **공급자 이름** - **Okta**를 지정합니다.
   + **메타데이터 문서** - [SageMaker Canvas 애플리케이션을 Okta에 추가](#canvas-set-up-okta)의 7단계에서 로컬로 저장한 XML 문서를 업로드합니다.

1. **ID 공급자**에서 ID 공급자를 찾으세요. 해당 **공급자 ARN** 값을 복사합니다.

1. **역할**에서 Okta SSO 액세스에 사용할 IAM 역할을 선택합니다.

1. IAM 역할에 대한 **신뢰 관계** 탭에서 **신뢰 관계 편집**을 선택합니다.

1. 복사한 **공급자 ARN** 값을 지정하여 IAM 신뢰 관계 정책을 수정하고 다음 정책을 추가합니다.

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

****  

   ```
     {
     "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws:iam::111122223333:saml-provider/Okta"
           },
           "Action": [
             "sts:AssumeRoleWithSAML",
             "sts:TagSession"
           ],
           "Condition": {
             "StringEquals": {
               "SAML:aud": "https://signin.aws.amazon.com/saml"
             }
           }
         },
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws:iam::111122223333:saml-provider/Okta"
           },
           "Action": [
             "sts:SetSourceIdentity"
           ]
         }
       ]
     }
   ```

------

1. **권한**에 대해 다음 정책을 추가합니다.

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AmazonSageMakerPresignedUrlPolicy",
              "Effect": "Allow",
              "Action": [
                   "sagemaker:CreatePresignedDomainUrl"
              ],
              "Resource": "*"
         }
     ]
   }
   ```

------

## Okta에서 SageMaker Canvas 설정
<a name="canvas-configure-okta"></a>

다음 절차를 사용하여 Okta에서 Amazon SageMaker Canvas를 구성합니다.

Okta를 사용하도록 Amazon SageMaker Canvas를 구성하려면 이 섹션의 단계를 따르세요. 각 **SageMakerStudioProfileName** 필드에 고유한 사용자 이름을 지정해야 합니다. 예를 들어 `user.login`을 값으로 사용할 수 있습니다. 사용자 이름이 SageMaker Canvas 프로필 이름과 다른 경우 고유하게 식별되는 다른 속성을 선택하세요. 예를 들어, 프로필 이름으로 직원의 ID 번호를 사용할 수 있습니다.

**속성**에 설정할 수 있는 값의 예는 절차 다음의 코드를 참조하세요.

1. **디렉터리**에서 **그룹**을 선택합니다.

1. 다음 `sagemaker#canvas#IAM-role#AWS-account-id`패턴으로 그룹을 추가합니다.

1. Okta에서 **AWS 계정 페더레이션** 애플리케이션 통합 구성을 엽니다.

1.  AWS 계정 연동 애플리케이션의 **로그인**을 선택합니다.

1. **편집**을 선택하고 다음을 지정합니다.
   + SAML 2.0
   + **기본 릴레이 상태** – https://*Region*.console.aws.amazon.com/sagemaker/home?region=*Region*\$1/studio/canvas/open/*StudioId*. Studio Classic ID는 콘솔([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/))에서 찾을 수 있습니다.

1. **속성**을 선택합니다.

1. **SageMakerStudioProfileName** 필드에 각 사용자 이름의 고유한 값을 지정합니다. 사용자 이름은 AWS 콘솔에서 생성한 사용자 이름과 일치해야 합니다.

   ```
   Attribute 1:
   Name: https://aws.amazon.com/SAML/Attributes/PrincipalTag:SageMakerStudioUserProfileName 
   Value: ${user.login}
   
   Attribute 2:
   Name: https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys
   Value: {"SageMakerStudioUserProfileName"}
   ```

1. **환경 유형**을 선택합니다. **일반 AWS**을 선택합니다.
   + 환경 유형이 목록에 없는 경우 **ACS URL**에서 ACS URL을 설정할 수 있습니다. 환경 유형이 나열된 경우 ACS URL을 입력할 필요가 없습니다.

1. **ID 제공자 ARN**의 경우 이전 절차의 6단계에서 사용한 ARN을 지정합니다.

1. **세션 기간**을 지정합니다.

1. **모든 역할 참여**를 선택합니다.

1. 다음 필드를 지정하여 **그룹 매핑 사용**을 활성화합니다.
   + **앱 필터** – `okta`
   + **그룹 필터** – `^aws\#\S+\#(?IAM-role[\w\-]+)\#(?accountid\d+)$`
   + **역할 값 패턴** – `arn:aws:iam::$accountid:saml-provider/Okta,arn:aws:iam::$accountid:role/IAM-role`

1. **저장/다음**을 선택합니다.

1. **할당** 아래에서, 생성한 그룹에 애플리케이션을 할당합니다.

## IAM의 액세스 제어에 대한 선택적 정책 추가
<a name="canvas-optional-access"></a>

IAM에서는 사용자 프로필을 생성하는 관리자 사용자에게 다음 정책을 적용할 수 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateSageMakerStudioUserProfilePolicy",
            "Effect": "Allow",
            "Action": "sagemaker:CreateUserProfile",
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": [
                        "studiouserid"
                    ]
                }
            }
        }
    ]
}
```

------

이전 정책을 관리자 사용자에게 추가하기로 선택한 경우 [IAM에서 ID 페더레이션 설정](#set-up-id-federation-IAM)에서 다음 권한을 사용해야 합니다.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Sid": "AmazonSageMakerPresignedUrlPolicy",
           "Effect": "Allow",
           "Action": [
               "sagemaker:CreatePresignedDomainUrl"
           ],
           "Resource": "*",
           "Condition": {
                  "StringEquals": {
                      "sagemaker:ResourceTag/studiouserid": "${aws:PrincipalTag/SageMakerStudioUserProfileName}"
                 }
            }
      }
  ]
}
```

------