Comment déléguer l'accès Amazon Elasticsearch entre comptes AWS à l'aide de rôles IAM ?

Date de la dernière mise à jour : 25/02/2021

Je souhaite partager les ressources Amazon Elasticsearch Service (Amazon ES) de mon compte avec les utilisateurs d'un autre compte. Comment faire ?

Brève description

Le moyen le plus simple d'activer l'accès entre comptes pour votre domaine Amazon ES consiste à configurer le contrôle entre comptes à l'aide d'un rôle AWS Identity and Access Management (IAM). En ajoutant un rôle IAM dans le compte cible, vous pouvez autoriser les utilisateurs de comptes approuvés à accéder au domaine Amazon ES sous le compte cible. De cette façon, différents utilisateurs de votre organisation peuvent accéder et gérer la station centrale de journalisation Amazon ES en changeant de rôle IAM dans la console AWS.

Pour que les utilisateurs puissent accéder à vos ressources Amazon ES à l'aide d'un rôle IAM, le processus est le suivant :

  1. Créez un rôle dans le compte A qui est autorisé à accéder au domaine Amazon ES cible.
  2. Créez un utilisateur sous compte B autorisé à assumer un rôle dans le compte A.
  3. Accordez l'accès aux utilisateurs du compte B pour utiliser le rôle pour accéder au domaine Amazon ES cible en changeant de rôle.

Remarque : Le compte A est le compte qui possède le domaine Amazon ES cible. Le compte B est le compte à partir duquel les utilisateurs accèdent à la station centrale de journalisation.

Résolution

Remarque : Si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente d'AWS CLI.

Création d'un rôle et octroi de permissions pour gérer le domaine Amazon ES

Dans cet exemple, nous créons un rôle appelé CrossAccount-test et accordons des autorisations complètes pour gérer le test de domaine Amazon ES.

{
    "Version": "2012-10-17",
    "Statement": [
       
        {
            "Effect": "Allow",
            "Action": [
               
        "es:*"
            ],
            "Resource": “arn:aws:es:<Region>:<Account A-ID>:domain/test/*"
       
        }
    ]
}

Modification de la relation d'approbation du rôle

Ensuite, modifiez la relation d'approbation du rôle CrossAccount-test.

Remarque : Modifiez le numéro de compte et le nom d'utilisateur en conséquence

{
 
        "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service":
        "es.amazonaws.com",
        "AWS": [
          "arn:aws:iam::<Account B-ID>:root",

         
        "arn:aws:iam::<Account B-ID>:user/<User Name>"
        ]
      },
      "Action": "sts:AssumeRole"
   
        }
  ]
}

Dans les étapes 1 et 2, vous définissez l'utilisateur dans le compte B comme entité approuvée et accordez des autorisations complètes pour permettre aux utilisateurs approuvés d'accéder au domaine Amazon ES dans le compte A.

Octroi de l'accès aux utilisateurs du compte B

Dans le compte B, créez un utilisateur/groupe avec les autorisations suivantes :

{
    "Version": "2012-10-17",
    "Statement": {
       
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "arn:aws:iam::<Account A-ID>:role/<CrossAccount-test>"
   
        }
}

Lorsque vous ajoutez cette déclaration de stratégie, vous autorisez l'action AssumeRole sur le rôle de CrossAccount-test dans le compte A.

Remarque : Assurez-vous de modifier ACCOUNT A-ID dans l'élément Resource par l'ID de compte AWS pour le compte A.

Modification de la stratégie d'accès Amazon ES pour autoriser le rôle à accéder au domaine

À ce stade, vous avez approuvé le compte B pour assumer le rôle dans le compte A. Ensuite, autorisez ce rôle à accéder au domaine Amazon ES.

Modifiez la stratégie d'accès Amazon ES et entrez les éléments suivants :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
     
        "Principal": {
        "AWS": [
          "arn:aws:iam::<Account A-ID>:role/<CrossAccount-test>"
       
        ]
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:<region>:<Account A-ID>:domain/<Domain Name>/*"
   
        }
  ]
}

Test d'accès en changeant de rôle

Maintenant que vous avez activé la prise en charge de l'accès entre comptes, changez de rôle pour tester l'accès :

  1. Copiez l'arn de CrossAccount-test dans votre presse-papiers.
  2. Connectez-vous au compte B à l'aide de la console AWS.
  3. Dans l'onglet User (Utilisateur) , sélectionnez Switch Role (Changer de rôle) dans la liste déroulante.
  4. Dans la page Switch Role (Changer de rôle), entrez l'ID du compte A et le nom du rôle. Dans cet exemple, le nom du rôle est CrossAccount-test.
  5. Choisissez Switch Role (Changer de rôle).

Remarque : Si le compte B doit fonctionner dans l'environnement du compte A sur la ligne de commande, vous pouvez changer de rôle à l'aide de l'AWS CLI. Pour plus d'informations, consultez Changer de rôle (AWS CLI).

Vos autorisations utilisateur passent immédiatement à celles autorisées par le rôle que vous avez créé sous le compte A. En configurant votre accès entre comptes de cette façon, vos utilisateurs n'ont pas besoin de créer des utilisateurs IAM individuels sous différents comptes. Vous n'avez pas non plus besoin de vous déconnecter d'un compte pour vous connecter à un autre afin d'accéder à une ressource. 


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?