Utilisation d'un manifeste pour activer des fonctionnalités de récupération supplémentaires - AWS AppConfig

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.

Utilisation d'un manifeste pour activer des fonctionnalités de récupération supplémentaires

AWS AppConfig L'agent propose les fonctionnalités supplémentaires suivantes pour vous aider à récupérer les configurations de vos applications.

Comprendre les manifestes des agents

Pour activer ces fonctionnalités de AWS AppConfig l'agent, vous devez créer un manifeste. Un manifeste est un ensemble de données de configuration que vous fournissez pour contrôler les actions que l'agent peut effectuer. Un manifeste est écrit dedansJSON. Il contient un ensemble de clés de haut niveau correspondant aux différentes configurations que vous avez déployées avec. AWS AppConfig

Un manifeste peut inclure plusieurs configurations. En outre, chaque configuration du manifeste peut identifier une ou plusieurs fonctionnalités d'agent à utiliser pour la configuration spécifiée. Le contenu du manifeste utilise le format suivant :

{ "application_name:environment_name:configuration_name": { "agent_feature_to_enable_1": { "feature-setting-key": "feature-setting-value" }, "agent_feature_to_enable_2": { "feature-setting-key": "feature-setting-value" } } }

Voici un JSON exemple de manifeste avec deux configurations. La première configuration (MyApp) n'utilise aucune fonctionnalité de AWS AppConfig l'agent. La deuxième configuration (My2ndApp) utilise la copie de configuration d'écriture sur disque et les fonctionnalités de récupération multi-comptes :

{ "MyApp:Test:MyAllowListConfiguration": {}, "My2ndApp:Beta:MyEnableMobilePaymentsFeatureFlagConfiguration": { "credentials": { "roleArn": "arn:us-west-1:iam::123456789012:role/MyTestRole", "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac", "roleSessionName": "AwsAppConfigAgent", "credentialsDuration": "2h" }, "writeTo": { "path": "/tmp/aws-appconfig/my-2nd-app/beta/my-enable-payments-feature-flag-configuration.json" } } }
Comment fournir un manifeste d'agent

Vous pouvez stocker le manifeste sous forme de fichier dans un emplacement où AWS AppConfig l'agent peut le lire. Vous pouvez également enregistrer le manifeste sous forme de AWS AppConfig configuration et pointer l'agent vers celui-ci. Pour fournir un manifeste d'agent, vous devez définir une variable d'MANIFESTenvironnement avec l'une des valeurs suivantes :

Emplacement du manifeste Valeur de la variable d'environnement Cas d’utilisation

Fichier

fichier : /path/to/agent-manifest.json

Utilisez cette méthode si votre manifeste ne change pas souvent.

AWS AppConfig configuration

application-name:environment-name:configuration-name

Utilisez cette méthode pour les mises à jour dynamiques. Vous pouvez mettre à jour et déployer un manifeste stocké dans une configuration de la même manière AWS AppConfig que vous stockez d'autres AWS AppConfig configurations.

Variable d'environnement

Contenu du manifeste (JSON)

Utilisez cette méthode si votre manifeste ne change pas souvent. Cette méthode est utile dans les environnements de conteneurs où il est plus facile de définir une variable d'environnement que d'exposer un fichier.

Pour plus d'informations sur la définition de variables pour l' AWS AppConfig Agent, consultez la rubrique correspondant à votre cas d'utilisation :

Configuration de AWS AppConfig l'agent pour récupérer les configurations de plusieurs comptes

Vous pouvez configurer AWS AppConfig l'agent pour récupérer des configurations à partir de plusieurs Comptes AWS en saisissant les remplacements d'informations d'identification dans le manifeste de l' AWS AppConfig agent. Les remplacements d'informations d'identification incluent le nom de ressource Amazon (ARN) d'un rôle AWS Identity and Access Management (IAM), un ID de rôle, un nom de session et la durée pendant laquelle l'agent peut assumer le rôle.

Vous entrez ces informations dans une section « informations d'identification » du manifeste. La section « informations d'identification » utilise le format suivant :

{ "application_name:environment_name:configuration_name": { "credentials": { "roleArn": "arn:partition:iam::account_ID:role/roleName", "roleExternalId": "string", "roleSessionName": "string", "credentialsDuration": "time_in_hours" } } }

Voici un exemple :

{ "My2ndApp:Beta:MyEnableMobilePaymentsFeatureFlagConfiguration": { "credentials": { "roleArn": "arn:us-west-1:iam::123456789012:role/MyTestRole", "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac", "roleSessionName": "AWSAppConfigAgent", "credentialsDuration": "2h" } } }

Avant de récupérer une configuration, l'agent lit les informations d'identification de la configuration dans le manifeste, puis assume le IAM rôle spécifié pour cette configuration. Vous pouvez spécifier un ensemble différent de remplacements d'informations d'identification pour différentes configurations dans un seul manifeste. Le schéma suivant montre comment l' AWS AppConfig agent, lorsqu'il s'exécute dans le compte A (le compte de récupération), assume les rôles distincts spécifiés pour les comptes B et C (les comptes fournisseur), puis appelle l'GetLatestConfigurationAPIopération pour récupérer les données de configuration en AWS AppConfig cours d'exécution sur ces comptes :

Comment AWS AppConfig l'agent travaille avec IAM des rôles distincts Comptes AWS.

Configurer les autorisations pour récupérer les données de configuration des comptes fournisseurs

AWS AppConfig L'agent exécuté dans le compte de récupération doit être autorisé pour récupérer les données de configuration des comptes fournisseurs. Vous donnez l'autorisation à l'agent en créant un rôle AWS Identity and Access Management (IAM) dans chacun des comptes fournisseurs. AWS AppConfig L'agent du compte de récupération assume ce rôle pour obtenir les données des comptes fournisseurs. Suivez les procédures décrites dans cette section pour créer une politique d'IAMautorisation, un IAM rôle et ajouter des dérogations d'agent au manifeste.

Avant de commencer

Collectez les informations suivantes avant de créer une politique d'autorisation et un rôle dansIAM.

  • Le IDs pour chacun Compte AWS. Le compte de récupération est le compte qui appellera d'autres comptes pour obtenir des données de configuration. Les comptes fournisseurs sont les comptes qui vendront les données de configuration au compte de récupération.

  • Nom du IAM rôle utilisé par AWS AppConfig le compte de récupération. Voici une liste des rôles utilisés par AWS AppConfig défaut par :

    • Pour Amazon Elastic Compute Cloud (AmazonEC2), AWS AppConfig utilise le rôle d'instance.

    • Pour AWS Lambda, AWS AppConfig utilise le rôle d'exécution Lambda.

    • Pour Amazon Elastic Container Service (AmazonECS) et Amazon Elastic Kubernetes Service (EKSAmazon AWS AppConfig ), utilise le rôle de conteneur.

    Si vous avez configuré AWS AppConfig l'Agent pour qu'il utilise un IAM rôle différent en spécifiant la variable d'ROLE_ARNenvironnement, notez ce nom.

Création de la politique d'autorisations

Utilisez la procédure suivante pour créer une politique d'autorisations à l'aide de la IAM console. Effectuez la procédure décrite dans chacune d'elles Compte AWS qui vendra les données de configuration pour le compte de récupération.

Pour créer une stratégie IAM
  1. Connectez-vous au compte AWS Management Console d'un fournisseur.

  2. Ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/.

  3. Dans le volet de navigation, sélectionnez Politiques, puis Créer une politique.

  4. Choisissez l'JSONoption.

  5. Dans l'éditeur de stratégie, remplacez la valeur par défaut JSON par la déclaration de stratégie suivante. Mettez à jour chacun example resource placeholder avec les détails du compte fournisseur.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "appconfig:StartConfigurationSession", "appconfig:GetLatestConfiguration" ], "Resource": "arn:partition:appconfig:region:vendor_account_ID:application/vendor_application_ID/environment/vendor_environment_ID/configuration/vendor_configuration_ID" } ] }

    Voici un exemple :

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "appconfig:StartConfigurationSession", "appconfig:GetLatestConfiguration" ], "Resource": "arn:aws:appconfig:us-east-2:111122223333:application/abc123/environment/def456/configuration/hij789" } ] }
  6. Choisissez Suivant.

  7. Dans le champ Nom de la politique, entrez un nom.

  8. (Facultatif) Pour Ajouter des balises, ajoutez une ou plusieurs paires balise-clé-valeur pour organiser, suivre ou contrôler l'accès pour cette politique.

  9. Choisissez Create Policy (Créer une politique). Le système vous renvoie à la page Policies (Stratégies).

  10. Répétez cette procédure pour chaque appareil Compte AWS destiné à vendre les données de configuration du compte de récupération.

Créez le IAM rôle

Utilisez la procédure suivante pour créer un IAM rôle à l'aide de la IAM console. Effectuez la procédure décrite dans chacune d'elles Compte AWS qui vendra les données de configuration pour le compte de récupération.

Pour créer un rôle IAM
  1. Connectez-vous au compte AWS Management Console d'un fournisseur.

  2. Ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/.

  3. Dans le volet de navigation, choisissez Rôles, puis Create policy.

  4. Pour Trusted entity (Entité de confiance), choisissez Compte AWS.

  5. Dans la Compte AWSsection, choisissez Autre Compte AWS.

  6. Dans le champ ID de compte, entrez l'ID du compte de récupération.

  7. (Facultatif) Pour garantir la sécurité de ce rôle, choisissez Exiger un ID externe et entrez une chaîne.

  8. Choisissez Suivant.

  9. Sur la page Ajouter des autorisations, utilisez le champ de recherche pour localiser la politique que vous avez créée lors de la procédure précédente. Cochez la case en regard de son nom.

  10. Choisissez Suivant.

  11. Pour Nom du rôle (Role name), saisissez un nom.

  12. (Facultatif) Sous Description, entrez une description.

  13. Pour l'étape 1 : Sélectionnez les entités de confiance, choisissez Modifier. Remplacez la politique de JSON confiance par défaut par la politique suivante. Mettez à jour chacun example resource placeholder avec les informations de votre compte de récupération.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::retrieval_account_ID:role/appconfig_role_in_retrieval_account" }, "Action": "sts:AssumeRole" } ] }
  14. (Facultatif) Pour Tags (Balises), ajoutez une ou plusieurs paires clé-valeur de balise afin d'organiser, de suivre ou de contrôler l'accès pour ce rôle.

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

  16. Recherchez le rôle que vous venez de créer. Choisissez-le. Dans la ARNsection, copiez leARN. Vous allez spécifier ces informations dans la procédure suivante.

Ajouter des remplacements d'informations d'identification au manifeste

Après avoir créé le IAM rôle dans votre compte fournisseur, mettez à jour le manifeste dans le compte de récupération. Plus précisément, ajoutez le bloc d'informations d'identification et le IAM rôle ARN permettant de récupérer les données de configuration à partir du compte fournisseur. Voici le JSON format :

{ "vendor_application_name:vendor_environment_name:vendor_configuration_name": { "credentials": { "roleArn": "arn:partition:iam::vendor_account_ID:role/name_of_role_created_in_vendor_account", "roleExternalId": "string", "roleSessionName": "string", "credentialsDuration": "time_in_hours" } } }

Voici un exemple :

{ "My2ndApp:Beta:MyEnableMobilePaymentsFeatureFlagConfiguration": { "credentials": { "roleArn": "arn:us-west-1:iam::123456789012:role/MyTestRole", "roleExternalId": "00b148e2-4ea4-46a1-ab0f-c422b54d0aac", "roleSessionName": "AwsAppConfigAgent", "credentialsDuration": "2h" } } }
Vérifiez que la récupération multi-comptes fonctionne

Vous pouvez vérifier que cet agent est capable de récupérer les données de configuration de plusieurs comptes en consultant les journaux de l' AWS AppConfig agent. Le journal des INFO niveaux pour les données initiales récupérées pour « YourApplicationName YourEnvironmentName : : YourConfigurationName » est le meilleur indicateur d'une extraction réussie. Si les extractions échouent, vous devriez voir un journal de ERROR niveau indiquant la raison de l'échec. Voici un exemple de récupération réussie depuis un compte fournisseur :

[appconfig agent] 2023/11/13 11:33:27 INFO AppConfig Agent 2.0.x [appconfig agent] 2023/11/13 11:33:28 INFO serving on localhost:2772 [appconfig agent] 2023/11/13 11:33:28 INFO retrieved initial data for 'MyTestApplication:MyTestEnvironment:MyDenyListConfiguration' in XX.Xms

Configuration de AWS AppConfig l'agent pour écrire des copies de configuration sur disque

Vous pouvez configurer AWS AppConfig l'agent pour stocker automatiquement une copie d'une configuration sur le disque en texte brut. Cette fonctionnalité permet aux clients utilisant des applications qui lisent les données de configuration sur disque de s'y intégrer AWS AppConfig.

Cette fonctionnalité n'est pas conçue pour être utilisée comme fonction de sauvegarde de configuration. AWS AppConfig L'agent ne lit pas les fichiers de configuration copiés sur le disque. Si vous souhaitez sauvegarder des configurations sur disque, consultez les variables d'PRELOAD_BACKUPenvironnement BACKUP_DIRECTORY et relatives à l'utilisation de l' AWS AppConfig agent avec Amazon EC2 ou à l'utilisation de l' AWS AppConfig agent avec Amazon ECS et Amazon EKS.

Avertissement

Notez les informations importantes suivantes concernant cette fonctionnalité :

  • Les configurations enregistrées sur disque sont stockées en texte brut et sont lisibles par l'homme. N'activez pas cette fonctionnalité pour les configurations qui incluent des données sensibles.

  • Cette fonctionnalité écrit sur le disque local. Utilisez le principe du moindre privilège pour les autorisations du système de fichiers. Pour de plus amples informations, veuillez consulter Implémentation d'un accès sur la base du moindre privilège.

Pour activer l'écriture, copiez la configuration sur disque
  1. Modifiez le manifeste.

  2. Choisissez la configuration que vous AWS AppConfig souhaitez écrire sur le disque et ajoutez un writeTo élément. Voici un exemple :

    { "application_name:environment_name:configuration_name": { "writeTo": { "path": "path_to_configuration_file" } } }

    Voici un exemple :

    { "MyTestApp:MyTestEnvironment:MyNewConfiguration": { "writeTo": { "path": "/tmp/aws-appconfig/mobile-app/beta/enable-mobile-payments" } } }
  3. Enregistrez vos modifications. Le fichier configuration.json est mis à jour chaque fois que de nouvelles données de configuration sont déployées.

Vérifiez que la copie de configuration d'écriture sur le disque fonctionne

Vous pouvez vérifier que des copies d'une configuration sont écrites sur le disque en consultant les journaux de l' AWS AppConfig agent. L'entrée du INFO journal avec la phrase « configuration INFO écrite »application:environment:configuration« à file_path« indique que AWS AppConfig l'agent écrit des copies de configuration sur le disque.

Voici un exemple :

[appconfig agent] 2023/11/13 11:33:27 INFO AppConfig Agent 2.0.x [appconfig agent] 2023/11/13 11:33:28 INFO serving on localhost:2772 [appconfig agent] 2023/11/13 11:33:28 INFO retrieved initial data for 'MobileApp:Beta:EnableMobilePayments' in XX.Xms [appconfig agent] 2023/11/13 17:05:49 INFO wrote configuration 'MobileApp:Beta:EnableMobilePayments' to /tmp/configs/your-app/your-env/your-config.json