Créer un domaine Amazon SageMaker avec RStudio à l'aide de la AWS CLI - Amazon SageMaker

Créer un domaine Amazon SageMaker avec RStudio à l'aide de la AWS CLI

La rubrique suivante explique comment s'intégrer au domaine Amazon SageMaker Domain avec RStudio activé à l'aide de la AWS CLI. Pour une intégration à l'aide de la AWS Management Console, consultez Intégration à Amazon SageMaker Domain.

Conditions préalables

Création d'un rôle DomainExecution

Pour lancer l'application RStudio, vous devez fournir un rôle DomainExecution. Ce rôle est utilisé pour déterminer si RStudio doit être lancé dans le cadre de la création du domaine Amazon SageMaker. Ce rôle est également utilisé par Amazon SageMaker pour accéder à la licence RStudio et envoyer les journaux RStudio. 

Note

Le rôle DomainExecution doit avoir au moins des autorisations AWS License Manager pour accéder à la licence RStudio et des autorisations CloudWatch pour envoyer les journaux dans votre compte.

La procédure suivante montre comment créer le rôle DomainExecution avec l'AWS CLI.

  1. Créez un fichier nommé assume-role-policy.json avec le contenu suivant.

    { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] } } ] }
  2. Créez le rôle DomainExecution. <REGION> devrait être la région AWS dans laquelle lancer votre domaine.

    aws iam create-role --region <REGION> --role-name DomainExecution --assume-role-policy-document file://assume-role-policy.json
  3. Créez un fichier nommé domain-setting-policy.json avec le contenu suivant. Cette politique permet à l'appli RStudioServerPro d'accéder aux ressources nécessaires et à Amazon SageMaker de lancer automatiquement une appli RStudioServerPro lorsque l'appli RStudioServerPro existante est dans un état Deleted ou Failed.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "license-manager:ExtendLicenseConsumption", "license-manager:ListReceivedLicenses", "license-manager:GetLicense", "license-manager:CheckoutLicense", "license-manager:CheckInLicense", "logs:CreateLogDelivery", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogDelivery", "logs:Describe*", "logs:GetLogDelivery", "logs:GetLogEvents", "logs:ListLogDeliveries", "logs:PutLogEvents", "logs:PutResourcePolicy", "logs:UpdateLogDelivery", "sagemaker:CreateApp" ], "Resource": "*" } ] }
  4. Créez la politique de réglage de Domain associée au rôle DomainExecution. Gardez en tête le PolicyArn de la réponse. Vous devrez saisir cet ARN dans les étapes suivantes.

    aws iam create-policy --region <REGION> --policy-name domain-setting-policy --policy-document file://domain-setting-policy.json
  5. Attachez domain-setting-policy au rôle DomainExecution. Utilisez le PolicyArn renvoyé à l'étape précédente.

    aws iam attach-role-policy --role-name DomainExecution --policy-arn <POLICY_ARN>

Créer un domaine Amazon SageMaker avec RStudio à l'aide de l'appli RStudio

L'appli RStudioServerPro est lancée automatiquement lorsque vous créez un domaine Amazon SageMaker à l'aide de la commande de CLI create-domain avec le paramètre RStudioServerProDomainSettings spécifié. Lors du lancement de l'application RStudioServerPro, Amazon SageMaker recherche une licence RStudio valide dans le compte et échoue la création de domaine si la licence est introuvable.

La création d'un domaine Amazon SageMaker diffère en fonction de la méthode d'authentification et du type de réseau. Ces options doivent être utilisées ensemble, avec une méthode d'authentification et un type de connexion réseau sélectionnés. Pour plus d'informations sur les conditions requises pour créer un domaine, consultez CreateDomain.

Les méthodes d'authentification suivantes sont prises en charge.

  • IAM Auth

  • SSO Auth

Les types de connexion réseau suivants sont pris en charge :

  • PublicInternet

  • VPCOnly

Méthodes d'authentification

Mode d'authentification IAM

La section suivante montre comment créer un domaine Amazon SageMaker avec RStudio activé et un type de réseau IAM Auth. Pour plus d'informations sur AWS Identity and Access Management, consultez Qu'est-ce qu'un IAM ?

  • DomainExecutionRoleArn doit correspondre à l'ARN du rôle créé à l'étape précédente.

  • ExecutionRole est l'ARN du rôle attribué aux utilisateurs du domaine Amazon SageMaker.

  • vpc-id doit être l'ID de votre Amazon Virtual Private Cloud. subnet-ids doit être une liste d'ID de sous-réseau séparés par des espaces. Pour plus d'informations sur vpc-id et subnet-ids, consultez VPC et sous-réseaux.

  • RStudioPackageManagerUrl et RStudioConnectUrl sont facultatifs et doivent être définis sur les URL de votre serveur RStudio Package Manager et RStudio Connect, respectivement.

  • app-network-access-type doit être PublicInternetOnly ou VPCOnly.

aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \ --auth-mode IAM \ --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \ --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \ --vpc-id <VPC_ID> \ --subnet-ids <SUBNET_IDS> \ --app-network-access-type <NETWORK_ACCESS_TYPE>

IAM Identity Center Mode d'authentification

La section suivante montre comment créer un domaine Amazon SageMaker avec RStudio activé et un type de réseau SSO Auth. AWS IAM Identity Center (successor to AWS Single Sign-On) doit être activé pour la région dans laquelle le domaine est lancé. Pour en savoir plus sur IAM Identity Center, consultez Qu'est-ce que AWS IAM Identity Center (successor to AWS Single Sign-On) ?.

  • DomainExecutionRoleArn doit correspondre à l'ARN du rôle créé à l'étape précédente.

  • ExecutionRole est l'ARN du rôle attribué aux utilisateurs du domaine Amazon SageMaker.

  • vpc-id doit être l'ID de votre Amazon Virtual Private Cloud. subnet-ids doit être une liste d'ID de sous-réseau séparés par des espaces. Pour plus d'informations sur vpc-id et subnet-ids, consultez VPC et sous-réseaux.

  • RStudioPackageManagerUrl et RStudioConnectUrl sont facultatifs et doivent être définis sur les URL de votre serveur RStudio Package Manager et RStudio Connect, respectivement.

  • app-network-access-type doit être PublicInternetOnly ou VPCOnly.

aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \ --auth-mode SSO \ --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \ --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \ --vpc-id <VPC_ID> \ --subnet-ids <SUBNET_IDS> \ --app-network-access-type <NETWORK_ACCESS_TYPE>

Types de connexion

Type de réseau Internet public/Internet direct

La section suivante montre comment créer un domaine Amazon SageMaker avec RStudio activé et un type de réseau PublicInternet.

  • DomainExecutionRoleArn doit correspondre à l'ARN du rôle créé à l'étape précédente.

  • ExecutionRole est l'ARN du rôle attribué aux utilisateurs du domaine Amazon SageMaker.

  • vpc-id doit être l'ID de votre Amazon Virtual Private Cloud. subnet-ids doit être une liste d'ID de sous-réseau séparés par des espaces. Pour plus d'informations sur vpc-id et subnet-ids, consultez VPC et sous-réseaux.

  • RStudioPackageManagerUrl et RStudioConnectUrl sont facultatifs et doivent être définis sur les URL de votre serveur RStudio Package Manager et RStudio Connect, respectivement.

  • auth-mode doit être SSO ou IAM.

aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \ --auth-mode <AUTH_MODE> \ --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \ --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \ --vpc-id <VPC_ID> \ --subnet-ids <SUBNET_IDS> \ --app-network-access-type PublicInternetOnly

Mode VPCOnly

La section suivante montre comment lancer un domaine Amazon SageMaker avec RStudio activé et un type de réseau VPCOnly. Pour plus d'informations sur l'utilisation du type d'accès réseau VPCOnly, veuillez consulter Connexion des blocs-notes SageMaker Studio dans un VPC à des ressources externes.

  • DomainExecutionRoleArn doit correspondre à l'ARN du rôle créé à l'étape précédente.

  • ExecutionRole est l'ARN du rôle attribué aux utilisateurs du domaine Amazon SageMaker.

  • vpc-id doit être l'ID de votre Amazon Virtual Private Cloud. subnet-ids doit être une liste d'ID de sous-réseau séparés par des espaces. Votre sous-réseau privé doit pouvoir accéder à Internet pour passer un appel à Amazon SageMaker et AWS License Manager, ou avoir des points de terminaison Amazon VPC pour Amazon SageMaker et AWS License Manager. Pour plus d'informations sur les points de terminaison Amazon VPC, consultez Interfacer les points de terminaison Amazon VPC. Pour plus d'informations sur vpc-id et subnet-ids, consultez VPC et sous-réseaux.

  • SecurityGroups doit autoriser l'accès sortant à Amazon SageMaker et aux points de terminaison AWS License Manager.

  • auth-mode doit être SSO ou IAM.

Note

Lorsque vous utilisez des points de terminaison Amazon Virtual Private Cloud, le groupe de sécurité attaché à vos points de terminaison Amazon Virtual Private Cloud doit autoriser le trafic entrant provenant du groupe de sécurité que vous transmettez dans le cadre du paramètre domain-setting de l'appel de CLI create-domain.

Avec RStudio, Amazon SageMaker gère les groupes de sécurité pour vous. Cela signifie qu'Amazon SageMaker gère les règles du groupe de sécurité pour garantir que les sessions RS peuvent accéder aux applications RStudioServerPro. Amazon SageMaker crée une règle de groupe de sécurité par profil utilisateur.

aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \ --auth-mode <AUTH_MODE> \ --default-user-settings SecurityGroups=<USER_SECURITY_GROUP>,ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \ --domain-settings SecurityGroupIds=<DOMAIN_SECURITY_GROUP>,RStudioServerProDomainSettings={DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \ --vpc-id <VPC_ID> \ --subnet-ids "<SUBNET_IDS>" \ --app-network-access-type VPCOnly --app-security-group-management Service

Remarque : l'application RStudioServerPro est lancée par un profil utilisateur spécial nommé domain-shared. Par conséquent, cette application n'est renvoyée dans le cadre d'appels d'API list-app par aucun autre profil utilisateur.

Vous devrez peut-être augmenter le quota Amazon VPC dans votre compte pour augmenter le nombre d'utilisateurs. Pour plus d'informations, consultez Amazon VPC quotas (Quotas Amazon VPC).

Vérifier la création du domaine

Utilisez la commande suivante pour vérifier que votre domaine a été créé avec le Status InService. Votre domain-id est ajouté à l'ARN des domaines. Par exemple, arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:domain/<DOMAIN_ID>.

aws sagemaker describe-domain --domain-id <DOMAIN_ID> --region <REGION>