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
-
Installer et configurer l’AWS CLI version 2
-
Configurer l'AWS CLI avec des informations d'identification IAM
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.
-
Créez un fichier nommé
assume-role-policy.jsonavec le contenu suivant. -
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 -
Créez un fichier nommé
domain-setting-policy.jsonavec 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 statutDeletedouFailed. -
Créez la politique de paramétrage du domaine attachée au rôle
DomainExecution. Gardez en tête lePolicyArnde 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 -
Attachez
domain-setting-policyau rôleDomainExecution. Utilisez lePolicyArnrenvoyé à 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 ?
-
DomainExecutionRoleArndoit correspondre à l’ARN du rôle créé à l’étape précédente. -
ExecutionRoleest l’ARN du rôle attribué aux utilisateurs dans le domaine Amazon SageMaker AI. -
vpc-iddoit être l’ID de votre cloud privé Amazon Virtual Private Cloud.subnet-idsdoit être une liste d’ID de sous-réseau séparés par des espaces. Pour plus d'informations survpc-idetsubnet-ids, consultez VPC et sous-réseaux. -
RStudioPackageManagerUrletRStudioConnectUrlsont facultatifs et doivent être définis sur les URL de votre serveur RStudio Package Manager et RStudio Connect, respectivement. -
app-network-access-typedoit êtrePublicInternetOnlyouVPCOnly.
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 ?.
-
DomainExecutionRoleArndoit correspondre à l’ARN du rôle créé à l’étape précédente. -
ExecutionRoleest l’ARN du rôle attribué aux utilisateurs dans le domaine Amazon SageMaker AI. -
vpc-iddoit être l’ID de votre cloud privé Amazon Virtual Private Cloud.subnet-idsdoit être une liste d’ID de sous-réseau séparés par des espaces. Pour plus d'informations survpc-idetsubnet-ids, consultez VPC et sous-réseaux. -
RStudioPackageManagerUrletRStudioConnectUrlsont facultatifs et doivent être définis sur les URL de votre serveur RStudio Package Manager et RStudio Connect, respectivement. -
app-network-access-typedoit êtrePublicInternetOnlyouVPCOnly.
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.
-
DomainExecutionRoleArndoit correspondre à l’ARN du rôle créé à l’étape précédente. -
ExecutionRoleest l’ARN du rôle attribué aux utilisateurs dans le domaine Amazon SageMaker AI. -
vpc-iddoit être l’ID de votre cloud privé Amazon Virtual Private Cloud.subnet-idsdoit être une liste d’ID de sous-réseau séparés par des espaces. Pour plus d'informations survpc-idetsubnet-ids, consultez VPC et sous-réseaux. -
RStudioPackageManagerUrletRStudioConnectUrlsont facultatifs et doivent être définis sur les URL de votre serveur RStudio Package Manager et RStudio Connect, respectivement. -
auth-modedoit êtreSSOouIAM.
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.
-
DomainExecutionRoleArndoit correspondre à l’ARN du rôle créé à l’étape précédente. -
ExecutionRoleest l’ARN du rôle attribué aux utilisateurs dans le domaine Amazon SageMaker AI. -
vpc-iddoit être l’ID de votre cloud privé Amazon Virtual Private Cloud.subnet-idsdoit ê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 survpc-idetsubnet-ids, consultez VPC et sous-réseaux. -
SecurityGroupsdoit autoriser l’accès sortant à Amazon SageMaker AI et aux points de terminaison AWS License Manager. -
auth-modedoit êtreSSOouIAM.
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>