Comment puis-je déléguer l'accès Amazon OpenSearch Service sur des comptes AWS à l'aide de rôles IAM ?

Date de la dernière mise à jour : 05/08/2021

Je souhaite partager les ressources Amazon OpenSearch Service (successeur d'Amazon Elasticsearch Service) de mon compte avec des utilisateurs d'un autre compte. Comment procéder ?

Brève description

Le moyen le plus simple d'activer l'accès entre comptes pour votre domaine OpenSearch Service consiste à configurer le contrôle entre comptes à l'aide d'un rôle AWS Identity and Access Management (IAM). L'ajout d'un rôle IAM dans le compte cible vous permet d'autoriser les utilisateurs de comptes de confiance à accéder au domaine OpenSearch Service sous le compte cible. Différents utilisateurs de votre organisation pourront ainsi accéder au site central de journalisation et le gérer en changeant les rôles IAM dans la console AWS.

Le processus permettant aux utilisateurs d'accéder à vos ressources de domaine à l'aide d'un rôle IAM est le suivant :

  1. Créez un rôle dans le compte A qui est autorisé à accéder au domaine cible.
  2. Créez un utilisateur sous le compte B qui est autorisé à endosser un rôle dans le compte A.
  3. Permettez aux utilisateurs du compte B d'utiliser le rôle pour accéder au domaine cible en changeant de rôle.

Remarque : le compte A est celui sur lequel réside le domaine cible. Le compte B est le compte à partir duquel les utilisateurs accèdent au site central de journalisation.

Solution

Remarque: si vous recevez des erreurs lors de l'exécution de commandes depuis AWS Command Line Interface (AWS CLI), assurez-vous d'utiliser la version la plus récente d'AWS CLI.

Créer un rôle et accorder des autorisations de gérer votre domaine

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

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

Modifier la relation de confiance du rôle

Ensuite, modifier la relation de confiance 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"
   
        }
  ]
{
 
        "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 à votre domaine dans le compte A.

Accorder l'accès aux utilisateurs du compte B

Dans le compte B, créez un utilisateur ou un groupe disposant des 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 OpenSearch Service 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 à votre domaine.

Modifiez la stratégie d'accès OpenSearch Service et saisissez 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>/*"
   
        }
  ]
}

Tester l'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 ?