Migrer un ARN de service court Amazon ECS vers un ARN long - Amazon Elastic Container Service

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.

Migrer un ARN de service court Amazon ECS vers un ARN long

Amazon ECS attribue un Amazon Resource Name (ARN) unique à chaque service. Les services créés avant 2021 ont un format ARN court :

arn:aws:ecs:region:aws_account_id:service/service-name

Amazon ECS a modifié le format ARN pour inclure le nom du cluster. Il s'agit d'un format d'ARN long :

arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

Votre service doit avoir le format ARN long pour pouvoir le baliser.

Vous pouvez migrer un service avec un format d'ARN court vers un format d'ARN long sans avoir à recréer le service. Vous pouvez utiliser l'API, la CLI ou la console. Vous ne pouvez pas annuler l'opération de migration.

Si vous souhaitez l'utiliser AWS CloudFormation pour étiqueter un service au format ARN court, vous devez migrer le service à l'aide de l'API, de la CLI ou de la console. Une fois la migration terminée, vous pouvez l'utiliser AWS CloudFormation pour étiqueter le service.

Si vous souhaitez utiliser Terraform pour étiqueter un service au format ARN court, vous devez migrer le service à l'aide de l'API, de la CLI ou de la console. Une fois la migration terminée, vous pouvez utiliser Terraform pour étiqueter le service.

Une fois la migration terminée, le service apporte les modifications suivantes :

  • Le format ARN long

    arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

  • Lorsque vous migrez à l'aide de la console, Amazon ECS ajoute une balise au service dont la clé est définie sur « ecs : serviceArnMigrated At » et la valeur sur l'horodatage de la migration (format UTC).

    Ce tag est pris en compte dans votre quota de tags.

  • Lorsque le PhysicalResourceId in a AWS CloudFormation stack représente un ARN de service, la valeur ne change pas et restera l'ARN du service court.

Prérequis

Effectuez les opérations suivantes avant de migrer l'ARN du service.

  1. Pour savoir si vous avez un ARN de service court, consultez les détails du service dans la console Amazon ECS (un avertissement s'affiche lorsque le service utilise le format d'ARN court) ou le paramètre de serviceARN retour dedescribe-services. Lorsque l'ARN n'inclut pas le nom du cluster, vous disposez d'un ARN court. Le format d'un ARN court est le suivant :

    arn:aws:ecs:region:aws_account_id:service/service-name

  2. Notez la date de création.

  3. Si vous avez des politiques IAM qui utilisent le format d'ARN court, mettez-le à jour au format d'ARN long.

    Remplacez chaque user input placeholder par vos propres informations.

    arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

    Pour plus d'informations, consultez la section Modification des politiques IAM dans le guide de l' AWS Identity and Access Management utilisateur.

  4. Si vous disposez d'outils qui utilisent le format d'ARN court, mettez-le à jour au format d'ARN long.

    Remplacez chaque user input placeholder par vos propres informations.

    arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

  5. Activez le format ARN long du service. Exécutez put-account-setting avec l'option serviceLongArnFormat définie à enabled. Pour plus d'informations, put-account-settingconsultez le manuel Amazon Elastic Container Service API Reference.

    Exécutez la commande en tant qu'utilisateur root lorsque la createdAt date de votre service est inconnue.

    aws ecs put-account-setting --name serviceLongArnFormat --value enabled

    Exemple de sortie

    { "setting": { "name": "serviceLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:role/your-role", "type": user } }
  6. Activez le format ARN long de la tâche. Cela permet aux tâches exécutées dans le cadre d'un service d'avoir le format ARN long. Exécutez put-account-setting avec l'option taskLongArnFormat définie à enabled. Pour plus d'informations, put-account-settingconsultez le manuel Amazon Elastic Container Service API Reference.

    Exécutez la commande en tant qu'utilisateur root lorsque la createdAt date de votre service est inconnue.

    aws ecs put-account-setting --name taskLongArnFormat --value enabled

    Exemple de sortie

    { "setting": { "name": "taskLongArnFormat", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:role/your-role", "type": user } }

Procédure

Utilisez ce qui suit pour migrer l'ARN de votre service.

  1. Ouvrez la console à la https://console.aws.amazon.com/ecs/version 2.

  2. Sur la page Clusters, choisissez le cluster.

  3. Dans la section Services, choisissez un service dont la colonne ARN contient un avertissement.

    La page des détails du service apparaît.

  4. Choisissez Migrer vers un ARN long.

    La boîte de dialogue du service Migrate apparaît.

  5. Choisissez Migrate (Migrer).

Une fois les prérequis remplis, vous pouvez étiqueter votre service. Exécutez la commande suivante :

Amazon ECS envisage de transmettre le format d'ARN long dans une demande d'tag-resourceAPI pour un service avec un ARN court comme signal de migration du service afin d'utiliser le format d'ARN long.

aws ecs tag-resource \ --resource-arn arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name --tags key=key1,value=value1

Les exemples de balises suivants MyService comportent une balise dont la clé est définie sur « TestService » et la valeur sur « » WebServers :

aws ecs tag-resource \ --resource-arn arn:aws:ecs:us-east-1:123456789012:service/MyCluster/MyService --tags key=TestService1,value=WebServers

Une fois les prérequis remplis, vous pouvez étiqueter votre service. Créez une aws_ecs_service ressource et définissez la tags référence. Pour plus d'informations, consultez Resource : aws_ecs_service dans la documentation de Terraform.

resource "aws_ecs_service" "MyService" { name = "example" cluster = aws_ecs_cluster.MyService.id tags = { "Name" = "MyService" "Environment" = "Production" "Department" = "QualityAssurance" } }

Étapes suivantes

Vous pouvez ajouter des balises au service. Pour de plus amples informations, veuillez consulter Ajouter des balises aux ressources Amazon ECS.

Si vous souhaitez qu'Amazon ECS propage les balises de la définition de tâche ou du service vers la tâche, exécutez update-service le propagateTags paramètre. Pour plus d'informations, voir update-service dans la AWS Command Line Interface référence.

Résolution des problèmes

Certains utilisateurs peuvent rencontrer l'erreur suivante lorsqu'ils migrent du format d'ARN court vers le format d'ARN long.

There was an error while migrating the ARN of service service-name. The specified account does not have serviceLongArnFormat or taskLongArnFormat account settings enabled. Add account settings in order to enable tagging.

Si vous avez déjà activé les paramètres du serviceLongArnFormat compte mais que vous rencontrez toujours cette erreur, cela peut être dû au fait que les paramètres du compte pour le format ARN long n'ont pas été activés pour le principal IAM qui a initialement créé le service.

  1. Identifiez le principal qui a créé le service.

    1. Dans la console, les informations sont disponibles dans le champ Créé par de l'onglet Configuration et mise en réseau de la page Détails du service de la console Amazon ECS.

    2. Pour le AWS CLI, exécutez la commande suivante :

      Remplacez le user-input par vos valeurs.

      aws ecs describe-services --cluster cluster-name --services service-name --query 'services[0].{createdBy: createdBy}'
  2. Activez les paramètres de compte requis pour ce principal spécifique. Vous pouvez effectuer cette opération de différentes manières :

    1. Assumez l'utilisateur ou le rôle IAM pour ce principal. Ensuite, exécutez put-account-setting.

    2. Utilisez l'utilisateur root pour exécuter la commande tout en spécifiant le principal de création avec leprincipal-arn.

      Exemple.

      Remplacez le principal-arn par la valeur de l'étape 1.

      aws ecs put-account-setting --name serviceLongArnFormat --value enabled --principal-arn arn:aws:iam::123456789012:role/jdoe

Les deux méthodes activent le paramètre de serviceLongArnFormat compte requis sur le principal qui a créé le service, ce qui permet de poursuivre la migration de l'ARN.