Utilisez la register-on-premises-instance commande (ARN de session IAM) pour enregistrer une instance sur site - AWS CodeDeploy

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.

Utilisez la register-on-premises-instance commande (ARN de session IAM) pour enregistrer une instance sur site

Pour un contrôle maximal de l'authentification et de l'enregistrement de vos instances locales, vous pouvez utiliser la register-on-premises-instancecommande et actualiser régulièrement les informations d'identification temporaires générées avec le AWS Security Token Service ()AWS STS. Un rôle IAM statique pour l'instance assume le rôle de ces informations d' AWS STS identification actualisées pour effectuer les opérations de CodeDeploy déploiement.

Cette méthode est très utile lorsque vous devez enregistrer un grand nombre d'instances. Il vous permet d'automatiser le processus d'inscription avec CodeDeploy. Vous pouvez utiliser votre propre système d'identité et d'authentification pour authentifier les instances sur site et distribuer les informations d'identification de session IAM du service aux instances à utiliser avec. CodeDeploy

Note

Vous pouvez également utiliser un utilisateur IAM partagé distribué à toutes les instances locales pour appeler l' AWS STS AssumeRoleAPI afin de récupérer les informations d'identification de session pour les instances locales. Cette méthode est moins sécurisée et n'est pas recommandée pour les environnements critiques ou de production.

Utilisez les informations des rubriques suivantes pour configurer une instance sur site à l'aide des informations d'identification de sécurité temporaires générées avec AWS STS.

Conditions requises pour l'enregistrement de l'ARN de la session IAM

Outre les prérequis figurant dans Conditions préalables à la configuration d'une instance sur site, les exigences suivantes doivent être respectées :

Autorisations IAM

L'identité IAM que vous utilisez pour enregistrer une instance sur site doit être autorisée à effectuer CodeDeploy des opérations. Assurez-vous que la politique AWSCodeDeployFullAccessgérée est attachée à l'identité IAM. Pour plus d'informations, consultez les politiques AWS gérées dans le guide de l'utilisateur IAM.

Système de renouvellement des informations d'identification temporaires

Si vous utilisez un ARN de session IAM pour enregistrer des instances sur site, il vous faut mettre en place un système pour actualiser régulièrement les informations d'identification temporaires. Les informations d'identification temporaires expirent après une heure, voire plus tôt si vous spécifiez un délai plus court lorsque les informations d'identification sont générées. Il existe deux méthodes pour actualiser les informations d'identification :

  • Méthode 1 : utilisez le système d'identité et d'authentification en place au sein de votre réseau d'entreprise avec un script CRON qui interroge régulièrement le système d'authentification et d'identité afin de copier les dernières informations d'identification de session vers l'instance. Cela vous permet d'intégrer votre authentification et votre structure d'identité AWS sans avoir à modifier l' CodeDeploy agent ou le service pour prendre en charge les types d'authentification que vous utilisez dans votre organisation.

  • Méthode 2 : exécutez régulièrement une tâche CRON sur l'instance pour appeler l' AWS STS AssumeRoleaction et écrire les informations d'identification de session dans un fichier auquel l' CodeDeploy agent peut accéder. Cette méthode nécessite d'un utilisateur IAM et la copie des informations d'identification sur l'instance sur site, mais vous pouvez réutiliser le même utilisateur IAM et les informations d'identification pour l'ensemble de votre parc d'instances sur site.

Note

Que vous utilisiez la méthode 1 ou 2, vous devez configurer un processus pour redémarrer l' CodeDeploy agent après la mise à jour des informations d'identification de session temporaires afin que les nouvelles informations d'identification prennent effet.

Pour plus d'informations sur la création et l'utilisation des AWS STS informations d'identification, consultez les AWS Security Token Service sections Référence d'API et Utilisation d'informations d'identification de sécurité temporaires pour demander l'accès aux AWS ressources.

Étape 1 : créer le rôle IAM que les instances locales assumeront

Vous pouvez utiliser la console AWS CLI ou la console IAM pour créer un rôle IAM qui sera utilisé par vos instances sur site pour s'authentifier et interagir avec. CodeDeploy

Vous n'avez qu'un seul rôle IAM à créer. Chacune de vos instances sur site peut endosser ce rôle pour récupérer les informations d'identification de sécurité temporaires et obtenir les autorisations accordées à ce rôle.

Le rôle que vous créez nécessite les autorisations suivantes pour accéder aux fichiers nécessaires à l'installation de l' CodeDeploy agent :

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }

Nous vous recommandons de limiter cette politique aux seuls compartiments Amazon S3 auxquels votre instance sur site doit accéder. Si vous limitez cette politique, assurez-vous de donner accès aux compartiments Amazon S3 contenant l' CodeDeploy agent. Dans le cas contraire, une erreur peut se produire chaque fois que l' CodeDeploy agent est installé ou mis à jour sur l'instance locale. Pour plus d'informations sur le contrôle de l'accès aux compartiments Amazon S3, consultez la section Gestion des autorisations d'accès à vos ressources Amazon S3.

Pour créer le rôle IAM
  1. Appelez la commande create-role avec l'option --role-name afin de préciser le nom du rôle IAM (par exemple, CodeDeployInstanceRole) et l'option --assume-role-policy-document pour fournir les autorisations.

    Lorsque vous créez le rôle IAM pour cette instance, vous pouvez lui attribuer le nom CodeDeployInstanceRole et inclure les autorisations requises dans un fichier nommé CodeDeployRolePolicy.json :

    aws iam create-role --role-name CodeDeployInstanceRole --assume-role-policy-document file://CodeDeployRolePolicy.json
  2. Dans la sortie de l'appel de la commande create-role, notez la valeur du champ ARN. Par exemple :

    arn:aws:iam::123456789012:role/CodeDeployInstanceRole

    Vous aurez besoin de l'ARN du rôle lorsque vous utiliserez l' AWS STS AssumeRoleAPI pour générer des informations d'identification à court terme pour chaque instance.

    Pour plus d'informations sur la création de rôles IAM, consultez la section Création d'un rôle pour déléguer des autorisations à un AWS service dans le Guide de l'utilisateur IAM.

    Pour plus d'informations sur l'attribution d'autorisations à un rôle existant, consultez la section Référence put-role-policydes AWS CLI commandes.

Étape 2 : générer des informations d'identification temporaires pour une instance individuelle à l'aide de AWS STS

Avant de générer les informations d'identification temporaires qui serviront à enregistrer l'instance sur site, vous devez créer ou choisir l'identité IAM (utilisateur ou rôle) pour laquelle vous allez générer les informations d'identification temporaires. L'autorisation sts:AssumeRole doit être incluse dans les paramètres de stratégie de cette identité IAM.

Pour plus d'informations sur l'octroi d'sts:AssumeRoleautorisations à une identité IAM, consultez Création d'un rôle pour déléguer des autorisations à un AWS service et AssumeRole.

Il existe deux façons de générer les informations d'identification temporaires :

  • Utilisez la commande assume-role avec. AWS CLI Par exemple :

    aws sts assume-role --role-arn arn:aws:iam::12345ACCOUNT:role/role-arn --role-session-name session-name

    Où :

    Note

    Si vous utilisez un script CRON qui interroge régulièrement le système d'identité et d'authentification et copie les dernières informations d'identification de session sur l'instance (méthode 1 pour actualiser les informations d'identification temporaires décrite dansConditions requises pour l'enregistrement de l'ARN de la session IAM), vous pouvez utiliser à la place n'importe quel AWS SDK compatible pour appeler. AssumeRole

  • Utilisez un outil fourni par AWS.

    L' aws-codedeploy-session-helper outil génère des AWS STS informations d'identification et les écrit dans un fichier que vous placez sur l'instance. Cet outil est mieux adapté à la méthode 2 d'actualisation des informations d'identification temporaires, décrite dans Conditions requises pour l'enregistrement de l'ARN de la session IAM. Dans cette méthode, l' aws-codedeploy-session-helper outil est placé sur chaque instance et exécute la commande en utilisant les autorisations d'un utilisateur IAM. Chaque instance utilise cet outil avec les informations d'identification du même utilisateur IAM.

    Pour plus d'informations, consultez le aws-codedeploy-session-helper GitHub référentiel.

    Note

    Une fois que vous avez créé les informations d'identification de la session IAM, placez-les à n'importe quel emplacement sur l'instance sur site. À l'étape suivante, vous allez configurer l' CodeDeploy agent pour accéder aux informations d'identification à cet emplacement.

Avant de poursuivre, assurez-vous que le système que vous allez utiliser pour actualiser régulièrement les informations d'identification temporaires est en place. Si les informations d'identification temporaires ne sont pas actualisées, les déploiements vers l'instance sur site échoueront. Pour plus d'informations, consultez « Système de renouvellement des informations d'identification temporaires » dans Conditions requises pour l'enregistrement de l'ARN de la session IAM.

Étape 3 : ajouter un fichier de configuration à l'instance locale

Ajoutez un fichier de configuration à l'instance sur site en utilisant les autorisations racine ou d'administrateur. Ce fichier de configuration est utilisé pour déclarer les informations d'identification IAM et la AWS région cible à CodeDeploy utiliser. Le fichier doit être ajouté à un emplacement spécifique sur l'instance sur site. Le fichier doit inclure l'ARN de la session temporaire IAM, son identifiant de clé secrète et sa clé d'accès secrète, ainsi que la AWS région cible.

Pour ajouter un fichier de configuration
  1. Créez un fichier nommé codedeploy.onpremises.yml (pour un serveur Ubuntu ou une instance locale RHEL) ou conf.onpremises.yml (pour une instance locale Windows Server) à l'emplacement suivant sur l'instance locale :

    • Pour le serveur Ubuntu : /etc/codedeploy-agent/conf

    • Pour Windows Server : C:\ProgramData\Amazon\CodeDeploy

  2. Utilisez un éditeur de texte pour ajouter les informations suivantes au codedeploy.onpremises.yml fichier (Linux) ou au conf.onpremises.yml fichier (Windows) nouvellement créé :

    --- iam_session_arn: iam-session-arn aws_credentials_file: credentials-file region: supported-region

    Où :

Étape 4 : préparer une instance sur site pour CodeDeploy les déploiements

Installez et configurez AWS CLI

Installez et configurez l'instance AWS CLI sur site. (Le AWS CLI sera utilisé pour télécharger et installer l' CodeDeploy agent sur l'instance locale.)

  1. Pour installer l'instance AWS CLI sur site, suivez les instructions de la section Configuration avec le guide AWS CLI de l'AWS Command Line Interface utilisateur.

    Note

    CodeDeploy les commandes permettant de travailler avec des instances locales sont devenues disponibles dans la version 1.7.19 du. AWS CLI Si vous avez une version AWS CLI déjà installée, vous pouvez vérifier sa version en appelantaws --version.

  2. Pour configurer l'instance AWS CLI sur site, suivez les instructions de la section Configuration de l'instance AWS CLI dans le guide de l'AWS Command Line Interface utilisateur.

    Important

    Lorsque vous configurez le AWS CLI (par exemple, en appelant la aws configure commande), veillez à spécifier l'ID de clé secrète et la clé d'accès secrète d'un utilisateur IAM disposant au minimum des autorisations décrites dansConditions requises pour l'enregistrement de l'ARN de la session IAM.

Définissez la variable d'environnement AWS_REGION (Ubuntu Server et RHEL uniquement).

Si vous n'exécutez pas Ubuntu Server ou RHEL sur votre instance locale, ignorez cette étape et passez directement à « Installer l' CodeDeploy agent ».

Installez l' CodeDeploy agent sur un serveur Ubuntu ou une instance RHEL sur site et autorisez l'instance à mettre à jour l' CodeDeploy agent chaque fois qu'une nouvelle version est disponible. Pour ce faire, définissez la variable d'AWS_REGIONenvironnement de l'instance sur l'identifiant de l'une des régions prises en charge par CodeDeploy. Nous vous recommandons de définir la valeur en fonction de la région dans laquelle se trouvent vos CodeDeploy applications, groupes de déploiement et révisions d'applications (par exemple,us-west-2). Pour obtenir la liste des régions, voir Région et points de terminaison dans le Références générales AWS.

Pour définir la variable d'environnement, appelez la commande suivante depuis le terminal :

export AWS_REGION=supported-region

région-prise-en-charge est l'identificateur de la région (par exemple, us-west-2).

Installation de l' CodeDeploy agent

Étape 5 : enregistrer l'instance sur site auprès CodeDeploy

Les instructions de cette étape supposent que vous inscrivez l'instance sur site à partir de l'instance sur site elle-même. Vous pouvez enregistrer une instance sur site à partir d'un appareil ou d'une instance distinct sur lequel elle est AWS CLI installée et configurée.

Utilisez le AWS CLI pour enregistrer l'instance sur site CodeDeploy afin qu'elle puisse être utilisée dans des déploiements.

Avant de pouvoir utiliser le AWS CLI, vous aurez besoin de l'ARN des informations d'identification de session temporaires que vous avez créées dansÉtape 3 : ajouter un fichier de configuration à l'instance locale. Par exemple, pour une instance que vous identifiez comme AssetTag12010298EX :

arn:sts:iam::123456789012:assumed-role/CodeDeployInstanceRole/AssetTag12010298EX

Appelez la commande register-on-premises-instance, en spécifiant les éléments suivants :

  • Un nom qui identifie de façon unique l'instance sur site (avec l'option --instance-name).

    Important

    Pour identifier plus facilement l'instance sur site, notamment à des fins de débogage, nous vous recommandons vivement de spécifier un nom faisant référence à une caractéristique unique de l'instance sur site (par exemple, le nom de session des informations d'identification STS et le numéro de série ou un identificateur de ressource interne unique, le cas échéant). Si vous spécifiez une adresse MAC comme nom, sachez que les adresses MAC contiennent des caractères CodeDeploy interdits, tels que deux points (:)). Pour obtenir la liste des caractères autorisés, consultez la page CodeDeploy quotas.

  • L'ARN de session IAM que vous avez configuré pour authentifier plusieurs instances sur site à l'Étape 1 : créer le rôle IAM que les instances locales assumeront.

Par exemple :

aws deploy register-on-premises-instance --instance-name name-of-instance --iam-session-arn arn:aws:sts::account-id:assumed-role/role-to-assume/session-name

Où :

Étape 6 : baliser l'instance locale

Vous pouvez utiliser la console AWS CLI ou la CodeDeploy console pour étiqueter l'instance locale. (CodeDeployutilise des balises d'instance locales pour identifier les cibles de déploiement lors d'un déploiement.)

Pour baliser l'instance sur site (interface CLI)
  • Appelez la commande add-tags-to-on-premises-instances en spécifiant :

    • Le nom qui identifie de façon unique l'instance sur site (avec l'option --instance-names).

    • Le nom de la clé de balise et de la valeur de balise de l'instance sur site que vous voulez utiliser (avec l'option --tags). Vous devez spécifier à la fois un nom et une valeur. CodeDeploy n'autorise pas les balises d'instance locales contenant uniquement des valeurs.

      Par exemple :

      aws deploy add-tags-to-on-premises-instances --instance-names AssetTag12010298EX --tags Key=Name,Value=CodeDeployDemo-OnPrem
Pour baliser l'instance sur site (console)
  1. Connectez-vous à la CodeDeploy console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/codedeploy.

    Note

    Connectez-vous avec le même utilisateur que celui que vous avez configuréCommencer avec CodeDeploy.

  2. Dans le volet de navigation, développez Deploy, puis sélectionnez On-premises instances.

  3. Dans la liste des instances sur site, choisissez nom de l'instance sur site à baliser.

  4. Dans la liste des balises, sélectionnez ou entrez la clé de balise et la valeur de balise souhaitées. Une fois que vous avez entré la clé de balise et la valeur de balise, une autre ligne apparaît. Vous pouvez répéter cela pour un maximum de 10 balises. Pour supprimer une identification, choisissez Supprimer.

  5. Après avoir ajouté les balises, choisissez Update Tags.

Étape 7 : Déployer les révisions de l'application sur l'instance locale

Vous êtes maintenant prêt à déployer les révisions d'application sur l'instance sur site inscrite et balisée.

Vous déployez des révisions d'applications sur des instances sur site de la même manière que le déploiement de révisions d'applications sur des instances Amazon EC2. Pour obtenir des instructions, veuillez consulter Créez un déploiement avec CodeDeploy. Ces instructions incluent un lien vers des prérequis, y compris la création d'une application, la création d'un groupe de déploiement et la préparation d'une révision d'application. Si vous avez besoin d'un exemple simple de révision d'application à déployer, vous pouvez créer celui décrit dans Étape 2 : Création d'un exemple de révision d'application, dans la rubrique Tutoriel : Déployer une application sur une instance locale avec CodeDeploy (Windows Server, Ubuntu Server ou Red Hat Enterprise Linux).

Important

Si vous réutilisez un rôle de CodeDeploy service dans le cadre de la création d'un groupe de déploiement qui cible les instances locales, vous Tag:get* devez inclure dans la Action partie de la déclaration de politique du rôle de service. Pour plus d’informations, consultez Étape 2 : créer un rôle de service pour CodeDeploy.

Étape 8 : suivre les déploiements vers l'instance sur site

Après avoir déployé une révision d'application sur les instances sur site inscrites et balisées, vous pouvez suivre la progression du déploiement.

Vous suivez les déploiements sur des instances sur site de la même manière que le suivi des déploiements sur des instances Amazon EC2. Pour obtenir des instructions, consultez Afficher les détails CodeDeploy du déploiement .