

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
<a name="detective-github-scripts"></a>

O Amazon Detective fornece um conjunto de scripts Python de código aberto no repositório. GitHub [amazon-detective-multiaccount-scripts](https://github.com/aws-samples/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`
<a name="enabledetective-script-overview"></a>

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.

1. 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.

1. 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`
<a name="disabledetective-script-overview"></a>

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
<a name="github-scripts-permissions"></a>

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.

A política do IAM [melhores práticas recomendadas](https://docs.aws.amazon.com/detective/latest/userguide/security_iam_id-based-policy-examples.html#security_iam_service-with-iam-policy-best-practices) são para usar funções de menor escopo. Para executar o fluxo de trabalho do script de [criar um gráfico](https://docs.aws.amazon.com/detective/latest/APIReference/API_CreateGraph.html), [criar membros](https://docs.aws.amazon.com/detective/latest/APIReference/API_CreateMembers.html) e [adicionar membros ao gráfico](https://docs.aws.amazon.com/detective/latest/APIReference/API_AcceptInvitation.html), 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.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
            "AWS": "arn:aws:iam::{{123456789012}}:user/{{john_doe}}"
            },
            "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 [AmazonDetectiveFullAccess](https://docs.aws.amazon.com/detective/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-amazondetectivefullaccess)gerenciada.
+ 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` 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
<a name="github-script-setup"></a>

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

### Iniciar e configurar uma instância do EC2
<a name="github-setup-ec2-instance"></a>

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

**Para iniciar e configurar uma instância do EC2**

1. Inicie uma instância do EC2 na sua conta de administrador. Para obter detalhes sobre como iniciar uma instância do EC2, consulte [Conceitos básicos das instâncias Linux do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) no Guia do usuário do *Amazon EC2*.

1. Anexe à instância um perfil do IAM que tenha permissões para permitir que a instância acione `AssumeRole` dentro da conta de administrador.

   Se você usou o `EnableDetective.yaml` 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 [Substituir ou anexar facilmente um perfil do IAM a uma instância do EC2 existente usando o console do EC2](https://aws.amazon.com/blogs//security/easily-replace-or-attach-an-iam-role-to-an-existing-ec2-instance-by-using-the-ec2-console/).

1. Instalar 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`

1. Clone o repositório na instância do EC2.

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

### Configurar uma máquina local para executar os scripts
<a name="github-setup-local-machine"></a>

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`.

1. Instale o software necessário:
   + Python 3
   + Boto (versão mínima 1.15)
   + GitHub scripts    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/detective/latest/userguide/detective-github-scripts.html)

## Criar uma lista em `.csv` de contas-membro a adicionar ou remover
<a name="github-scripts-csv-file"></a>

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`
<a name="github-scripts-execute-enabledetective"></a>

Você pode executar o script `enableDetective.py` de uma instância do EC2 ou de uma máquina local.

**Para executar o `enableDetective.py`**

1. Copie o arquivo `.csv` para o diretório `amazon-detective-multiaccount-scripts` em sua instância do EC2 ou máquina local.

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

1. 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`
<a name="github-scripts-execute-disabledetective"></a>

Você pode executar o script `disableDetective.py` de uma instância do EC2 ou de uma máquina local.

**Para executar o `disableDetective.py`**

1. Copie os arquivos `.csv` no diretório `amazon-detective-multiaccount-scripts`.

1. 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}}
   ```

1. 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.