> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Amazon Simple Storage Service (S3)

> Conecta Amazon S3 a Iru Compliance con un rol de IAM entre cuentas para recopilar el inventario de buckets, el cifrado, los bloqueos de acceso público y los metadatos de políticas.

### Acerca de Amazon Simple Storage Service (S3)

El conector de **Amazon S3** inventaría la **configuración de los buckets**: políticas, cifrado, control de versiones, registro, notificaciones, bloqueos de acceso público y ajustes relacionados, sin leer el **contenido de los objetos**. Iru asume un **rol de IAM** que creas en tu cuenta (`sts:AssumeRole` con un **ID externo**). Esto mantiene la evidencia centrada en **cómo están configurados los buckets**, no en el contenido de los archivos almacenados.

### Cómo funciona

Iru se ejecuta en su propia cuenta de AWS. Para inventariar la configuración de buckets de **S3** (no el contenido de los objetos de forma predeterminada), creas un **rol de IAM** cuya **política de confianza** hace referencia al principal de AWS de Iru y **exige** el **External ID** del asistente, y cuya **política de permisos** concede solo las lecturas de **metadatos** que apruebe tu equipo. Es preferible usar la **política en línea** que aparece a continuación en lugar de solo **`AmazonS3ReadOnlyAccess`**. La política administrada incluye **`s3:GetObject`**, que muchos equipos no permiten en integraciones solo de metadatos. Pega el **ARN** del rol de vuelta en Iru.

| Detalle | Valor |
| - | - |
| **Categoría** | Almacenamiento |
| **Autenticación** | Rol de IAM entre cuentas |

Referencias: [Guía del usuario de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/), [Administración de acceso](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-management.html).

### Requisitos previos

* Permisos de IAM para **crear roles** y adjuntar políticas en línea.
* El par activo de **principal** + **ID externo** de **tu** conector, no necesariamente los ID de ejemplo que aparecen en capturas de pantalla antiguas.

### Conectar Amazon S3 a Iru

<Tabs>
  <Tab title="Iru Compliance">
    <Note>
      Empieza aquí: abre el asistente de la fuente y copia la **política de confianza** (y anota el **ID externo**). Cuando estés listo para crear el rol en AWS, cambia a la pestaña [**AWS**](#aws) y sigue [**Crear el rol de IAM en AWS**](#create-the-iam-role-in-aws). Cuando tengas el **Role ARN**, vuelve a la pestaña [**Iru Compliance**](#iru-compliance) y completa [**Enviar el ARN del rol en Iru**](#submit-the-role-arn-in-iru) a continuación.
    </Note>

    #### Obtener la política de confianza de Iru

    <Steps>
      <Step title="Abrir Sources">
        En Iru Compliance, en la barra de navegación izquierda, expande **Cumplimiento** y selecciona **Fuentes**.

        <Frame>
          <img src="https://mintcdn.com/iru/tI0HDLDwHj8r9Ile/assets/media/images/iru-navigation-compliance-sources.png?fit=max&auto=format&n=tI0HDLDwHj8r9Ile&q=85&s=87dcef15fc17d2fb9a6e53f454e41710" alt="Navegación izquierda: Compliance expandido, Sources seleccionado" width="410" height="1024" data-path="assets/media/images/iru-navigation-compliance-sources.png" />
        </Frame>
      </Step>

      <Step title="Activar AWS S3">
        Busca **AWS S3** (usa **Categoría** o **Buscar por nombre o descripción**). En esa tarjeta, activa el **interruptor**. Deja abierta la pestaña del asistente **Iru está solicitando acceso a servicios externos**.
      </Step>

      <Step title="Copiar el JSON de la política de confianza">
        El asistente muestra el JSON de la **política de confianza** que debe usar tu rol de IAM (**Principal** y **sts:ExternalId**). A continuación se muestra un **ejemplo** de la estructura; **copia el JSON activo de tu asistente** para que la cuenta, el ARN del principal y el ID externo coincidan exactamente.

        ```json copy=false lines theme={null}
        {
          "Version": "2012-10-17",
          "Statement": [
            {
              "Effect": "Allow",
              "Principal": {
                "AWS": "arn:aws:iam::753695775620:role/IruConnect"
              },
              "Condition": {
                "StringEquals": {
                  "sts:ExternalId": "YOUR_EXTERNAL_ID"
                }
              },
              "Action": "sts:AssumeRole"
            }
          ]
        }
        ```
      </Step>

      <Step title="Cambiar a AWS para crear el rol">
        Mantén abierta la pestaña del asistente de Iru como referencia y, a continuación, cambia a la pestaña [**AWS**](#aws) y sigue [**Crear el rol de IAM en AWS**](#create-the-iam-role-in-aws).
      </Step>
    </Steps>

    #### Enviar el ARN del rol en Iru

    <Note>
      Termina primero la pestaña [**AWS**](#aws) (hasta [**Crear el rol de IAM en AWS**](#create-the-iam-role-in-aws)) para tener el **Role ARN** del nuevo rol.
    </Note>

    <Steps>
      <Step title="Pegar el ARN del rol de IAM">
        Vuelve a la pestaña del asistente de Iru. Pega el **Role ARN** donde el conector lo solicite.
      </Step>

      <Step title="Finalizar la conexión">
        Selecciona **Submit Role**. Cuando la conexión se realiza correctamente, el asistente muestra **Conexión configurada**.
      </Step>

      <Step title="Confirmar que la fuente está activa">
        Cierra la pestaña del navegador **Iru está solicitando acceso a servicios externos** y, a continuación, vuelve a **Cumplimiento** → **Fuentes** y confirma que la tarjeta de **AWS S3** está **Activo**.
      </Step>
    </Steps>
  </Tab>

  <Tab title="AWS">
    <Note>
      Completa [**Obtener la política de confianza de Iru**](#get-the-trust-policy-from-iru) en la pestaña [**Iru Compliance**](#iru-compliance) antes de crear este rol. Usa el **ID externo** y la política de confianza del asistente activo cuando configures **Trusted entity**.
    </Note>

    #### Crear el rol de IAM en AWS

    <Steps>
      <Step title="Iniciar el flujo de creación de rol">
        Abre **IAM** → **Roles** → **Create role**.
      </Step>

      <Step title="Configurar la entidad de confianza">
        Elige **AWS account** → **Another AWS account**. Introduce **`753695775620`** (o el ID que muestre Iru). Habilita **Require external ID** y pega el valor de Iru.
      </Step>

      <Step title="Omitir la política administrada amplia (opcional)">
        Avanza más allá del selector de políticas administradas **sin** adjuntar **`AmazonS3ReadOnlyAccess`** si piensas usar la política en línea solo de metadatos del siguiente paso.
      </Step>

      <Step title="Crear la política en línea solo de metadatos">
        Crea el rol con un nombre provisional si es necesario y, a continuación, abre el rol → **Permisos** → **Create inline policy** → editor JSON. Pega:

        ```json lines theme={null}
        {
          "Version": "2012-10-17",
          "Statement": [
            {
              "Effect": "Allow",
              "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation",
                "s3:GetBucketPolicy",
                "s3:GetBucketPolicyStatus",
                "s3:GetBucketAcl",
                "s3:GetBucketVersioning",
                "s3:GetBucketTagging",
                "s3:GetBucketLogging",
                "s3:GetBucketNotification",
                "s3:GetBucketPublicAccessBlock",
                "s3:GetEncryptionConfiguration",
                "s3:GetLifecycleConfiguration",
                "s3:GetReplicationConfiguration",
                "s3:GetBucketCORS",
                "s3:GetBucketWebsite",
                "s3:GetBucketObjectLockConfiguration"
              ],
              "Resource": "*"
            }
          ]
        }
        ```

        Guarda la política en línea.

        <Note>
          Esta política **excluye** intencionadamente `s3:GetObject` y las API relacionadas de lectura de objetos, de modo que Iru no puede obtener el contenido de los objetos, solo los metadatos a nivel de bucket.
        </Note>
      </Step>

      <Step title="Copiar el ARN del rol">
        Copia el **ARN** del rol desde la página de resumen del rol. Vuelve a la pestaña [**Iru Compliance**](#iru-compliance) y completa [**Enviar el ARN del rol en Iru**](#submit-the-role-arn-in-iru).
      </Step>

      <Step title="Verificar la relación de confianza">
        Abre **Trust relationships** y confirma que el JSON coincide con el del asistente; los errores tipográficos en el ID externo son la causa habitual de los fallos de **`AssumeRole`**.
      </Step>
    </Steps>

    <Note>
      Continúa en la pestaña [**Iru Compliance**](#iru-compliance) para pegar el **Role ARN** y finalizar el asistente ([**Enviar el ARN del rol en Iru**](#submit-the-role-arn-in-iru)).
    </Note>
  </Tab>
</Tabs>

### Solución de problemas

<AccordionGroup>
  <Accordion title="No se abre nada al activar la fuente">
    Revisa la configuración del **bloqueador de ventanas emergentes** para el sitio de Iru e inténtalo de nuevo.
  </Accordion>

  <Accordion title="AssumeRole denegado">
    El ID externo no coincide: vuelve a copiarlo desde Iru sin espacios adicionales.
  </Accordion>

  <Accordion title="Faltan filas de políticas de bucket">
    Las políticas de recursos del bucket pueden denegar las lecturas entre cuentas incluso cuando IAM las permite.
  </Accordion>

  <Accordion title="No aparece la configuración de cifrado">
    Confirma que `s3:GetEncryptionConfiguration` sigue incluido en la política en línea.
  </Accordion>
</AccordionGroup>

### Consideraciones

<CardGroup cols={2}>
  <Card title="Los buckets son regionales, pero ListAllMyBuckets es…" icon="circle-info">
    Los buckets son **regionales**, pero `ListAllMyBuckets` es global: espera llamadas de seguimiento en varias regiones durante el inventario.
  </Card>

  <Card title="Las instrucciones Deny explícitas en las políticas de bucket bloquean…" icon="shield">
    Las instrucciones **Denegar** explícitas en las políticas de bucket bloquean las lecturas independientemente de lo que permita IAM; documenta las expectativas con los auditores.
  </Card>
</CardGroup>

### Artículos relacionados

<CardGroup cols={2}>
  <Card title="Gestión de fuentes" icon="plug" href="/es/compliance/sources-management">
    Explora y gestiona todas las fuentes de Compliance.
  </Card>

  <Card title="Introducción a Compliance" icon="rocket" href="/es/compliance/getting-started-with-compliance">
    Marcos, acciones y **Artefactos**.
  </Card>

  <Card title="Descripción general de Iru" icon="layer-group" href="/es/iru/platform-overview/iru-overview">
    Cómo encajan Endpoint, Compliance e Identity.
  </Card>

  <Card title="Gestión de artefactos" icon="folder-open" href="/es/compliance/artifacts-management">
    Sube, revisa y organiza la evidencia de fuentes y acciones.
  </Card>
</CardGroup>
