Usando scripts Detective Python para gerenciar contas - Amazon Detective

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando scripts Detective Python para gerenciar contas

O Amazon Detective fornece um conjunto de scripts Python de código aberto no repositório. GitHub amazon-detective-multiaccount-scripts Os scripts exigem o Python 3.

É possível usá-los para realizar as seguintes tarefas:

  • Habilitar o Detective para uma conta de administrador entre regiões.

    Ao habilitar o Detective, você pode atribuir valores de tag ao gráfico de comportamento.

  • Adicionar contas-membro aos gráficos de comportamento de uma conta de administrador entre regiões.

  • Optar por enviar e-mails de convite para as contas-membro. Você também pode configurar a solicitação para não enviar e-mails de convite.

  • Remover contas-membro dos gráficos de comportamento de uma conta de administrador entre regiões.

  • Desabilitar o Detective para uma conta de administrador entre regiões. Quando uma conta de administrador desabilita o Detective, o gráfico de comportamento da conta de administrador em cada região é desabilitado.

Visão geral do script enableDetective.py

O script enableDetective.py faz o seguinte:

  1. Habilita a entrada do Detective em uma conta de administrador em cada região especificada, se a conta de administrador ainda não tiver o Detective habilitado nessa região.

    Ao usar o script para habilitar o Detective, você pode atribuir valores de tag ao gráfico de comportamento.

  2. Opta por enviar convites da conta de administrador para as contas-membro especificadas para cada gráfico de comportamento.

    As mensagens de e-mail dos convites usam o conteúdo padrão da mensagem e não podem ser personalizadas.

    Você também pode configurar a solicitação para não enviar e-mails de convite.

  3. Aceita automaticamente os convites para as contas-membro.

    Como o script aceita automaticamente os convites, as contas-membro podem ignorar essas mensagens.

    Recomendamos entrar em contato diretamente com as contas-membro para notificá-las de que os convites são aceitos automaticamente.

Visão geral do script disableDetective.py

O script disableDetective.py exclui as contas-membro especificadas dos gráficos de comportamento da conta de administrador nas regiões especificadas.

Também oferece a opção de desabilitar o Detective da conta de administrador nas regiões especificadas.

Permissões necessárias para os scripts

Os scripts exigem uma AWS função preexistente na conta do administrador e em todas as contas de membros que você adiciona ou remove.

nota

O nome da função deve ser o mesmo em todas as contas.

IAMas melhores práticas recomendadas pela política são usar funções com menor escopo. Para executar o fluxo de trabalho do script de criar um gráfico, criar membros e adicionar membros ao gráfico, as permissões necessárias são:

  • detetive: CreateGraph

  • detetive: CreateMembers

  • detetive: DeleteGraph

  • detetive: DeleteMembers

  • detetive: ListGraphs

  • detetive: ListMembers

  • detetive: AcceptInvitation

Relação de confiança da função

A relação de confiança da função deve permitir que sua instância ou suas credenciais locais assumam a função.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<ACCOUNTID>:user/<USERNAME>" }, "Action": "sts:AssumeRole" } ] }

Se você não tiver uma função comum que inclua as permissões necessárias, deverá criar uma função com pelo menos essas permissões em cada conta-membro. Você também deve criar a função na conta de administrador.

Ao criar a função, certifique-se de fazer o seguinte:

  • Use o mesmo nome de função em todas as contas.

  • Adicione as permissões necessárias acima (recomendado) ou selecione a política AmazonDetectiveFullAccessgerenciada.

  • Adicione um bloco de relação de confiança da função, conforme discutido acima.

Para automatizar esse processo, você pode usar o EnableDetective.yaml AWS CloudFormation modelo. Como o modelo cria somente recursos globais, ele pode ser executado em qualquer região.

Configurar o ambiente de execução dos scripts do Python

Você pode executar os scripts de uma EC2 instância ou de uma máquina local.

Lançamento e configuração de uma instância EC2

Uma opção para executar os scripts é executá-los a partir de uma EC2 instância.

Para iniciar e configurar uma EC2 instância
  1. Inicie uma EC2 instância na sua conta de administrador. Para obter detalhes sobre como iniciar uma EC2 instância, consulte Getting Started with Amazon EC2 Linux Instances no Amazon EC2 User Guide.

  2. Anexe à instância uma IAM função que tenha permissões para permitir que a instância chame AssumeRole dentro da conta do administrador.

    Se você usou o EnableDetective.yaml AWS CloudFormation modelo, uma função de instância com um perfil chamado EnableDetective foi criada.

    Caso contrário, para obter informações sobre como criar uma função de instância, consulte a postagem do blog Substitua ou anexe facilmente uma IAM função a uma EC2 instância existente usando o EC2 console.

  3. Instale o software necessário:

    • APT: sudo apt-get -y install python3-pip python3 git

    • RPM: sudo yum -y install python3-pip python3 git

    • Boto (versão mínima 1.15): sudo pip install boto3

  4. Clone o repositório na EC2 instância.

    git clone https://github.com/aws-samples/amazon-detective-multiaccount-scripts.git

Configurar uma máquina local para executar os scripts

Você também pode executar os scripts a partir da máquina local.

Para configurar uma máquina local para executar os scripts
  1. Certifique-se de ter configurado em sua máquina local as credenciais da sua conta de administrador que tenha permissão para acionar AssumeRole.

  2. Instale o software necessário:

    • Python 3

    • Boto (versão mínima 1.15)

    • GitHub scripts

    Plataforma

    Instruções de configuração

    Windows

    1. Instale o Python 3 (https://www.python.org/downloads/windows/).

    2. Abra um prompt de comando.

    3. Para instalar o Boto, execute: pip install boto3

    4. Baixe o código-fonte do script em GitHub (https://github.com/aws-samples/amazon-detective-multiaccount-scripts).

    Mac

    1. Instale o Python 3 (https://www.python.org/downloads/mac-osx/).

    2. Abra um prompt de comando.

    3. Para instalar o Boto, execute: pip install boto3

    4. Baixe o código-fonte do script em GitHub (https://github.com/aws-samples/amazon-detective-multiaccount-scripts).

    Linux

    1. Para instalar o Python 3, execute uma das seguintes opções:

      • sudo apt-get -y install install python3-pip python3 git

      • sudo yum install git python

    2. Para instalar o Boto, execute: sudo pip install boto3

    3. Clone o código-fonte do script de https://github.com/aws-samples/amazon-detective-multiaccount-scripts.

Criar uma lista em .csv de contas-membro a adicionar ou remover

Para identificar as contas-membro a serem adicionadas ou removidas dos gráficos de comportamento, forneça um arquivo .csv contendo a lista de contas.

Liste cada conta em uma linha separada. Cada entrada da conta do membro contém o ID da AWS conta e o endereço de e-mail do usuário raiz da conta.

Veja o exemplo a seguir:

111122223333,srodriguez@example.com 444455556666,rroe@example.com

Executar o enableDetective.py

Você pode executar o enableDetective.py script a partir de uma EC2 instância ou da sua máquina local.

Para executar o enableDetective.py
  1. Copie o .csv arquivo para o amazon-detective-multiaccount-scripts diretório na sua EC2 instância ou máquina local.

  2. Mude para o diretório amazon-detective-multiaccount-scripts.

  3. Execute o script enableDetective.py.

    enableDetective.py --master_account administratorAccountID --assume_role roleName --input_file inputFileName --tags tagValueList --enabled_regions regionList --disable_email

Ao executar o script, substitua os seguintes valores:

administratorAccountID

O AWS ID da conta do administrador.

roleName

O nome da AWS função a ser assumida na conta do administrador e na conta de cada membro.

inputFileName

O nome do arquivo .csv contendo a lista de contas-membro a serem adicionadas aos gráficos de comportamento da conta de administrador.

tagValueList

(Opcional) Uma lista separada por vírgulas de valores de tags para atribuir a um novo gráfico de comportamento.

Para cada valor de tag, o formato é key=value. Por exemplo:

--tags Department=Finance,Geo=Americas
regionList

(Opcional) Uma lista separada por vírgulas das regiões nas quais adicionar as contas-membro ao gráfico de comportamento da conta de administrador. Por exemplo:

--enabled_regions us-east-1,us-east-2,us-west-2

Talvez a conta de administrador ainda não tenha o Detective habilitado em uma região. Nesse caso, o script habilita o Detective e cria um novo gráfico de comportamento para a conta de administrador.

Se você não fornecer uma lista de regiões, o script atuará em todas as regiões compatíveis com o Detective.

--disable_email

(Opcional) Se incluído, o Detective não envia e-mails de convite para as contas-membro.

Executar o disableDetective.py

Você pode executar o disableDetective.py script a partir de uma EC2 instância ou da sua máquina local.

Para executar o disableDetective.py
  1. Copie os arquivos .csv no diretório amazon-detective-multiaccount-scripts.

  2. Para usar o arquivo .csv para excluir as contas-membro listadas dos gráficos de comportamento da conta de administrador em uma lista específica de regiões, execute o script disableDetective.py da seguinte forma:

    disabledetective.py --master_account administratorAccountID --assume_role roleName --input_file inputFileName --disabled_regions regionList
  3. Para desabilitar o Detective na conta de administrador em todas as regiões, execute o script disableDetective.py com o sinalizador --delete-master.

    disabledetective.py --master_account administratorAccountID --assume_role roleName --input_file inputFileName --disabled_regions regionList --delete_master

Ao executar o script, substitua os seguintes valores:

administratorAccountID

O AWS ID da conta do administrador.

roleName

O nome da AWS função a ser assumida na conta do administrador e na conta de cada membro.

inputFileName

O nome do arquivo .csv contendo a lista de contas-membro a serem removidas dos gráficos de comportamento da conta de administrador.

Você deve fornecer um arquivo .csv mesmo se estiver desabilitando o Detective.

regionList

(Opcional) Uma lista separada por vírgulas de regiões nas quais realizar uma das seguintes ações:

  • Remover as contas-membro dos gráficos de comportamento da conta de administrador.

  • Se o sinalizador --delete-master estiver incluído, desabilite o Detective.

Por exemplo:

--disabled_regions us-east-1,us-east-2,us-west-2

Se você não fornecer uma lista de regiões, o script atuará em todas as regiões compatíveis com o Detective.