Méthode 2 : Utiliser IAM afin de configurer des rôles pour Automation - AWS Systems Manager

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.

Méthode 2 : Utiliser IAM afin de configurer des rôles pour Automation

Si vous avez besoin de créer un rôle de service pour Automation, une fonctionnalité de AWS Systems Manager, exécutez les tâches suivantes. Pour plus d'informations sur le moment où un rôle de service est requis pour Automation, consultez Configuration d'Automation.

Tâche 1 : Création d'un rôle de service pour Automation

Utilisez la procédure suivante pour créer un rôle de service (ou endosser un rôle) pour Systems Manager Automation.

Note

Vous pouvez également utiliser ce rôle dans des runbooks, notamment le runbook AWS-CreateManagedLinuxInstance. L'utilisation de ce rôle ou de l'Amazon Resource Name (ARN) d'un rôle AWS Identity and Access Management (IAM) dans des runbooks permet à Automation d'effectuer des actions dans votre environnement, comme lancer de nouvelles instances et effectuer des actions en votre nom.

Pour créer un rôle IAM et autoriser Automation à l'endosser
  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le volet de navigation, sélectionnez Rôles, puis Créer un rôle.

  3. Sous Select type of trusted entity, sélectionnez AWS service.

  4. Dans la section Choisir un cas d'utilisation sélectionnez Systems Manager, puis sélectionnez Suivant : Autorisations.

  5. Sur la page Politique d'autorisations attachée, recherchez la politique AmazonSSMAutomationRole, sélectionnez-la, puis cliquez sur Next: Review (Suivant : Vérification).

  6. Sur la page Review (Vérification), saisissez un nom dans la zone Role name (Nom du rôle), puis saisissez une description.

  7. Sélectionnez Créer un rôle. Le système vous renvoie à la page Rôles.

  8. Sur la page Rôles, sélectionnez le rôle que vous venez de créer pour ouvrir la page Récapitulatif. Notez le Nom du rôle et l'ARN de rôle. Vous spécifierez l'ARN du rôle lorsque vous attacherez la politique iam:PassRole à votre compte IAM dans la procédure suivante. Vous pouvez également spécifier le nom du rôle et l'ARN dans des runbooks.

Note

La politique AmazonSSMAutomationRole attribue l'autorisation du rôle d'Automation à un sous-ensemble de fonctions AWS Lambda au sein de votre compte. Ces fonctions commencent par « Automation ». Si vous avez l'intention d'utiliser Automation avec des fonctions Lambda, l'ARN Lambda doit utiliser le format suivant :

"arn:aws:lambda:*:*:function:Automation*"

Si vous avez des fonctions Lambda existantes dont les ARN n'utilisent pas ce format, vous devez également attacher une politique Lambda supplémentaire à votre rôle d'automatisation, telle qu'une politique AWSLambdaRole. La politique ou le rôle supplémentaire doit fournir un accès plus large aux fonctions Lambda au sein du Compte AWS.

Après avoir créé votre fonction du service, nous vous recommandons de modifier la politique d'approbation afin d'éviter le problème de député confus entre services. Le problème de député confus est un problème de sécurité dans lequel une entité qui n'est pas autorisée à effectuer une action peut contraindre une entité plus privilégiée à le faire. Dans AWS, l'emprunt d'identité entre services peut entraîner le problème de député confus. L'usurpation d'identité entre services peut se produire lorsqu'un service (le service appelant) appelle un autre service (le service appelé). Le service appelant peut être manipulé et ses autorisations utilisées pour agir sur les ressources d'un autre client auxquelles on ne serait pas autorisé d'accéder autrement. Pour éviter cela, AWS fournit des outils qui vous aident à protéger vos données pour tous les services avec des principaux de service qui ont eu accès aux ressources de votre compte.

Nous vous recommandons d'utiliser les clés de contexte de condition globale aws:SourceArn et aws:SourceAccount dans les politiques de ressources pour limiter les autorisations à la ressource octroyées par Automation à un autre service. Si la valeur aws:SourceArn ne contient pas l'ID de compte, tel qu'un ARN de compartiment Amazon S3, vous devez utiliser les deux clés de contexte de condition globale pour limiter les autorisations. Si vous utilisez les deux clés de contexte de condition globale et que la valeur aws:SourceArn contient l'ID de compte, la valeur aws:SourceAccount et le compte dans la valeur aws:SourceArn doivent utiliser le même ID de compte lorsqu'ils sont utilisés dans la même instruction de politique. Utilisez aws:SourceArn si vous souhaitez qu'une seule ressource soit associée à l'accès entre services. Utilisez aws:SourceAccount si vous souhaitez autoriser l'association d'une ressource de ce compte à l'utilisation interservices. La valeur de aws:SourceArn doit être l'ARN pour les exécutions d'automatisation. Si vous ne connaissez pas l'ARN complet de la ressource ou si vous spécifiez plusieurs ressources, utilisez la clé de contexte de condition globale aws:SourceArn avec des caractères génériques (*) pour les parties inconnues de l'ARN. Par exemple, arn:aws:ssm:*:123456789012:automation-execution/*.

L'exemple suivant montre comment utiliser les clés de contexte de condition globale aws:SourceArn et aws:SourceAccount pour Automation afin d'éviter le problème du député confus.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:ssm:*:123456789012:automation-execution/*" } } } ] }
Pour modifier la politique d'approbation du rôle
  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation, sélectionnez Rôles.

  3. Dans la liste des rôles de votre compte, sélectionnez le nom de votre rôle de service Automation.

  4. Sélectionnez l'onglet Relations d'approbation, puis Modifier la relation d'approbation.

  5. Modifiez la politique d'approbation à l'aide des clés de contexte de condition globale aws:SourceArn et aws:SourceAccount pour Automation afin d'éviter tout problème de député confus.

  6. Pour enregistrer vos modifications, sélectionnez Update Trust Policy (Mettre à jour la politique d'approbation).

(Facultatif) Ajoutez une politique d'automatisation en ligne ou une politique gérée par le client pour invoquer d'autres Services AWS

Si vous exécutez une instance d'Automation qui appelle d'autres Services AWS à l'aide d'une fonction du service IAM, la fonction du service doit être configurée avec l'autorisation d'appeler ces services. Cette exigence s'applique à tous les runbooks Automation d'AWS (runbooks AWS-*) tels que les runbooks AWS-ConfigureS3BucketLogging, AWS-CreateDynamoDBBackup et AWS-RestartEC2Instance, par exemple. Cette exigence s'applique également à tous les runbooks personnalisés que vous créez qui appellent d'autres Services AWS à l'aide d'actions qui appellent d'autres services. Par exemple, si vous utilisez les actions aws:executeAwsApi, aws:CreateStack ou aws:copyImage, pour n'en citer que quelques-unes, vous devez configurer le rôle de service avec l'autorisation d'appeler ces services. Vous pouvez accorder des autorisations à d'autres Services AWS en ajoutant au rôle une politique IAM en ligne ou une politique gérée par le client.

Pour intégrer une politique en ligne à un rôle de service (console IAM)
  1. Connectez-vous à l’outil AWS Management Console, puis ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation, sélectionnez Rôles.

  3. Dans la liste, sélectionnez le nom du rôle que vous souhaitez modifier.

  4. Sélectionnez l'onglet Autorisations.

  5. Dans le menu déroulant Ajouter des autorisations, choisissez Joindre des politiques ou Créer une politique en ligne.

  6. Si vous choisissez Joindre des politiques, cochez la case située à côté de la politique que vous souhaitez ajouter et choisissez Ajouter des autorisations.

  7. Si vous choisissez Créer une politique en ligne, sélectionnez l'onglet JSON.

  8. Ajoutez un document de politique JSON pour les Services AWS que vous voulez appeler. Voici deux exemples de document de politique JSON.

    Exemple de PutObject et GetObject Amazon S3

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject" ], "Resource": "arn:aws:s3:::doc-example-bucket/*" } ] }

    Exemple de CreateSnapshot et DescribeSnapShots Amazon EC2

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"ec2:CreateSnapshot", "Resource":"*" }, { "Effect":"Allow", "Action":"ec2:DescribeSnapshots", "Resource":"*" } ] }

    Pour obtenir des détails sur la terminologie IAM, veuillez consulter la Référence de politique JSON IAM dans le Guide de l'utilisateur IAM.

  9. Lorsque vous avez terminé, sélectionnez Review policy (Examiner une politique). Le programme de validation de politique signale les éventuelles erreurs de syntaxe.

  10. Sur la page Review policy (Examiner une politique), saisissez un Name (Nom) pour la politique que vous êtes en train de créer. Vérifiez le récapitulatif de politique pour voir les autorisations accordées par votre politique. Sélectionnez ensuite Créer une politique pour enregistrer votre travail.

  11. Une fois que vous avez créé une politique en ligne, elle est automatiquement intégrée à votre rôle.

Tâche 2 : Attachement de la politique iam:PassRole à votre rôle Automation

Utilisez la procédure suivante pour attacher la politique iam:PassRole à votre rôle de service Automation. Cela permet au service Automation de transmettre le rôle à d'autres services ou fonctionnalités de Systems Manager lors de l'exécution d'automatisations.

Pour attacher la politique iam:PassRole à votre rôle d'automatisation
  1. Dans la page Récapitulatif du rôle que vous venez de créer, sélectionnez l'onglet Autorisations.

  2. Sélectionnez Ajouter une politique en ligne.

  3. Dans la page Créer une politique, sélectionnez l'onglet Éditeur visuel.

  4. Sélectionnez Service, puis sélectionnez IAM.

  5. Sélectionnez Sélectionner des actions.

  6. Dans la zone de texte Filter actions (Filtrer les actions), saisissez PassRole, puis sélectionnez l'option PassRole.

  7. Sélectionnez Ressources. Vérifiez que Spécifique est sélectionné, puis sélectionnez Add ARN (Ajouter l'ARN).

  8. Dans le champ Specify ARN for role (Spécifier l'ARN du rôle), collez l'ARN du rôle Automation que vous avez copié à la fin de la tâche 1. Le système remplit automatiquement les champs Compte et Role name with path (Nom du rôle avec chemin d'accès).

    Note

    Si vous souhaitez que le rôle de service Automation attache un rôle de profil d'instance IAM à une instance EC2, vous devez ajouter l'ARN du rôle de profil d'instance IAM. Cela permet au rôle de service Automation de transmettre le rôle de profil d'instance IAM à l'instance EC2 cible.

  9. Choisissez Add (Ajouter).

  10. Sélectionnez Review policy (Examiner une politique).

  11. Sur la page Review Policy (Examiner une politique), saisissez un nom, puis sélectionnez Create Policy (Créer une politique).