

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de scripts de Detective Python para administrar cuentas
<a name="detective-github-scripts"></a>

Amazon Detective proporciona un conjunto de scripts de Python de código abierto en el GitHub repositorio [amazon-detective-multiaccount-scripts](https://github.com/aws-samples/amazon-detective-multiaccount-scripts). Los scripts requieren Python 3.

Puede utilizar estos scripts para llevar a cabo las siguientes tareas:
+ Habilitar Detective para una cuenta de administrador en varias regiones.

  Al habilitar Detective, puede asignar valores de etiqueta al gráfico de comportamiento.
+ Agregar cuentas de miembros a gráficos de comportamiento de la cuenta de administrador en varias regiones.
+ Enviar correos electrónicos de invitación a cuentas de miembros. También puede configurar la solicitud para que no envíe correos electrónicos de invitación.
+ Eliminar cuentas de miembros de gráficos de comportamiento de la cuenta de administrador en varias regiones.
+ Deshabilitar Detective para una cuenta de administrador en varias regiones. Cuando una cuenta de administrador deshabilita Detective, el gráfico de comportamiento de la cuenta de administrador se deshabilita en todas las regiones.

## Descripción general del script `enableDetective.py`
<a name="enabledetective-script-overview"></a>

El script `enableDetective.py` hace lo siguiente:

1. Habilita Detective para una cuenta de administrador en cada región especificada, siempre que la cuenta de administrador no tuviera habilitado Detective en una región.

   Al utilizar el script para habilitar Detective, puede asignar valores de etiqueta al gráfico de comportamiento.

1. También puede enviar invitaciones desde la cuenta de administrador a las cuentas de miembros especificadas para cada gráfico de comportamiento.

   Los mensajes de correo electrónico de invitación utilizan el formato de contenido predeterminado para mensajes, que no se puede personalizar.

   También puede configurar la solicitud para que no envíe correos electrónicos de invitación.

1. Acepta automáticamente las invitaciones enviadas a cuentas de miembros.

   Como el script acepta automáticamente las invitaciones, las cuentas de miembros pueden ignorar los mensajes.

   Se recomienda comunicar directamente a las cuentas de miembros que las invitaciones se aceptan automáticamente.

## Descripción general del script `disableDetective.py`
<a name="disabledetective-script-overview"></a>

El script `disableDetective.py` elimina las cuentas de miembros especificadas de los gráficos de comportamiento de la cuenta de administrador en las regiones especificadas.

También permite deshabilitar Detective para la cuenta de administrador en las regiones especificadas.

## Permisos necesarios para los scripts
<a name="github-scripts-permissions"></a>

Los scripts requieren un AWS rol preexistente en la cuenta de administrador y en todas las cuentas de los miembros que añada o elimine.

**nota**  
El nombre del rol debe ser el mismo en todas las cuentas.

Según las [prácticas recomendadas](https://docs.aws.amazon.com/detective/latest/userguide/security_iam_id-based-policy-examples.html#security_iam_service-with-iam-policy-best-practices) para políticas de IAM, lo mejor es utilizar los roles menos limitados. Para ejecutar el flujo de trabajo del script —[crear un gráfico](https://docs.aws.amazon.com/detective/latest/APIReference/API_CreateGraph.html), [crear miembros](https://docs.aws.amazon.com/detective/latest/APIReference/API_CreateMembers.html) y [agregar miembros al gráfico ](https://docs.aws.amazon.com/detective/latest/APIReference/API_AcceptInvitation.html), los permisos necesarios son los siguientes:
+ detective: CreateGraph
+ detective: CreateMembers
+ detective: DeleteGraph
+ detective: DeleteMembers
+ detective: ListGraphs
+ detective: ListMembers
+ detective: AcceptInvitation

**Relación de confianza del rol**

La relación de confianza del rol debe permitir que la instancia o las credenciales locales asuman el rol.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
            "AWS": "arn:aws:iam::{{123456789012}}:user/{{john_doe}}"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

Si no dispone de un rol común que incluya el permiso necesario, deberá crear un rol que incluya, como mínimo, los permisos necesarios en cada cuenta de miembro. También debe crear este rol en la cuenta de administrador.

Al crear el rol, asegúrese de hacer lo siguiente:
+ Utilice el mismo nombre de rol en cada cuenta.
+ Añada los permisos necesarios arriba (recomendado) o seleccione la política [AmazonDetectiveFullAccess](https://docs.aws.amazon.com/detective/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-amazondetectivefullaccess)gestionada.
+ Agregue el bloque de relaciones de confianza del rol, tal como se indica más arriba.

Para automatizar este proceso, puede utilizar la `EnableDetective.yaml` CloudFormation plantilla. Como la plantilla solo crear recursos globales, se puede ejecutar en cualquier región.

## Configuración del entorno de ejecución para scripts de Python
<a name="github-script-setup"></a>

Puede ejecutar los scripts desde una instancia de EC2 o desde una máquina local.

### Lanzamiento y configuración de una instancia de EC2
<a name="github-setup-ec2-instance"></a>

Tiene la opción de ejecutar scripts desde una instancia de EC2.

**Lanzamiento y configuración de una instancia de EC2**

1. Lance una instancia de EC2 en la cuenta de administrador. Para obtener más información sobre cómo lanzar una instancia EC2, consulte [Introducción a las instancias Linux de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) en la Guía del usuario de *Amazon EC2*.

1. Adjunte a la instancia un rol de IAM que tenga permisos que permitan a la instancia llamar a `AssumeRole` en la cuenta de administrador.

   Si ha utilizado la `EnableDetective.yaml` CloudFormation plantilla, se ha creado un rol de instancia con un nombre `EnableDetective` de perfil.

   Si, por contra, no ha utilizado una plantilla, consulte la entrada del blog [Sustitución y adición de un rol de IAM a una instancia de EC2 existente con la consola de EC2](https://aws.amazon.com/blogs//security/easily-replace-or-attach-an-iam-role-to-an-existing-ec2-instance-by-using-the-ec2-console/) (en inglés) para obtener información sobre cómo crear un rol de instancia.

1. Instale el software necesario:
   + **APT**: `sudo apt-get -y install python3-pip python3 git`
   + **RPM**: `sudo yum -y install python3-pip python3 git`
   + **Boto (versión mínima: 1.15)**: `sudo pip install boto3`

1. Clone el repositorio en la instancia de EC2.

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

### Configuración de una máquina local para ejecutar los scripts
<a name="github-setup-local-machine"></a>

También puede ejecutar los scripts desde una máquina local.

**Configuración de una máquina local para ejecutar los scripts**

1. Compruebe que haya configurado en la máquina local las credenciales de la cuenta de administrador que tiene permiso para llamar a `AssumeRole`.

1. Instale el software necesario:
   + Python 3
   + Boto (versión mínima: 1.15)
   + GitHub guiones    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/detective/latest/userguide/detective-github-scripts.html)

## Creación de una lista en formato `.csv` con las cuentas de miembros para agregar o eliminar
<a name="github-scripts-csv-file"></a>

Para identificar las cuentas de miembros que quiera agregar a gráficos de comportamiento o eliminar de estos, es necesario proporcionar un archivo `.csv` que contenga una lista con las cuentas.

Se agrega una cuenta por línea. Cada entrada de la cuenta de un miembro contiene el ID de la AWS cuenta y la dirección de correo electrónico del usuario raíz de la cuenta.

Vea el siguiente ejemplo:

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

## Ejecución de `enableDetective.py`
<a name="github-scripts-execute-enabledetective"></a>

Puede ejecutar el script `enableDetective.py` desde una instancia de EC2 o desde una máquina local.

**Para ejecutar `enableDetective.py`**

1. Copie el archivo `.csv` en el directorio `amazon-detective-multiaccount-scripts` de la instancia de EC2 o la máquina local.

1. Cambie al directorio de `amazon-detective-multiaccount-scripts`.

1. Ejecute el script `enableDetective.py`.

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

Al ejecutar el script, sustituya los siguientes valores:

`{{administratorAccountID}}`  
El ID de AWS cuenta de la cuenta de administrador.

`{{roleName}}`  
El nombre del AWS rol que se va a asumir en la cuenta de administrador y en la cuenta de cada miembro.

`{{inputFileName}}`  
El nombre del archivo `.csv` que contiene la lista con las cuentas de miembros que se van a agregar a los gráficos de comportamiento de la cuenta de administrador.

`{{tagValueList}}`  
(Opcional) Una lista de valores de etiqueta separados por comas que se asignan a un nuevo gráfico de comportamiento.  
El formato de los valores de etiqueta es `{{key}}={{value}}`. Por ejemplo:  

```
--tags Department=Finance,Geo=Americas
```

`{{regionList}}`  
(Opcional) Una lista de valores separados por comas con las regiones en las que se agregarán cuentas de miembros al gráfico de comportamiento de la cuenta de administrador. Por ejemplo:  

```
--enabled_regions us-east-1,us-east-2,us-west-2
```
Es posible que la cuenta de administrador no haya habilitado Detective en una región. En ese caso, el script habilita Detective y crea un nuevo gráfico de comportamiento para la cuenta de administrador.  
Si no proporciona una lista de regiones, el script funciona en todas las regiones compatibles con Detective.

`--disable_email`  
(Opcional) Si se incluye, Detective no envía correos electrónicos de invitación a cuentas de miembros.

## Ejecución de `disableDetective.py`
<a name="github-scripts-execute-disabledetective"></a>

Puede ejecutar el script `disableDetective.py` desde una instancia de EC2 o desde una máquina local.

**Para ejecutar `disableDetective.py`**

1. Copie el archivo `.csv` en el directorio `amazon-detective-multiaccount-scripts`.

1. Si desea utilizar el archivo `.csv` para eliminar las cuentas de miembros indicadas en una lista especificada de regiones de los gráficos de comportamiento de la cuenta de administrador, ejecute el script `disableDetective.py` de la siguiente forma:

   ```
   disabledetective.py --master_account {{administratorAccountID}} --assume_role {{roleName}} --input_file {{inputFileName}} --disabled_regions {{regionList}}
   ```

1. Para deshabilitar Detective en la cuenta de administrador para todas las regiones, ejecute el script `disableDetective.py` con la marca `--delete-master`.

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

Al ejecutar el script, sustituya los siguientes valores:

`{{administratorAccountID}}`  
El ID de AWS cuenta de la cuenta de administrador.

`{{roleName}}`  
El nombre del AWS rol que se va a asumir en la cuenta de administrador y en la cuenta de cada miembro.

`{{inputFileName}}`  
El nombre del archivo `.csv` que contiene la lista con las cuentas de miembros que se van a eliminar de los gráficos de comportamiento de la cuenta de administrador.  
Debe proporcionar un archivo `.csv` aunque vaya a deshabilitar Detective.

`{{regionList}}`  
(Opcional) Una lista de regiones separadas por comas en la que se puede realizar una de las siguientes acciones:  
+ Eliminar cuentas de miembros de gráficos de comportamiento de la cuenta de administrador
+ Si la marca `--delete-master` está incluida, deshabilitar Detective
Por ejemplo:  

```
--disabled_regions us-east-1,us-east-2,us-west-2
```
Si no proporciona una lista de regiones, el script funciona en todas las regiones compatibles con Detective.