Como posso delegar acesso ao Amazon OpenSearch Service entre contas AWS usando funções do IAM?

Última atualização: 05/08/2021

Quero compartilhar os recursos do Amazon OpenSearch Service (sucessor do Amazon Elasticsearch Service) em minha conta com usuários de uma conta diferente. Como fazer isso?

Breve descrição

A maneira mais fácil de habilitar o acesso entre contas para o domínio do OpenSearch Service é configurar o controle entre contas usando uma função do AWS Identity and Access Management (IAM). Ao adicionar uma função do IAM na conta de destino, você pode permitir que usuários de contas confiáveis acessem o domínio do OpenSearch Service na conta de destino. Dessa forma, diferentes usuários em sua organização podem acessar e gerenciar a estação central de registro alternando as funções do IAM no Console AWS.

Para que os usuários acessem seus recursos de domínio usando uma função do IAM, siga este processo:

  1. Crie uma função na conta A que tenha permissão para acessar o domínio de destino.
  2. Crie um usuário na conta B que tenha permissão para assumir uma função na conta A.
  3. Conceda acesso aos usuários na conta B para usar a função para acessar o domínio de destino alternando funções.

Observação: a conta A é a conta em que o domínio de destino reside. A conta B é a conta de onde os usuários acessam a estação central de registro.

Resolução

Observação: se receber erros ao executar o comandos da AWS Command Line Interface (AWS CLI), verifique se está usando a versão mais recente da AWS CLI.

Criar uma função e conceder permissões para gerenciar seu domínio

Neste exemplo, criamos uma função chamada CrossAccount-test e concedemos permissões completas para gerenciar o teste de domínio.

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

Editar a relação de confiança da função

Em seguida, edite a relação de confiança da função CrossAccount-test.

Observação: altere o número da conta e o nome do usuário de acordo.

{
 
        "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"
   
        }
  ]
}

Nas Etapas 1 e 2, você define o usuário na Conta B como uma entidade confiável e concede permissões completas para permitir que usuários confiáveis acessem seu domínio na Conta A.

Conceder acesso aos usuários na Conta B

Na conta B, crie um usuário ou grupo com as seguintes permissões:

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

Ao adicionar essa declaração de política, você permite a ação AssumeRole na função CrossAccount-test na conta A.

Observação: certifique-se de alterar ACCOUNT A-ID no elemento Resource para o ID da conta da AWS para a conta A.

Editar a política de acesso do OpenSearch Service para permitir que a função acesse o domínio

Neste momento, você confia na conta B para assumir o papel na conta A. Em seguida, permita que essa função acesse seu domínio.

Edite a política de acesso do OpenSearch Service e insira o seguinte:

{
  "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>/*"
   
        }
  ]
}

Testar o acesso alternando funções

Agora que você habilitou o suporte entre contas, alterne as funções para testar o acesso:

  1. Copie o ARN de CrossAccount-test para a área de transferência.
  2. Faça login na conta B usando o Console AWS.
  3. Na guia User (Usuário), escolha Switch Role (Alternar função) na lista suspensa.
  4. Na página Switch Role (Alternar função), insira o ID da conta A e o nome da função. Neste exemplo, o nome da função é CrossAccount-test.
  5. EscolhaSwitch Role (Alternar função).

Observação: se a Conta B precisar funcionar no ambiente da Conta A na linha de comando, você poderá alternar a função usando a AWS CLI. Para obter mais informações, consulte Alternar funções (AWS CLI).

Suas permissões de usuário alternam imediatamente para aquelas permitidas pela função que você criou na conta A. Ao configurar seu acesso entre contas dessa maneira, seus usuários não precisam criar usuários individuais do IAM em contas diferentes. Também não é necessário sair de uma conta e entrar em outra para acessar um recurso.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?