

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.

# Amazon ECS Service Connect avec espaces de AWS Cloud Map noms partagés
<a name="service-connect-shared-namespaces"></a>

Amazon ECS Service Connect prend en charge l'utilisation d' AWS Cloud Map espaces de noms partagés sur plusieurs sites Comptes AWS au sein d'un même Région AWS site. Cette fonctionnalité vous permet de créer des applications distribuées dans lesquelles des services exécutés dans différents environnements Comptes AWS peuvent se découvrir et communiquer entre eux via Service Connect. Les espaces de noms partagés sont gérés à l’aide d’ AWS Resource Access Manager (AWS RAM), qui permet un partage sécurisé des ressources entre comptes. *Pour plus d'informations sur les espaces de noms partagés, consultez la section [Partage d'espaces de AWS Cloud Map noms entre comptes](https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html) dans le Guide du AWS Cloud Map développeur.*

**Important**  
Vous devez utiliser l’autorisation gérée `AWSRAMPermissionCloudMapECSFullPermission` pour partager l’espace de noms afin que Service Connect fonctionne correctement avec l’espace de noms.

Lorsque vous utilisez des AWS Cloud Map espaces de noms partagés avec Service Connect, les services de plusieurs utilisateurs Comptes AWS peuvent participer au même espace de noms de service. Cela est particulièrement utile pour les organisations qui en ont plusieurs et Comptes AWS qui ont besoin de maintenir service-to-service la communication au-delà des limites de leurs comptes tout en préservant la sécurité et l'isolation.

**Note**  
Pour communiquer avec des services situés dans des environnements différents VPCs, vous devez configurer la connectivité inter-VPC. Cela peut être réalisé à l’aide d’une connexion d’appairage de VPC. Pour plus d’informations, consultez la section [Création ou suppression d’une connexion d’appairage de VPC](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html) dans le *Guide d’appairage de VPC Amazon Virtual Private Cloud*.

# Utilisation d' AWS Cloud Map espaces de noms partagés avec Amazon ECS Service Connect
<a name="service-connect-shared-namespaces-setup"></a>

La configuration d' AWS Cloud Map espaces de noms partagés pour Service Connect implique les étapes suivantes : le propriétaire de l'espace de noms crée l'espace de noms, le propriétaire le partage via AWS Resource Access Manager (AWS RAM), le consommateur accepte le partage des ressources et le consommateur configure Service Connect pour utiliser l'espace de noms partagé.

## Étape 1 : Création de l'espace de AWS Cloud Map noms
<a name="service-connect-shared-namespaces-create"></a>

Le propriétaire de l'espace de noms crée un AWS Cloud Map espace de noms qui sera partagé avec d'autres comptes.

**Pour créer un espace de noms à partager à l'aide du AWS Management Console**

1. Ouvrez la AWS Cloud Map console à l'adresse [https://console.aws.amazon.com/cloudmap/](https://console.aws.amazon.com/cloudmap/).

1. Choisissez **Create namespace (Créer un espace de noms)**.

1. Saisissez un **Nom d’espace de noms**. Ce nom sera utilisé par les services sur tous les comptes participants.

1. Pour **Type d’espace de noms**, choisissez le type adapté à votre cas d’utilisation :
   + **Appels d’API** : espaces de noms HTTP pour la découverte de service sans fonctionnalité DNS.
   + **Appels d'API et requêtes DNS dans VPCs** des espaces de noms DNS privés pour la découverte de services avec des requêtes DNS privées dans un VPC.
   + **Appels d’API et requêtes DNS publiques** : espaces de noms DNS publics pour la découverte de service avec des requêtes DNS publiques.

1.  Choisissez **Create namespace (Créer un espace de noms)**.

## Étape 2 : partager l'espace de noms en utilisant AWS RAM
<a name="service-connect-shared-namespaces-share"></a>

Le propriétaire de l'espace de noms utilise AWS RAM pour partager l'espace de noms avec d'autres. Comptes AWS

**Pour partager un espace de noms à l'aide de la console AWS RAM**

1. Ouvrez la AWS RAM console à l'adresse [https://console.aws.amazon.com/ram/](https://console.aws.amazon.com/ram/).

1. Choisissez **Créer une ressource**.

1. Sous **Nom**, saisissez un nom descriptif pour le partage de ressources.

1. Dans la section **Ressources** :

   1. Pour **Type de ressource**, choisissez **Espaces de noms Cloud Map**.

   1. Sélectionnez l’espace de noms que vous avez créé à l’étape précédente.

1. Dans la section **Autorisations gérées**, spécifiez **AWSRAMPermissionCloudMapECSFullAutorisation**.
**Important**  
Vous devez utiliser l’autorisation gérée `AWSRAMPermissionCloudMapECSFullPermission` pour partager l’espace de noms afin que Service Connect fonctionne correctement avec l’espace de noms.

1. Dans la section **Principaux**, spécifiez l’ Comptes AWS avec lequel vous souhaitez partager l’espace de noms. Vous pouvez saisir un compte IDs ou une unité organisationnelle IDs.

1. Choisissez **Créer une ressource**.

## Étape 3 : accepter le partage de ressources
<a name="service-connect-shared-namespaces-accept"></a>

Les comptes consommateurs d’espaces de noms doivent accepter l’invitation de partage de ressources pour utiliser l’espace de noms partagé.

**Pour accepter une invitation de partage de ressources à l'aide de la AWS RAM console**

1. Dans le compte client, ouvrez la AWS RAM console à l'adresse [https://console.aws.amazon.com/ram/](https://console.aws.amazon.com/ram/).

1. Dans le volet de navigation, choisissez **Partagé avec moi**, puis **Partages de ressources**.

1. Sélectionnez l’invitation au partage de ressources, puis choisissez **Accepter le partage de ressources**.

1. Après avoir accepté, notez l’ARN de l’espace de noms partagé dans les détails de la ressource. Vous utiliserez cet ARN lors de la configuration des services Service Connect.

## Étape 4 : configurer un service Amazon ECS avec un espace de noms partagé
<a name="service-connect-shared-namespaces-configure"></a>

Après avoir accepté l’espace de noms partagé, le consommateur de l’espace de noms peut configurer les services Amazon ECS pour utiliser l’espace de noms partagé. La configuration est similaire à l’utilisation d’un espace de noms normal, mais vous devez spécifier l’ARN de l’espace de noms au lieu du nom. Pour une procédure détaillée de création de service, consultez la section [Création d’un déploiement de mise à jour propagée Amazon ECS](create-service-console-v2.md).

**Pour créer un service avec un espace de noms partagé à l'aide du AWS Management Console**

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Sur la page **Clusters**, sélectionnez le cluster dans lequel créer le service.

1. Sous **Services**, choisissez **Créer**.

1. Après avoir renseigné d’autres informations en fonction de votre charge de travail, dans la section **Service Connect**, sélectionnez **Utiliser Service Connect**.

1. Pour **Espace de noms**, saisissez l’ARN complet de l’espace de noms partagé.

   Le format ARN est le suivant : `arn:aws:servicediscovery:region:account-id:namespace/namespace-id`

1. Configurez les autres paramètres Service Connect selon les besoins de votre type de service (client ou client-serveur).

1. Terminez le processus de création de service.

Vous pouvez également configurer les services à l'aide du AWS CLI ou AWS SDKs en spécifiant l'ARN de l'espace de noms partagé dans le `namespace` paramètre du`serviceConnectConfiguration`.

```
aws ecs create-service \
    --cluster my-cluster \
    --service-name my-service \
    --task-definition my-task-def \
    --service-connect-configuration '{
        "enabled": true,
        "namespace": "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-abcdef1234567890",
        "services": [{
            "portName": "web",
            "discoveryName": "my-service",
            "clientAliases": [{
                "port": 80,
                "dnsName": "my-service"
            }]
        }]
    }'
```

## Considérations
<a name="service-connect-shared-namespaces-considerations"></a>

Tenez compte des points suivants lorsque vous utilisez des AWS Cloud Map espaces de noms partagés avec Service Connect :
+ AWS RAM doit être disponible dans l' Région AWS endroit où vous souhaitez utiliser l'espace de noms partagé.
+ L'espace de noms partagé doit être Région AWS identique à celui de vos services et clusters Amazon ECS.
+ Vous devez utiliser l’ARN de l’espace de noms, et non l’ID, lorsque vous configurez Service Connect avec un espace de noms partagé.
+ Tous les types d’espaces de noms sont pris en charge : espaces de noms HTTP, DNS privé et DNS public.
+ Si l’accès à un espace de noms partagé est révoqué, les opérations Amazon ECS qui nécessitent une interaction avec l’espace de noms (telles que `CreateService`, `UpdateService` et `ListServicesByNamespace`) échoueront. Pour plus d’informations sur la résolution des problèmes d’autorisation liés aux espaces de noms partagés, consultez la section [Résolution des problèmes liés à Amazon ECS Service Connect avec des espaces de AWS Cloud Map noms partagés](service-connect-shared-namespaces-troubleshooting.md).
+ Pour la découverte de service à l’aide de requêtes DNS dans un espace de noms DNS privé partagé :
  + Le propriétaire de l’espace de noms devra appeler `create-vpc-association-authorization` avec l’ID de la zone hébergée privée associée à l’espace de noms et le VPC du consommateur.

    ```
    aws route53 create-vpc-association-authorization --hosted-zone-id Z1234567890ABC --vpc VPCRegion=us-east-1,VPCId=vpc-12345678
    ```
  + Le consommateur de l’espace de noms devra appeler `associate-vpc-with-hosted-zone` avec l’ID de la zone hébergée privée.

    ```
    aws route53 associate-vpc-with-hosted-zone --hosted-zone-id Z1234567890ABC --vpc VPCRegion=us-east-1,VPCId=vpc-12345678
    ```
+ Seul le propriétaire de l’espace de noms peut gérer le partage des ressources.
+ Les consommateurs de l’espace de noms peuvent créer et gérer des services au sein de l’espace de noms partagé, mais ne peuvent pas modifier l’espace de noms lui-même.
+ Les noms de découverte doivent être uniques dans l’espace de noms partagé, quel que soit le compte qui crée le service.
+ Les services de l'espace de noms partagé peuvent découvrir les services d'autres AWS comptes ayant accès à l'espace de noms et s'y connecter.
+ Lorsque vous activez TLS pour Service Connect et utilisez un espace de noms partagé, l’autorité de certification (CA) AWS CA privée est limitée à l’espace de noms. Lorsque l’accès à l’espace de noms partagé est révoqué, l’accès à l’autorité de certification est interrompu.
+ Lorsqu'ils travaillent avec un espace de noms partagé, les propriétaires et les consommateurs d'espaces de noms n'ont pas accès par défaut aux métriques CloudWatch Amazon entre comptes. Les métriques cibles sont publiées uniquement pour les comptes qui possèdent des services clients. Un compte propriétaire de services client n'a pas accès aux statistiques reçues par un compte propriétaire de services client-serveur, et inversement. Pour permettre l'accès aux métriques entre comptes, configurez l'observabilité CloudWatch entre comptes. *Pour plus d'informations sur la configuration de l'observabilité entre comptes, consultez la section Observabilité [CloudWatch entre comptes dans le guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html) de l'utilisateur Amazon. CloudWatch * Pour plus d'informations sur les CloudWatch métriques de Service Connect, consultez[CloudWatch Métriques Amazon ECS](available-metrics.md).

# Résolution des problèmes liés à Amazon ECS Service Connect avec des espaces de AWS Cloud Map noms partagés
<a name="service-connect-shared-namespaces-troubleshooting"></a>

Utilisez les informations suivantes pour résoudre les problèmes liés aux AWS Cloud Map espaces de noms partagés et à Service Connect. Pour plus d’informations sur la localisation des messages d’erreur, consultez la section [Résolution des problèmes liés à Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/troubleshooting.html).

Des messages d’erreur liés à des problèmes d’autorisations apparaissent en raison d’autorisations manquantes ou si l’accès à l’espace de noms est révoqué. 

**Important**  
Vous devez utiliser l’autorisation gérée `AWSRAMPermissionCloudMapECSFullPermission` pour partager l’espace de noms afin que Service Connect fonctionne correctement avec l’espace de noms.

Le message d’erreur apparaît dans l’un des formats suivants :

Une erreur s'est produite (ClientException) lors de l'appel de l'opération < OperationName > : L'utilisateur : arn:aws:iam : ::user/ n'est pas autorisé à effectuer : < > sur la ressource : < > ResourceArn car aucune politique basée ActionName sur les ressources n'autorise l'action < > ActionName <account-id><user-name>

Les scénarios suivants peuvent générer un message d’erreur dans ce format :

**Échec de création ou de mise à jour du cluster**  
Ces problèmes se produisent lorsque des opérations Amazon ECS telles que l'`UpdateCluster`échec `CreateCluster` ou l'échec sont dues à AWS Cloud Map des autorisations manquantes. Les opérations nécessitent des autorisations pour les AWS Cloud Map actions suivantes :  
+ `servicediscovery:GetNamespace`
Assurez-vous que l’invitation à partager la ressource a été acceptée dans le compte consommateur et que l’ARN correct de l’espace de noms est utilisé dans la configuration Service Connect.

**Échec de création ou de mise à jour du service**  
Ces problèmes se produisent lorsque des opérations Amazon ECS telles que l'`UpdateService`échec `CreateService` ou l'échec sont dues à AWS Cloud Map des autorisations manquantes. Les opérations nécessitent des autorisations pour les AWS Cloud Map actions suivantes :  
+ `servicediscovery:CreateService`
+ `servicediscovery:GetNamespace`
+ `servicediscovery:GetOperation` (pour créer un nouveau service AWS Cloud Map )
+ `servicediscovery:GetService` (lorsqu’un service AWS Cloud Map existe déjà)
Assurez-vous que l’invitation à partager la ressource a été acceptée dans le compte consommateur et que l’ARN correct de l’espace de noms est utilisé dans la configuration Service Connect.

**Échec de l’opération `ListServicesByNamespace`**  
Ce problème se produit lorsque l’opération Amazon ECS `ListServicesByNamespace` échoue. L’opération nécessite des autorisations pour les actions AWS Cloud Map suivantes :  
+ `servicediscovery:GetNamespace`
Pour résoudre ce problème :  
+ Vérifiez que le compte consommateur dispose de l’autorisation `servicediscovery:GetNamespace`.
+ Utilisez l’ARN de l’espace de noms lorsque vous appelez l’API, et pas le nom.
+ Assurez-vous que le partage de ressources est actif et que l’invitation a été acceptée.

Utilisateur : n'est pas autorisé à effectuer : < ActionName > sur la ressource : < ResourceArn > avec un refus explicite dans une politique basée sur l'identité. <iam-user>

Les scénarios suivants peuvent générer un message d’erreur dans ce format :

**La suppression du service échoue et reste bloquée dans l’état `DRAINING`**  
Ce problème se produit lorsque les opérations Amazon ECS `DeleteService` échouent en raison d’une autorisation `servicediscovery:DeleteService` manquante lorsque l’accès à l’espace de noms est révoqué. Le service peut sembler avoir été supprimé avec succès au départ, mais il restera bloqué dans l’état `DRAINING`. Le message d’erreur apparaît sous la forme d’un événement de service Amazon ECS.  
Pour résoudre ce problème, le propriétaire de l’espace de noms doit partager l’espace de noms avec le compte consommateur afin de permettre la suppression du service.

**Les tâches en service ne s’exécutent pas**  
Ce problème se produit lorsque les tâches ne démarrent pas en raison d’autorisations manquantes. Le message d’erreur apparaît sous la forme d’une erreur de tâche arrêtée. Pour de plus amples informations, veuillez consulter [Résolution des erreurs liées aux tâches Amazon ECS arrêtées](resolve-stopped-errors.md).  
Les AWS Cloud Map actions suivantes sont requises pour exécuter une tâche :  
+ `servicediscovery:GetOperation`
+ `servicediscovery:RegisterInstance`
Assurez-vous que le compte consommateur dispose des autorisations requises et que l’espace de noms partagé est accessible.

**Les tâches ne s’arrêtent pas correctement ou restent bloquées dans l’état `DEACTIVATING` ou `DEPROVISIONING`**  
Ce problème se produit lorsque les tâches ne parviennent pas à se désenregistrer du AWS Cloud Map service pendant l'arrêt en raison d'autorisations manquantes. L’erreur apparaît sous la forme d’un `statusReason` dans la pièce jointe de la tâche, qui peut être récupérée à l’aide de l’API `DescribeTasks`. Pour plus d'informations, consultez le [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html)manuel *Amazon Elastic Container Service API Reference*.  
Les AWS Cloud Map actions suivantes sont requises pour arrêter une tâche :  
+ `servicediscovery:DeregisterInstance`
+ `servicediscovery:GetOperation`
Si l’accès à l’espace de noms partagé est révoqué, les tâches peuvent rester dans l’état `DEACTIVATING` ou `DEPROVISIONING` jusqu’à ce que l’accès à l’espace de noms soit rétabli. Demandez au propriétaire de l’espace de noms de rétablir l’accès à l’espace de noms.