

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Comment utiliser les rôles d'exécution de l' SageMaker IA
<a name="sagemaker-roles"></a>

Amazon SageMaker AI effectue des opérations en votre nom à l'aide d'autres AWS services. Vous devez autoriser l' SageMaker IA à utiliser ces services et les ressources sur lesquelles ils agissent. Vous accordez ces autorisations à SageMaker AI à l'aide d'un rôle d'exécution Gestion des identités et des accès AWS (IAM). Pour plus d’informations sur les rôles IAM, consultez [Rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html).

Pour créer et utiliser un rôle d'exécution, vous pouvez utiliser les procédures suivantes.

## Créer un rôle d’exécution
<a name="sagemaker-roles-create-execution-role"></a>

Utilisez la procédure suivante pour créer un rôle d’exécution avec la politique gérée IAM, `AmazonSageMakerFullAccess`, attachée. Si votre cas d’utilisation nécessite des autorisations plus détaillées, utilisez d’autres sections de cette page pour créer un rôle d’exécution qui répond aux besoins de votre entreprise. Vous pouvez créer un rôle d'exécution à l'aide de la console SageMaker AI ou du AWS CLI.

**Important**  
La politique gérée IAM, `AmazonSageMakerFullAccess`, utilisée dans la procédure suivante, n’accorde que l’autorisation du rôle d’exécution pour effectuer certaines actions Amazon S3 sur des compartiments ou des objets avec `SageMaker`, `Sagemaker`, `sagemaker`, ou `aws-glue` dans le nom. Pour savoir comment ajouter une politique supplémentaire à un rôle d’exécution pour lui accorder l’accès à d’autres compartiments et objets Amazon S3, consultez [Ajouter des autorisations Amazon S3 supplémentaires à un rôle d'exécution SageMaker AI](#sagemaker-roles-get-execution-role-s3).

**Note**  
Vous pouvez créer un rôle d'exécution directement lorsque vous créez un domaine SageMaker AI ou une instance de bloc-notes.  
Pour plus d'informations sur la création d'un domaine SageMaker AI, consultez[Guide de configuration d'Amazon SageMaker AI](gs.md).
Pour en savoir plus sur la manière de créer une instance de bloc-notes, consultez [Création d'une instance Amazon SageMaker Notebook pour le didacticiel](gs-setup-working-env.md).

**Pour créer un nouveau rôle d'exécution à partir de la console SageMaker AI**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Choisissez **Roles (Rôles)**, puis **Create role (Créer un rôle)**.

1. Conservez le **AWS service** comme **type d'entité de confiance**, puis utilisez la flèche vers le bas pour trouver l'**SageMaker IA** dans **Cas d'utilisation pour d'autres AWS services**.

1. Choisissez **SageMaker AI — Execution**, puis **Next**.

1. La politique gérée IAM, `AmazonSageMakerFullAccess`, est automatiquement attachée au rôle. Pour afficher les autorisations incluses dans cette politique, choisissez le signe plus (**\+**) à côté du nom de la politique. Choisissez **Suivant**.

1. Entrez un **nom de rôle** et une **description**.

1. (Facultatif) Ajoutez des autorisations et des balises supplémentaires au rôle.

1. Choisissez **Créer un rôle**.

1. Dans la section **Rôles** de la console IAM, recherchez le rôle que vous venez de créer. Si nécessaire, utilisez la zone de texte pour rechercher le rôle à l'aide du nom de rôle.

1. Sur la page de résumé, prenez note de l’ARN.

**Pour créer un nouveau rôle d'exécution depuis AWS CLI**

Avant de créer un rôle d'exécution à l'aide du AWS CLI, assurez-vous de le mettre à jour et de le configurer en suivant les instructions figurant dans[(Facultatif) Configurez le AWS CLI](gs-set-up.md#gs-cli-prereq), puis poursuivez avec les instructions contenues dans[Configuration personnalisée à l'aide du AWS CLI](onboard-custom.md#onboard-custom-instructions-cli).

Une fois que vous avez créé un rôle d'exécution, vous pouvez l'associer à un domaine SageMaker AI, à un profil utilisateur ou à une instance de bloc-notes Jupyter.
+ Pour savoir comment associer un rôle d'exécution à un domaine SageMaker AI existant, consultez[Modification des paramètres du domaine](domain-edit.md).
+ Pour découvrir comment associer un rôle d’exécution à un profil utilisateur existant, consultez [Ajouter des profils utilisateur](domain-user-profile-add.md).
+ Pour découvrir comment associer un rôle d'exécution à une instance de bloc-notes existante, consultez [Meise à jour d’une instance de bloc-notes](nbi-update.md).

Vous pouvez également transmettre l'ARN d'un rôle d'exécution à votre appel d'API. Par exemple, à l'aide du [SDK Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable), vous pouvez transmettre l'ARN de votre rôle d'exécution à un estimateur. Dans l'exemple de code qui suit, nous créons un estimateur à l'aide du conteneur d'algorithme XGBoost et transmettons l'ARN du rôle d'exécution en tant que paramètre. Pour un exemple complet GitHub, voir [Prédiction du taux de désabonnement des clients avec XGBoost](https://github.com/aws/amazon-sagemaker-examples/blob/89c54681b7e0f83ce137b34b879388cf5960af93/introduction_to_applying_machine_learning/xgboost_customer_churn/xgboost_customer_churn.ipynb).

```
import sagemaker, boto3
from sagemaker import image_uris

sess = sagemaker.Session()
region = sess.boto_region_name
bucket = sess.default_bucket()
prefix = "sagemaker/DEMO-xgboost-churn"
container = sagemaker.image_uris.retrieve("xgboost", region, "1.7-1")

xgb = sagemaker.estimator.Estimator(
    container,
    {{execution-role-ARN}},
    instance_count=1,
    instance_type="ml.m4.xlarge",
    output_path="s3://{}/{}/output".format(bucket, prefix),
    sagemaker_session=sess,
)

...
```

### Ajouter des autorisations Amazon S3 supplémentaires à un rôle d'exécution SageMaker AI
<a name="sagemaker-roles-get-execution-role-s3"></a>

Lorsque vous utilisez une fonctionnalité d' SageMaker IA avec des ressources dans Amazon S3, telles que des données d'entrée, le rôle d'exécution que vous spécifiez dans votre demande (par exemple`CreateTrainingJob`) est utilisé pour accéder à ces ressources.

Si vous attachez la politique gérée IAM, `AmazonSageMakerFullAccess`, à un rôle d’exécution, ce rôle a l’autorisation d’effectuer certaines actions Amazon S3 sur des compartiments ou des objets avec `SageMaker`, `Sagemaker`, `sagemaker`, ou `aws-glue` dans le nom. Elle a également l'autorisation d'effectuer les opérations suivantes sur n'importe quelle ressource Amazon S3 :

```
"s3:CreateBucket", 
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:ListAllMyBuckets",
"s3:GetBucketCors",
"s3:PutBucketCors"
```

Pour accorder à un rôle d’exécution des autorisations pour accéder à un ou plusieurs compartiments spécifiques dans Amazon S3, vous pouvez attacher une politique similaire à la suivante au rôle. Cette politique accorde une autorisation de rôle IAM pour effectuer toutes les actions qu’`AmazonSageMakerFullAccess` autorise, mais restreint cet accès aux compartiments amzn-s3-demo-bucket1 et amzn-s3-demo-bucket2. Reportez-vous à la documentation de sécurité de la fonctionnalité d' SageMaker IA spécifique que vous utilisez pour en savoir plus sur les autorisations Amazon S3 requises pour cette fonctionnalité.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:AbortMultipartUpload"
            ],
            "Resource": [
                "arn:aws:s3:::{{amzn-s3-demo-bucket1/*}}",
                "arn:aws:s3:::{{amzn-s3-demo-bucket2/*}}"
            ]
        }, 
        {
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:ListAllMyBuckets",
                "s3:GetBucketCors",
                "s3:PutBucketCors"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketAcl",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::{{amzn-s3-demo-bucket1}}",
                "arn:aws:s3:::{{amzn-s3-demo-bucket2}}"
            ]
        }
    ]
}
```

------

## Obtention de votre rôle d’exécution
<a name="sagemaker-roles-get-execution-role"></a>

Vous pouvez utiliser la [console SageMaker AI](https://console.aws.amazon.com/sagemaker), le [SDK Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) ou le [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)pour récupérer l'ARN et le nom du rôle d'exécution associé à un domaine, un espace ou un profil utilisateur SageMaker AI.

**Topics**
+ [Obtention du rôle d’exécution d’un domaine](#sagemaker-roles-get-execution-role-domain)
+ [Obtention du rôle d’exécution d’un espace](#sagemaker-roles-get-execution-role-space)
+ [Obtention du rôle d’exécution d’un utilisateur](#sagemaker-roles-get-execution-role-user)

### Obtention du rôle d’exécution d’un domaine
<a name="sagemaker-roles-get-execution-role-domain"></a>

Vous trouverez ci-dessous des instructions pour rechercher le rôle d’exécution de votre domaine.

#### Obtention du rôle d’exécution d’un domaine (console)
<a name="sagemaker-roles-get-execution-role-domain-console"></a>

**Recherche du rôle d’exécution attaché à votre domaine**

1. Ouvrez la console SageMaker AI, [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

1. Dans le volet de navigation de gauche, choisissez **Domaines** sous **Configurations d’administrateur**.

1. Choisissez le lien correspondant à votre domaine.

1. Choisissez l’onglet **Paramètres de domaine**.

1. Dans la section **Paramètres généraux**, l’ARN du rôle d’exécution est répertorié sous **Rôle d’exécution**.

   Le nom du rôle d’exécution se trouve après la dernière `/` dans l’ARN du rôle d’exécution.

### Obtention du rôle d’exécution d’un espace
<a name="sagemaker-roles-get-execution-role-space"></a>

Vous trouverez ci-dessous des instructions pour rechercher le rôle d’exécution de votre espace.

#### Obtention du rôle d’exécution d’un espace (console)
<a name="sagemaker-roles-get-execution-role-space-console"></a>

**Recherche du rôle d’exécution attaché à votre espace**

1. Ouvrez la console SageMaker AI, [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

1. Dans le volet de navigation de gauche, choisissez **Domaines** sous **Configurations d’administrateur**.

1. Choisissez le lien correspondant à votre domaine.

1. Choisissez l’onglet **Gestion de l’espace**.

1. Dans la section **Détails**, l’ARN du rôle d’exécution est répertorié sous **Rôle d’exécution**. 

   Le nom du rôle d’exécution se trouve après la dernière `/` dans l’ARN du rôle d’exécution.

#### Obtention du rôle d’exécution d’un espace (kit SDK pour Python)
<a name="sagemaker-roles-get-execution-role-space-sdk"></a>

**Note**  
Le code suivant est destiné à être exécuté dans un environnement d' SageMaker intelligence artificielle, comme tous les IDE d'Amazon SageMaker Studio. Vous recevrez un message d'erreur si vous vous lancez `get_execution_role` en dehors d'un environnement d' SageMaker IA.

La commande [https://sagemaker.readthedocs.io/en/stable/api/utility/session.html#sagemaker.session.get_execution_role](https://sagemaker.readthedocs.io/en/stable/api/utility/session.html#sagemaker.session.get_execution_role)[Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) suivante récupère l'ARN du rôle d'exécution attaché à l'espace.

```
from sagemaker import get_execution_role
role = get_execution_role()
print(role)
```

Le nom du rôle d’exécution se trouve après la dernière `/` dans l’ARN du rôle d’exécution.

### Obtention du rôle d’exécution d’un utilisateur
<a name="sagemaker-roles-get-execution-role-user"></a>

Vous trouverez ci-dessous des instructions pour rechercher le rôle d’exécution d’un utilisateur.

#### Obtention du rôle d’exécution d’un utilisateur (console)
<a name="sagemaker-roles-get-execution-role-user-console"></a>

**Recherche du rôle d’exécution attaché à un utilisateur**

1. Ouvrez la console SageMaker AI, [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

1. Dans le volet de navigation de gauche, choisissez **Domaines** sous **Configurations d’administrateur**.

1. Choisissez le lien correspondant à votre domaine.

1. Choisissez l’onglet **Profils utilisateurs**.

1. Choisissez le lien correspondant à votre utilisateur.

1. Dans la section **Détails**, l’ARN du rôle d’exécution est répertorié sous **Rôle d’exécution**. 

   Le nom du rôle d’exécution se trouve après la dernière `/` dans l’ARN du rôle d’exécution.

#### Rôle d'exécution de l'espace Get (AWS CLI)
<a name="sagemaker-roles-get-execution-role-user-cli"></a>

**Note**  
Pour utiliser les exemples suivants, le AWS Command Line Interface (AWS CLI) doit être installé et configuré. Pour en savoir plus, consultez [Premiers pas avec l’ AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) dans le *Guide de l’utilisateur de l’AWS Command Line Interface pour la version 2*.

La commande [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/get-caller-identity.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/get-caller-identity.html) AWS CLI suivante affiche des informations sur l’identité IAM utilisée pour authentifier la demande. L’appelant est un utilisateur IAM.

```
aws sts get-caller-identity
```

Le nom du rôle d’exécution se trouve après la dernière `/` dans l’ARN du rôle d’exécution.

## Changement de rôle d’exécution
<a name="sagemaker-roles-change-execution-role"></a>

Un rôle d'exécution est un rôle IAM assumé par une identité d' SageMaker IA (comme un utilisateur, un espace ou un domaine d' SageMaker IA). Le changement de rôle IAM modifie les autorisations pour toutes les identités assumant ce rôle.

Lorsque vous changez un rôle d’exécution, le rôle d’exécution de l’espace correspondant change également. La propagation des effets du changement peut prendre un certain temps.
+ Lorsque vous changez le *rôle d’exécution d’un utilisateur*, les *espaces privés* créés par cet utilisateur assument le nouveau rôle d’exécution spécifié.
+ Lorsque vous changez le *rôle d’exécution par défaut d’un espace*, les *espaces partagés* du domaine assument le nouveau rôle d’exécution spécifié.

Pour plus d’informations sur les espaces et les rôles d’exécution, consultez [Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

Vous pouvez remplacer le rôle d’exécution d’une identité par un autre rôle IAM en suivant l’une des instructions suivantes.

Si, à la place, vous souhaitez *modifier* un rôle assumé par une identité, consultez [Modification des autorisations d’accès au rôle d’exécution](#sagemaker-roles-modify-to-execution-role).

**Topics**
+ [Changement du rôle d’exécution par défaut d’un domaine](#sagemaker-roles-change-execution-role-domain)
+ [Changement du rôle d’exécution par défaut d’un espace](#sagemaker-roles-change-execution-role-space)
+ [Changement du rôle d’exécution d’un profil utilisateur](#sagemaker-roles-change-execution-role-user)

### Changement du rôle d’exécution par défaut d’un domaine
<a name="sagemaker-roles-change-execution-role-domain"></a>

Vous trouverez ci-dessous des instructions pour changer le rôle d’exécution par défaut de votre domaine.

#### Changement du rôle d’exécution par défaut d’un domaine (console)
<a name="sagemaker-roles-change-execution-role-domain-console"></a>

**Changement du rôle d’exécution par défaut attaché à votre domaine**

1. Ouvrez la console SageMaker AI, [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

1. Dans le volet de navigation de gauche, choisissez **Domaines** sous **Configurations d’administrateur**.

1. Choisissez le lien correspondant à votre domaine.

1. Choisissez l’onglet **Paramètres de domaine**.

1. Dans la section **Paramètres généraux**, choisissez **Modifier**.

1. Dans la section **Autorisations**, sous **Rôle d’exécution par défaut**, développez la liste déroulante.

1. Dans la liste déroulante, vous pouvez choisir un rôle existant, saisir l’ARN d’un rôle IAM personnalisé ou créer un nouveau rôle.

   Si vous souhaitez créer un nouveau rôle, vous pouvez choisir l’option **Créer un rôle à l’aide de l’assistant de création de rôle**.

1. Choisissez Suivant dans les étapes suivantes et choisissez Soumettre à la dernière étape.

### Changement du rôle d’exécution par défaut d’un espace
<a name="sagemaker-roles-change-execution-role-space"></a>

Vous trouverez ci-dessous des instructions pour changer le rôle d’exécution par défaut de votre espace. Le changement de ce rôle d’exécution changera le rôle assumé par tous les espaces partagés dans le domaine.

#### Changement du rôle d’exécution par défaut d’un espace (console)
<a name="sagemaker-roles-change-execution-role-space-console"></a>

**Changement du rôle d’exécution par défaut d’un espace lorsque vous créez un nouvel espace**

1. Ouvrez la console SageMaker AI, [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

1. Dans le volet de navigation de gauche, choisissez **Domaines** sous **Configurations d’administrateur**.

1. Choisissez le lien correspondant à votre domaine.

1. Choisissez l’onglet **Paramètres de domaine**.

1. Dans la section **Paramètres généraux**, choisissez **Modifier**.

1. Dans la section **Autorisations**, sous **Rôle d’exécution par défaut pour l’espace**, développez la liste déroulante.

1. Dans la liste déroulante, vous pouvez choisir un rôle existant, saisir l’ARN d’un rôle IAM personnalisé ou créer un nouveau rôle.

   Si vous souhaitez créer un nouveau rôle, vous pouvez choisir l’option **Créer un rôle à l’aide de l’assistant de création de rôle**.

1. Choisissez **Suivant** dans les étapes suivantes et choisissez **Soumettre** à la dernière étape.

### Changement du rôle d’exécution d’un profil utilisateur
<a name="sagemaker-roles-change-execution-role-user"></a>

Vous trouverez ci-dessous des instructions pour changer le rôle d’exécution d’un utilisateur. Le changement de ce rôle d’exécution changera le rôle assumé par tous les espaces privés créés par cet utilisateur.

#### Changement du rôle d’exécution d’un profil utilisateur (console)
<a name="sagemaker-roles-change-execution-role-user-console"></a>

**Changement du rôle d’exécution attaché à un utilisateur**

1. Ouvrez la console SageMaker AI, [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

1. Dans le volet de navigation de gauche, choisissez **Domaines** sous **Configurations d’administrateur**.

1. Choisissez le lien correspondant à votre domaine.

1. Choisissez l’onglet **Profils utilisateurs**.

1. Choisissez le lien correspondant au nom du profil utilisateur.

1. Choisissez **Modifier**.

1. Dans la liste déroulante, vous pouvez choisir un rôle existant, saisir l’ARN d’un rôle IAM personnalisé ou créer un nouveau rôle.

   Si vous souhaitez créer un nouveau rôle, vous pouvez choisir l’option **Créer un rôle à l’aide de l’assistant de création de rôle**.

1. Choisissez **Suivant** dans les étapes suivantes et choisissez **Soumettre** à la dernière étape.

## Modification des autorisations d’accès au rôle d’exécution
<a name="sagemaker-roles-modify-to-execution-role"></a>

Vous pouvez modifier les autorisations existantes relatives au rôle d'exécution d'une identité (comme un utilisateur, un espace ou un domaine SageMaker AI). Cela se fait en recherchant le rôle IAM approprié que l’identité assume, puis en modifiant ce rôle IAM. Vous trouverez ci-dessous des instructions pour y parvenir via la console. 

Lorsque vous modifiez un rôle d’exécution, le rôle d’exécution de l’espace correspondant change également. Les effets du changement peuvent ne pas être immédiats.
+ Lorsque vous modifiez le *rôle d’exécution d’un utilisateur*, les *espaces privés* créés par cet utilisateur assument le rôle d’exécution modifié.
+ Lorsque vous modifiez le *rôle d’exécution par défaut d’un espace*, les *espaces partagés* dans le domaine assument le rôle d’exécution modifié.

Pour plus d’informations sur les espaces et les rôles d’exécution, consultez [Comprendre les autorisations d’espace de domaine et les rôles d’exécution](execution-roles-and-spaces.md).

Si, à la place, vous souhaitez *changer* un rôle assumé par une identité, consultez [Changement de rôle d’exécution](#sagemaker-roles-change-execution-role).

### Modification des autorisations d’accès au rôle d’exécution (console)
<a name="sagemaker-roles-modify-to-execution-role-console"></a>

**Pour modifier les autorisations d’accès à vos rôles d’exécution**

1. Obtenez d’abord le nom de l’identité que vous souhaitez modifier.
   + [Obtention du rôle d’exécution d’un domaine](#sagemaker-roles-get-execution-role-domain)
   + [Obtention du rôle d’exécution d’un espace](#sagemaker-roles-get-execution-role-space)
   + [Obtention du rôle d’exécution d’un utilisateur](#sagemaker-roles-get-execution-role-user)

1. Pour modifier un rôle assumé par une identité, consultez [Modification d’un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) dans le *Guide de l’utilisateur Gestion des identités et des accès AWS *.

   Pour plus d’informations et des instructions sur l’ajout d’autorisations à des identités IAM, consultez [Ajout et suppression d’autorisations d’identité](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) dans le *Guide de l’utilisateur Gestion des identités et des accès AWS *.

## Transmission de rôles
<a name="sagemaker-roles-pass-role"></a>

Les actions telles que le transfert d'un rôle entre les services sont une fonction courante au sein de l' SageMaker IA. Vous trouverez plus de détails sur les [actions, les ressources et les clés de condition pour l' SageMaker IA](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html#amazonsagemaker-actions-as-permissions) dans la *référence d'autorisation de service*.

Vous transmettez le rôle (`iam:PassRole`) lorsque vous effectuez les appels d’API : [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCompilationJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCompilationJob.html), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFeatureGroup.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFeatureGroup.html), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateFlowDefinition.html), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateImage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateImage.html), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateMonitoringSchedule.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateMonitoringSchedule.html), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProcessingJob.html), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RenderUiTemplate.html), [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateImage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateImage.html) et [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateNotebookInstance.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateNotebookInstance.html).

Vous attachez la politique de confiance suivante au rôle IAM, qui accorde à l' SageMaker IA les autorisations principales pour assumer le rôle, et qui est la même pour tous les rôles d'exécution : 

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

****  

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

------

Les autorisations que vous devez accorder au rôle varient en fonction de l’API que vous appelez. Les sections suivantes présentent ces autorisations.

**Note**  
Au lieu de gérer les autorisations en élaborant une politique d'autorisation, vous pouvez utiliser la politique d'`AmazonSageMakerFullAccess`autorisation AWS-managed. Les autorisations de cette politique sont assez larges, afin de permettre toutes les actions que vous souhaiteriez effectuer dans l' SageMaker IA. Pour obtenir la liste des autorisations de la politique, y compris des informations sur les raisons de l’ajout d’un grand nombre de ces autorisations, consultez [AWS politique gérée : AmazonSageMakerFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess). Si vous préférez créer des politiques personnalisées et gérer les autorisations de sorte à les limiter aux actions que vous devez effectuer avec le rôle d'exécution uniquement, consultez les rubriques suivantes.

**Important**  
Si vous rencontrez des problèmes, consultez [Résolution des problèmes liés à Amazon SageMaker AI Identity and Access](security_iam_troubleshoot.md).

Pour plus d’informations sur les rôles IAM, consultez [Rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) dans la *Référence d’autorisation de service*.

**Topics**
+ [Créer un rôle d’exécution](#sagemaker-roles-create-execution-role)
+ [Obtention de votre rôle d’exécution](#sagemaker-roles-get-execution-role)
+ [Changement de rôle d’exécution](#sagemaker-roles-change-execution-role)
+ [Modification des autorisations d’accès au rôle d’exécution](#sagemaker-roles-modify-to-execution-role)
+ [Transmission de rôles](#sagemaker-roles-pass-role)
+ [CreateAutoMLJob et CreateAutoMLJobV2 API : autorisations relatives aux rôles d'exécution](#sagemaker-roles-autopilot-perms)
+ [CreateDomain API : autorisations relatives aux rôles d'exécution](#sagemaker-roles-createdomain-perms)
+ [CreateImage et UpdateImage API : autorisations relatives aux rôles d'exécution](#sagemaker-roles-createimage-perms)
+ [CreateNotebookInstance API : autorisations relatives aux rôles d'exécution](#sagemaker-roles-createnotebookinstance-perms)
+ [CreateHyperParameterTuningJob API : autorisations relatives aux rôles d'exécution](#sagemaker-roles-createhyperparametertiningjob-perms)
+ [CreateProcessingJob API : autorisations relatives aux rôles d'exécution](#sagemaker-roles-createprocessingjob-perms)
+ [CreateTrainingJob API : autorisations relatives aux rôles d'exécution](#sagemaker-roles-createtrainingjob-perms)
+ [CreateModel API : autorisations relatives aux rôles d'exécution](#sagemaker-roles-createmodel-perms)
+ [SageMaker rôles relatifs aux capacités géospatiales](sagemaker-geospatial-roles.md)

## CreateAutoMLJob et CreateAutoMLJobV2 API : autorisations relatives aux rôles d'exécution
<a name="sagemaker-roles-autopilot-perms"></a>

Pour un rôle d’exécution que vous pouvez transmettre dans une demande d’API `CreateAutoMLJob` ou `CreateAutoMLJobV2`, vous pouvez attacher la politique d’autorisation minimum suivante au rôle :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "sagemaker.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:DescribeEndpointConfig",
                "sagemaker:DescribeModel",
                "sagemaker:InvokeEndpoint",
                "sagemaker:ListTags",
                "sagemaker:DescribeEndpoint",
                "sagemaker:CreateModel",
                "sagemaker:CreateEndpointConfig",
                "sagemaker:CreateEndpoint",
                "sagemaker:DeleteModel",
                "sagemaker:DeleteEndpointConfig",
                "sagemaker:DeleteEndpoint",
                "cloudwatch:PutMetricData",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:CreateLogGroup",
                "logs:DescribeLogStreams",
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket",
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Si vous spécifiez un VPC privé pour votre tâche AutoML, ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DeleteNetworkInterface",
        "ec2:DeleteNetworkInterfacePermission",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeVpcs",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
    ]
}
```

Si votre entrée est chiffrée à l'aide d'un chiffrement côté serveur à l'aide d'une clé AWS gérée par KMS (SSE-KMS), ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
        "kms:Decrypt"
    ]
}
```

Si vous spécifiez une clé KMS dans la configuration de sortie de la tâche AutoML, ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
    "kms:Encrypt"
    ]
}
```

Si vous spécifiez une clé KMS de volume dans la configuration des ressources de la tâche AutoML, ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
    "kms:CreateGrant"
    ]
}
```

## CreateDomain API : autorisations relatives aux rôles d'exécution
<a name="sagemaker-roles-createdomain-perms"></a>

Le rôle d'exécution pour les domaines avec IAM Identity Center et le user/execution rôle pour les domaines IAM nécessitent les autorisations suivantes lorsque vous transmettez une clé gérée par le AWS KMS client comme indiqué `KmsKeyId` dans la demande d'`CreateDomain`API. Les autorisations sont appliquées au cours de l’appel d’API `CreateApp`.

Pour un rôle d'exécution que vous pouvez transmettre dans la demande d'API `CreateDomain`, vous pouvez attacher la politique d'autorisation suivante au rôle :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:{{us-east-1}}:{{111122223333}}:key/{{kms-key-id}}"
        }
    ]
}
```

------

De même, si les autorisations sont spécifiées dans une politique KMS, vous pouvez attacher la politique suivante au rôle :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::{{111122223333}}:role/{{ExecutionRole}}"
                ]
            },
            "Action": [
                "kms:CreateGrant",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## CreateImage et UpdateImage API : autorisations relatives aux rôles d'exécution
<a name="sagemaker-roles-createimage-perms"></a>

Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API `CreateImage` ou `UpdateImage`, vous pouvez attacher la politique d'autorisation suivante au rôle :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## CreateNotebookInstance API : autorisations relatives aux rôles d'exécution
<a name="sagemaker-roles-createnotebookinstance-perms"></a>

Les autorisations que vous accordez au rôle d’exécution pour appeler l’API `CreateNotebookInstance` dépendent de la façon dont vous prévoyez d’utiliser l’instance de bloc-notes. Si vous envisagez de l'utiliser pour appeler des API d' SageMaker IA et de transmettre le même rôle lorsque vous appelez les `CreateModel` API `CreateTrainingJob` et, associez la politique d'autorisation suivante au rôle :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:*",
                "ecr:GetAuthorizationToken",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage",
                "ecr:BatchCheckLayerAvailability",
                "ecr:SetRepositoryPolicy",
                "ecr:CompleteLayerUpload",
                "ecr:BatchDeleteImage",
                "ecr:UploadLayerPart",
                "ecr:DeleteRepositoryPolicy",
                "ecr:InitiateLayerUpload",
                "ecr:DeleteRepository",
                "ecr:PutImage",
                "ecr:CreateRepository",
                "cloudwatch:PutMetricData",
                "cloudwatch:GetMetricData",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics",
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:DescribeLogStreams",
                "logs:PutLogEvents",
                "logs:GetLogEvents",
                "s3:CreateBucket",
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "robomaker:CreateSimulationApplication",
                "robomaker:DescribeSimulationApplication",
                "robomaker:DeleteSimulationApplication",
                "robomaker:CreateSimulationJob",
                "robomaker:DescribeSimulationJob",
                "robomaker:CancelSimulationJob",
                "ec2:CreateVpcEndpoint",
                "ec2:DescribeRouteTables",
                "elasticfilesystem:DescribeMountTargets"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "codecommit:GitPull",
                "codecommit:GitPush"
            ],
            "Resource": [
                "arn:aws:codecommit:*:*:*sagemaker*",
                "arn:aws:codecommit:*:*:*SageMaker*",
                "arn:aws:codecommit:*:*:*Sagemaker*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "sagemaker.amazonaws.com"
                }
            }
        }
    ]
}
```

------

Pour restreindre les autorisations, limitez-les aux ressources Amazon S3 et Amazon ECR spécifiques, en limitant `"Resource": "*"` comme suit :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:*",
                "ecr:GetAuthorizationToken",
                "cloudwatch:PutMetricData",
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:DescribeLogStreams",
                "logs:PutLogEvents",
                "logs:GetLogEvents"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "sagemaker.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::inputbucket"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::{{inputbucket}}/{{object1}}",
                "arn:aws:s3:::{{outputbucket}}/{{path}}",
                "arn:aws:s3:::{{inputbucket}}/{{object2}}",
                "arn:aws:s3:::{{inputbucket}}/{{object3}}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": [
                "arn:aws:ecr:{{us-east-1}}:111122223333:repository/{{my-repo1}}",
                "arn:aws:ecr:{{us-east-1}}:111122223333:repository/{{my-repo2}}",
                "arn:aws:ecr:{{us-east-1}}:111122223333:repository/{{my-repo3}}"
            ]
        }
    ]
}
```

------

Si vous avez besoin d'accéder à d'autres sources, telles que des ressources Amazon DynamoDB ou Amazon Relational Database Service, ajoutez les autorisations adéquates à cette politique.

Dans la politique précédente, vous adaptez la stratégie comme suit :
+ Adaptez l’autorisation `s3:ListBucket` au compartiment spécifique que vous spécifiez sous la forme `InputDataConfig.DataSource.S3DataSource.S3Uri` dans une demande `CreateTrainingJob`.
+ Adaptez les autorisations `s3:GetObject `, `s3:PutObject`, et `s3:DeleteObject` comme suit :
  + Adaptez vos autorisations aux valeurs suivantes que vous spécifiez dans une demande `CreateTrainingJob` :

    `InputDataConfig.DataSource.S3DataSource.S3Uri`

    `OutputDataConfig.S3OutputPath`
  + Adaptez vos autorisations aux valeurs suivantes que vous spécifiez dans une demande `CreateModel` :

    `PrimaryContainer.ModelDataUrl`

    `SuplementalContainers.ModelDataUrl`
+ Adaptez les autorisations `ecr` comme suit :
  + Adaptez vos autorisations à la valeur `AlgorithmSpecification.TrainingImage` que vous spécifiez dans une demande `CreateTrainingJob`.
  + Adaptez vos autorisations à la valeur `PrimaryContainer.Image` que vous spécifiez dans une demande `CreateModel` :

Les actions `cloudwatch` et `logs` sont applicables aux ressources « \* ». Pour plus d'informations, consultez la section [CloudWatch Ressources et opérations](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-access-control-overview-cw.html#CloudWatch_ARN_Format) dans le guide de CloudWatch l'utilisateur Amazon.

Si vous spécifiez une clé AWS KMS pour chiffrer le volume de stockage de l'instance du bloc-notes, ajoutez les autorisations suivantes au rôle d'exécution :

```
{
    "Effect": "Allow",
    "Action": [
        "kms:CreateGrant",
        "kms:DescribeKey",
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:GenerateDataKeyWithoutPlaintext"
    ],
    "Resource": "arn:aws:kms:{{us-east-1}}:{{111122223333}}:key/{{kms-key-id}}"
}
```

## CreateHyperParameterTuningJob API : autorisations relatives aux rôles d'exécution
<a name="sagemaker-roles-createhyperparametertiningjob-perms"></a>

Pour un rôle d’exécution que vous pouvez transmettre dans une demande d’API `CreateHyperParameterTuningJob`, vous pouvez attacher la politique d’autorisation suivante au rôle :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:CreateLogGroup",
                "logs:DescribeLogStreams",
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket",
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Au lieu de les spécifier`"Resource": "*"`, vous pouvez étendre ces autorisations à des ressources Amazon S3, Amazon ECR et Amazon CloudWatch Logs spécifiques :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData",
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::{{inputbucket}}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::{{inputbucket}}/{{object}}",
                "arn:aws:s3:::{{outputbucket}}/{{path}}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "arn:aws:ecr:{{us-east-1}}:111122223333:repository/{{my-repo}}"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:CreateLogGroup",
                "logs:DescribeLogStreams"
            ],
            "Resource": "arn:aws:logs:{{us-east-1}}:111122223333:log-group:/aws/sagemaker/TrainingJobs*"
        }
    ]
}
```

------

Si le conteneur d’entraînement associé à la tâche de réglage d’hyperparamètre doit accéder à d’autres sources de données telles que les ressources DynamoDB ou Amazon RDS, ajoutez les autorisations pertinentes à cette politique.

Dans la politique précédente, vous adaptez la politique comme suit :
+ Adaptez l’autorisation `s3:ListBucket` à un compartiment spécifique que vous spécifiez sous la forme `InputDataConfig.DataSource.S3DataSource.S3Uri` dans une demande `CreateTrainingJob`.
+ Adaptez les autorisations `s3:GetObject ` et `s3:PutObject` aux objets suivants que vous spécifiez dans la configuration des données d’entrée et de sortie dans une demande `CreateHyperParameterTuningJob` :

  `InputDataConfig.DataSource.S3DataSource.S3Uri`

  `OutputDataConfig.S3OutputPath`
+ Adaptez les autorisations Amazon ECR au chemin de registre (`AlgorithmSpecification.TrainingImage`) que vous spécifiez dans une demande `CreateHyperParameterTuningJob`.
+ Élargissez CloudWatch les autorisations Amazon Logs pour enregistrer un groupe de tâches de SageMaker formation.

Les actions `cloudwatch` sont applicables aux ressources "\*". Pour plus d'informations, consultez la section [ CloudWatch Ressources et opérations](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format) dans le guide de CloudWatch l'utilisateur Amazon.

Si vous spécifiez un VPC privé pour votre tâche de réglage d’hyperparamètres, ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DeleteNetworkInterface",
        "ec2:DeleteNetworkInterfacePermission",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeVpcs",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
    ]
}
```

Si votre entrée est chiffrée à l'aide d'un chiffrement côté serveur à l'aide d'une clé AWS gérée par KMS (SSE-KMS), ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
        "kms:Decrypt"
    ]
}
```

Si vous spécifiez une clé KMS dans la configuration de sortie de la tâche de réglage des hyper-paramètres, ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
    "kms:Encrypt"
    ]
}
```

Si vous spécifiez une clé KMS de volume dans la configuration des ressources de la tâche de réglage des hyper-paramètres, ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
    "kms:CreateGrant"
    ]
}
```

## CreateProcessingJob API : autorisations relatives aux rôles d'exécution
<a name="sagemaker-roles-createprocessingjob-perms"></a>

Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API `CreateProcessingJob`, vous pouvez attacher la politique d'autorisation suivante au rôle :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:CreateLogGroup",
                "logs:DescribeLogStreams",
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket",
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Au lieu de spécifier `"Resource": "*"`, vous pouvez adapter ces autorisations à des ressources Amazon S3 et Amazon ECR spécifiques :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:CreateLogGroup",
                "logs:DescribeLogStreams",
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::{{inputbucket}}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::{{inputbucket}}/{{object}}",
                "arn:aws:s3:::{{outputbucket}}/{{path}}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "arn:aws:ecr:{{us-east-1}}:111122223333:repository/{{my-repo}}"
        }
    ]
}
```

------

Si `CreateProcessingJob.AppSpecification.ImageUri` a besoin d'accéder à d'autres sources de données, telles que des ressources DynamoDB ou Amazon RDS, ajoutez les autorisations adéquates à cette politique.

Dans la politique précédente, vous adaptez la politique comme suit :
+ Adaptez l’autorisation `s3:ListBucket` à un compartiment spécifique que vous spécifiez sous la forme `ProcessingInputs` dans une demande `CreateProcessingJob`.
+ Adaptez les autorisations `s3:GetObject ` et `s3:PutObject` aux objets qui seront téléchargés ou téléchargés dans `ProcessingInputs` et `ProcessingOutputConfig` dans une requête `CreateProcessingJob`.
+ Adaptez les autorisations Amazon ECR au chemin de registre (`AppSpecification.ImageUri`) que vous spécifiez dans une demande `CreateProcessingJob`.

Les actions `cloudwatch` et `logs` sont applicables aux ressources « \* ». Pour plus d'informations, consultez la section [CloudWatch Ressources et opérations](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-access-control-overview-cw.html#CloudWatch_ARN_Format) dans le guide de CloudWatch l'utilisateur Amazon.

Si vous spécifiez un VPC privé pour votre tâche de traitement, ajoutez les autorisations suivantes. Ne limitez pas la politique avec des conditions ou des filtres de ressources. Dans le cas contraire, les contrôles de validation effectués lors de la création de la tâche de traitement échouent.

```
{
    "Effect": "Allow",
    "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DeleteNetworkInterface",
        "ec2:DeleteNetworkInterfacePermission",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeVpcs",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
    ]
}
```

Si votre entrée est chiffrée à l'aide d'un chiffrement côté serveur à l'aide d'une clé AWS gérée par KMS (SSE-KMS), ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
        "kms:Decrypt"
    ]
}
```

Si vous spécifiez une clé KMS dans la configuration de sortie de la tâche de traitement, ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
    "kms:Encrypt",
    "kms:GenerateDataKey"
    ]
}
```

Si vous spécifiez une clé KMS de volume dans la configuration des ressources de la tâche de traitement, ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
    "kms:CreateGrant",
    "kms:DescribeKey"
    ]
}
```

## CreateTrainingJob API : autorisations relatives aux rôles d'exécution
<a name="sagemaker-roles-createtrainingjob-perms"></a>

Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API `CreateTrainingJob`, vous pouvez attacher la politique d'autorisation suivante au rôle :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:CreateLogGroup",
                "logs:DescribeLogStreams",
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket",
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Au lieu de spécifier `"Resource": "*"`, vous pouvez adapter ces autorisations à des ressources Amazon S3 et Amazon ECR spécifiques :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:CreateLogGroup",
                "logs:DescribeLogStreams",
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::{{inputbucket}}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::{{inputbucket}}/{{object}}",
                "arn:aws:s3:::{{outputbucket}}/{{path}}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "arn:aws:ecr:{{us-east-1}}:111122223333:repository/{{my-repo}}"
        }
    ]
}
```

------

Si `CreateTrainingJob.AlgorithSpecifications.TrainingImage` a besoin d'accéder à d'autres sources de données, telles que des ressources DynamoDB ou Amazon RDS, ajoutez les autorisations adéquates à cette politique.

Si vous spécifiez une ressource d'algorithme à l'aide du `AlgorithmSpecification.AlgorithmArn` paramètre, le rôle d'exécution doit également disposer de l'autorisation suivante :

```
{
    "Effect": "Allow",
    "Action": [
        "sagemaker:DescribeAlgorithm"
    ],
    "Resource": "arn:aws:sagemaker:*:*:algorithm/*"
}
```

Dans la politique précédente, vous adaptez la politique comme suit :
+ Adaptez l’autorisation `s3:ListBucket` à un compartiment spécifique que vous spécifiez sous la forme `InputDataConfig.DataSource.S3DataSource.S3Uri` dans une demande `CreateTrainingJob`.
+ Adaptez les autorisations `s3:GetObject ` et `s3:PutObject` aux objets suivants que vous spécifiez dans la configuration des données d’entrée et de sortie dans une demande `CreateTrainingJob` :

  `InputDataConfig.DataSource.S3DataSource.S3Uri`

  `OutputDataConfig.S3OutputPath`
+ Adaptez les autorisations Amazon ECR au chemin de registre (`AlgorithmSpecification.TrainingImage`) que vous spécifiez dans une demande `CreateTrainingJob`.

Les actions `cloudwatch` et `logs` sont applicables aux ressources « \* ». Pour plus d'informations, consultez la section [CloudWatch Ressources et opérations](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-access-control-overview-cw.html#CloudWatch_ARN_Format) dans le guide de CloudWatch l'utilisateur Amazon.

Si vous spécifiez un VPC privé pour votre tâche d’entraînement, ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
      "ec2:CreateNetworkInterface",
      "ec2:CreateNetworkInterfacePermission",
      "ec2:DeleteNetworkInterface",
      "ec2:DeleteNetworkInterfacePermission",
      "ec2:DescribeNetworkInterfaces",
      "ec2:DescribeVpcs",
      "ec2:DescribeDhcpOptions",
      "ec2:DescribeSubnets",
      "ec2:DescribeSecurityGroups"
    ]
}
```

Si votre entrée est chiffrée à l'aide d'un chiffrement côté serveur à l'aide d'une clé AWS gérée par KMS (SSE-KMS), ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
        "kms:Decrypt"
    ]
}
```

Si vous spécifiez une clé KMS dans la configuration de sortie de la tâche d’entraînement, ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
    "kms:Encrypt",
    "kms:GenerateDataKey"
    ]
}
```

Si vous spécifiez une clé KMS de volume dans la configuration des ressources de la tâche d’entraînement, ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
    "kms:CreateGrant",
    "kms:DescribeKey"
    ]
}
```

## CreateModel API : autorisations relatives aux rôles d'exécution
<a name="sagemaker-roles-createmodel-perms"></a>

Pour un rôle d'exécution que vous pouvez transmettre dans une demande d'API `CreateModel`, vous pouvez attacher la politique d'autorisation suivante au rôle :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:CreateLogGroup",
                "logs:DescribeLogStreams",
                "s3:GetObject",
                "s3:ListBucket",
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Au lieu de spécifier `"Resource": "*"`, vous pouvez adapter ces autorisations à des ressources Amazon S3 et Amazon ECR spécifiques :

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:CreateLogGroup",
                "logs:DescribeLogStreams",
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::{{inputbucket}}/{{object}}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": [
                "arn:aws:ecr:{{us-east-1}}:111122223333:repository/{{my-repo}}",
                "arn:aws:ecr:{{us-east-1}}:111122223333:repository/{{my-repo}}"
            ]
        }
    ]
}
```

------

Si `CreateModel.PrimaryContainer.Image` a besoin d'accéder à d'autres sources de données, telles que des ressources Amazon DynamoDB ou Amazon RDS, ajoutez les autorisations adéquates à cette politique.

Dans la politique précédente, vous adaptez la politique comme suit :
+ Adaptez les autorisations S3 aux objets que vous spécifiez dans le chemin `PrimaryContainer.ModelDataUrl` dans une demande [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html).
+ Adaptez les autorisations Amazon ECR à un chemin de registre spécifique que vous spécifiez sous les formes `PrimaryContainer.Image` et `SecondaryContainer.Image` dans une demande `CreateModel`.

Les actions `cloudwatch` et `logs` sont applicables aux ressources « \* ». Pour plus d'informations, consultez la section [CloudWatch Ressources et opérations](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/iam-access-control-overview-cw.html#CloudWatch_ARN_Format) dans le guide de CloudWatch l'utilisateur Amazon.

**Note**  
Si vous envisagez d'utiliser la [fonctionnalité de garde-fous de déploiement de l'SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/deployment-guardrails.html) pour le déploiement de modèles en production, assurez-vous que votre rôle d'exécution est autorisé à effectuer l'`cloudwatch:DescribeAlarms`action sur vos alarmes d'annulation automatique.

Si vous spécifiez un VPC privé pour votre modèle, ajoutez les autorisations suivantes :

```
{
    "Effect": "Allow",
    "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DeleteNetworkInterface",
        "ec2:DeleteNetworkInterfacePermission",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeVpcs",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups"
    ]
}
```