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.
Rubriques
Conditions requises pour l'enregistrement de l'ARN de la session IAM
Étape 1 : créer le rôle IAM que les instances locales assumeront
Étape 3 : ajouter un fichier de configuration à l'instance locale
Étape 4 : préparer une instance sur site pour CodeDeploy les déploiements
Étape 7 : Déployer les révisions de l'application sur l'instance locale
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
-
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
-
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:AssumeRole
autorisations à 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-namesession-name
Où :
-
12345ACCOUNT
est le numéro de compte à 12 chiffres de votre organisation. -
role-arn
est l'ARN du rôle endossé, que vous avez créé à l'Étape 1 : créer le rôle IAM que les instances locales assumeront. -
session-name
est le nom à affecter à la session de rôle que vous êtes en train de créer.
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
-
Créez un fichier nommé
codedeploy.onpremises.yml
(pour un serveur Ubuntu ou une instance locale RHEL) ouconf.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
-
-
Utilisez un éditeur de texte pour ajouter les informations suivantes au
codedeploy.onpremises.yml
fichier (Linux) ou auconf.onpremises.yml
fichier (Windows) nouvellement créé :--- iam_session_arn:
iam-session-arn
aws_credentials_file:credentials-file
region:supported-region
Où :
-
iam-session-arn
est l'ARN de session IAM dans Étape 2 : générer des informations d'identification temporaires pour une instance individuelle à l'aide de AWS STS lequel vous l'avez noté. -
credentials-file
est l'emplacement du fichier des informations d'identification pour l'ARN de la session temporaire. Vous avez dû le noter à l'Étape 2 : générer des informations d'identification temporaires pour une instance individuelle à l'aide de AWS STS. -
supported-region
est l'une des régions qui prennent CodeDeploy en charge, comme indiqué dans Région et points de terminaison dans. Références générales AWS
-
É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.)
-
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.
-
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_REGION
environnement 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
Où région-prise-en-charge
est l'identificateur de la région (par exemple, us-west-2
).
Installation de l' CodeDeploy agent
-
Pour une instance locale d'Ubuntu Server, suivez les instructions fourniesInstallation de l' CodeDeploy agent pour Ubuntu Server, puis revenez à cette page.
-
Pour une instance RHEL sur site, suivez les instructions fourniesInstallez l' CodeDeploy agent pour Amazon Linux ou RHEL, puis revenez à cette page.
-
Pour une instance locale de Windows Server, suivez les instructions indiquées dansInstallation de l' CodeDeploy agent pour Windows Server, puis revenez à cette page.
É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ù :
-
name-of-instance
est le nom que vous utilisez pour identifier l'instance locale, par exemple.AssetTag12010298EX
-
account-id
est l'ID de compte à 12 chiffres pour votre organisation, par exemple111222333444
. -
role-to-assume
est le nom du rôle IAM que vous avez créé pour l'instance, par exemple.CodeDeployInstanceRole
-
session-name
est le nom du rôle de session que vous avez spécifié à l'Étape 2 : générer des informations d'identification temporaires pour une instance individuelle à l'aide de AWS STS.
É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)
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.
Dans le volet de navigation, développez Deploy, puis sélectionnez On-premises instances.
-
Dans la liste des instances sur site, choisissez nom de l'instance sur site à baliser.
-
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.
-
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 .