Création d’un domaine Amazon SageMaker AI avec RStudio à l’aide de l’AWS CLI - Amazon SageMaker AI

Création d’un domaine Amazon SageMaker AI avec RStudio à l’aide de l’AWS CLI

Important

Les politiques IAM personnalisées qui autorisent Amazon SageMaker Studio ou Amazon SageMaker Studio Classic à créer des ressources Amazon SageMaker doivent également accorder des autorisations pour ajouter des balises à ces ressources. L’autorisation d’ajouter des balises aux ressources est requise, car Studio et Studio Classic balisent automatiquement toutes les ressources qu’ils créent. Si une politique IAM autorise Studio et Studio Classic à créer des ressources mais n’autorise pas le balisage, des erreurs « AccessDenied » peuvent se produire lors de la tentative de création de ressources. Pour plus d’informations, consultez Octroi d’autorisations pour baliser les ressources SageMaker AI.

Les Politiques gérées par AWS pour Amazon SageMaker AI qui autorisent la création de ressources SageMaker incluent déjà des autorisations permettant d’ajouter des balises lors de la création de ces ressources.

La rubrique suivante explique comment intégrer le domaine Amazon SageMaker AI avec RStudio activé à l’aide de l’AWS CLI. Pour une intégration à l’aide de la AWS Management Console, consultez Présentation du domaine Amazon SageMaker AI.

Prérequis

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 AI. Ce rôle est également utilisé par Amazon SageMaker AI pour accéder à la licence RStudio et envoyer (push) 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.

    JSON
    { "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’application RStudioServerPro d’accéder aux ressources nécessaires et permet à Amazon SageMaker AI de lancer automatiquement une application RStudioServerPro lorsque l’application RStudioServerPro existante présente le statut Deleted ou Failed.

    JSON
    { "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 paramétrage du domaine attaché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éation d’un domaine Amazon SageMaker AI avec l’application RStudio

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

La création d’un domaine Amazon SageMaker AI 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 AI avec RStudio activé et un type de réseau IAM Auth. Pour plus d’informations sur Gestion des identités et des accès AWS, 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 dans le domaine Amazon SageMaker AI.

  • vpc-id doit être l’ID de votre cloud privé 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>

Authentification à l’aide d’IAM Identity Center

La section suivante montre comment créer un domaine Amazon SageMaker AI avec RStudio activé et un type de réseau SSO Auth. AWS IAM Identity Center doit être activé pour la région où le domaine est lancé. Pour plus d’informations sur IAM Identity Center, consultez Qu’est-ce que AWS IAM Identity Center ?.

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

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

  • vpc-id doit être l’ID de votre cloud privé 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 AI 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 dans le domaine Amazon SageMaker AI.

  • vpc-id doit être l’ID de votre cloud privé 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 AI 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, consultez Connexion des blocs-notes Studio d’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 dans le domaine Amazon SageMaker AI.

  • vpc-id doit être l’ID de votre cloud privé 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 AI et AWS License Manager, ou avoir des points de terminaison Amazon VPC pour Amazon SageMaker AI 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 AI 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 AI gère les groupes de sécurité pour vous. Cela signifie qu’Amazon SageMaker AI gère les règles du groupe de sécurité pour garantir que les RSessions peuvent accéder aux applications RStudioServerPro. Amazon SageMaker AI 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 Quotas Amazon VPC.

Vérification de 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>