

# Tutorial: configurar la RPKI delegada para prefijos BYOIP
<a name="tutorials-byoip-bgp-security"></a>

En este tutorial se explican todas las capacidades de protección de rutas BGP de principio a fin. Se puede detener después de cualquier paso y usar lo que ha configurado hasta ese momento. Los pasos 1 y 2 no requieren interacción con el RIR. Los pasos 3 y posteriores requieren una configuración única con su RIR. Para obtener información sobre los conceptos de protección de rutas BGP, los requisitos de nivel y los RIR compatibles, consulte [Supervise la protección de rutas BGP](monitor-bgp-route-security.md).

## Requisitos previos
<a name="tutorials-byoip-bgp-security-prereqs"></a>
+ Un IPAM creado en el nivel avanzado.
+ Uno o más prefijos BYOIP aprovisionados a los grupos de IPAM.
+ Acceso a su cuenta del Registro Regional de Internet (ARIN, RIPE, APNIC o LACNIC).

## Paso 1: Visualización de sus rutas BGP
<a name="tutorials-byoip-bgp-security-step1"></a>

Una vez que haya aprovisionado los prefijos BYOIP a IPAM, se deben consultar todas las rutas anunciadas en el panel centralizado.

------
#### [ AWS Management Console ]

**Para ver sus rutas BGP**

1. Abra la consola de IPAM en [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/). 

1. En el panel de navegación, seleccione **IPAM** y, a continuación, seleccione su IPAM.

1. En **Supervisión**, seleccione **Supervisión de rutas**.

En el panel se muestran todas las rutas BYOIP con prefijo, configuración regional, estado del anuncio, ASN, validez de RPKI, intensidad de la ROA y superposiciones de rutas.

------
#### [ Command line ]

Utilice [get-ipam-discovered-routes](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-ipam-discovered-routes.html) para ver las rutas descubiertas. Este comando está disponible tanto para los clientes del nivel gratuito como para los clientes del nivel avanzado.

```
aws ec2 get-ipam-discovered-routes \
    --ipam-resource-discovery-id ipam-res-disco-0365d2977fc1672fe \
    --resource-region us-west-2
```

A continuación, se muestra un ejemplo del resultado.

```
{
    "IpamDiscoveredRoutes": [
        {
            "IpamResourceDiscoveryId": "ipam-res-disco-0365d2977fc1672fe",
            "ResourceRegion": "us-west-2",
            "ResourceOwnerId": "123456789012",
            "Cidr": "203.0.113.0/24",
            "Asn": "64512",
            "State": "advertised",
            "AdvertisementType": "regional",
            "NetworkBorderGroup": "us-west-2",
            "PoolId": "ipv4pool-ec2-0a1b2c3d4e5f6g7h8",
            "IpamPoolId": "ipam-pool-0da89c821626f1e4b",
            "SampleTime": "2026-03-10T15:30:00+00:00"
        }
    ]
}
```

------

## Paso 2: Revisión de los resultados de la protección de las rutas
<a name="tutorials-byoip-bgp-security-step2"></a>

Para los clientes de nivel avanzado, IPAM evalúa las rutas comparándolas con los datos de la ROA publicados y muestra los resultados con [get-ipam-route-protection-findings](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-ipam-route-protection-findings.html).

**nota**  
get-ipam-route-protection-findings requiere el nivel avanzado. Los clientes del nivel gratuito reciben un error `UnsupportedOperation`.

1. Enumere todos los resultados.

   ```
   aws ec2 get-ipam-route-protection-findings \
       --ipam-id ipam-0a1b2c3d4e5f6g7h8
   ```

1. Filtre las ROA no válidas o faltantes.

   ```
   aws ec2 get-ipam-route-protection-findings \
       --ipam-id ipam-0a1b2c3d4e5f6g7h8 \
       --filters "Name=rpki-status,Values=invalid,unknown"
   ```

1. Filtre por estado en una región específica.

   ```
   aws ec2 get-ipam-route-protection-findings \
       --ipam-id ipam-0a1b2c3d4e5f6g7h8 \
       --filters "Name=rpki-status,Values=invalid" "Name=resource-region,Values=us-west-2"
   ```

A continuación, se muestra un ejemplo del resultado.

```
{
    "IpamId": "ipam-0a1b2c3d4e5f6g7h8",
    "RouteProtectionFindings": [
        {
            "ResourceOwnerId": "123456789012",
            "ResourceRegion": "us-west-2",
            "IpamPoolId": "ipam-pool-0da89c821626f1e4b",
            "Cidr": "203.0.113.0/24",
            "State": "advertised",
            "AdvertisementType": "regional",
            "NetworkBorderGroup": "us-west-2",
            "PoolId": "ipv4pool-ec2-0a1b2c3d4e5f6g7h8",
            "Asn": "64512",
            "RpkiStatus": "valid",
            "RpkiStrength": "strict",
            "Roas": [
                {
                    "Asn": "64512",
                    "Prefix": "203.0.113.0/24",
                    "MaxLength": 24,
                    "Match": true,
                    "Expiration": "2027-06-15T00:00:00Z"
                }
            ],
            "RouteOverlaps": [
                {
                    "Prefix": "203.0.113.128/25",
                    "Asn": "64513",
                    "DetectedAt": "2026-03-10T15:45:00+00:00"
                }
            ],
            "SampleTime": "2026-03-10T15:30:00+00:00",
            "RoaSampleTime": "2026-03-10T16:00:00+00:00"
        }
    ]
}
```

Los nombres de filtro válidos son `cidr`, `account-id`, `resource-region`, `byoip-cidr-state`, `advertisement-type`, `network-border-group`, `ipam-pool-id`, `rpki-status` y `asn`. Estos nombres de filtro de estilo EC2 no siempre coinciden con los campos devueltos. Por ejemplo, se filtra por `account-id` pero la respuesta devuelve `ResourceOwnerId`, y se filtra por `byoip-cidr-state` pero el campo es `State`. La intensidad de la ROA no se puede filtrar.

## Paso 3: Configurar la RPKI delegada
<a name="tutorials-byoip-bgp-security-step3"></a>

La RPKI delegada le permite autorizar a AWS para administrar las ROA en su nombre.

1. **Cree la Asociación de Registros de Internet.**

   ```
   aws ec2 create-ipam-internet-registry-association --region us-east-1 \
       --ipam-id ipam-0de83dba6694560a9 \
       --rir ARIN --org-handle my-arin-org
   ```

   A continuación, se muestra un ejemplo del resultado.

   ```
   {
       "IpamInternetRegistryAssociation": {
           "IpamInternetRegistryAssociationId": "ipam-internet-registry-assoc-036486dfa6af58ee0",
           "State": "create-in-progress"
       }
   }
   ```

   Ejecute el siguiente comando hasta que el estado llegue a `pending-enable`.

   ```
   aws ec2 describe-ipam-internet-registry-associations --region us-east-1 \
       --ipam-internet-registry-association-ids ipam-internet-registry-assoc-036486dfa6af58ee0
   ```

   Una vez que el estado sea `pending-enable`, el ChildRequestXml estará listo para enviarlo a su RIR. IPAM organiza las ROA en función de los datos públicos de la VRP (carga útil de la ROA validada). Están pendientes y se activarán una vez que se active la Asociación de Registros de Internet.

1. **Revise las ROA organizadas por etapas.**

   ```
   aws ec2 get-ipam-route-origin-authorizations --region us-east-1 \
       --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0
   ```

   A continuación, se muestra un ejemplo del resultado.

   ```
   {
       "Roas": [
           {
               "prefix": "18.96.0.0/14",
               "asn": "77221",
               "maxLength": "24",
               "state": "pending-activate"
           }
       ]
   }
   ```

1. **Habilite la Asociación de Registros de Internet.**

   Lleve el archivo ChildRequestXML a su portal RIR y envíe la solicitud de delegación. El RIR devuelve un XML de respuesta principal. Extraiga los siguientes campos de esa respuesta: rpkiVersion, serviceUri, childHandle, parentHandle y parentBpkiTa. A continuación, llame el siguiente comando.

   ```
   aws ec2 enable-ipam-internet-registry-association --region us-east-1 \
       --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0 \
       --rpki-version "..." \
       --service-uri "..." \
       --child-handle "..." \
       --parent-handle "..." \
       --parent-bpki-ta "..."
   ```

   A continuación, se muestra un ejemplo del resultado.

   ```
   {
       "IpamInternetRegistryAssociation": {
           "IpamInternetRegistryAssociationId": "ipam-internet-registry-assoc-036486dfa6af58ee0",
           "State": "enable-in-progress"
       }
   }
   ```

   Ejecute el siguiente comando hasta que el estado llegue a `enable-complete`.

   ```
   aws ec2 describe-ipam-internet-registry-associations --region us-east-1 \
       --ipam-internet-registry-association-ids ipam-internet-registry-assoc-036486dfa6af58ee0
   ```

   Una vez que el estado sea `enable-complete`, las ROA organizadas en etapas pasan a `create-complete`. AWS ahora administra el ciclo de vida de la ROA de todos los CIDR en el marco de esta asociación.

1. **Ver los CIDR asociados.**

   ```
   aws ec2 get-ipam-internet-registry-association-cidrs --region us-east-1 \
       --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0
   ```

   A continuación, se muestra un ejemplo del resultado.

   ```
   {
       "IpamInternetRegistryAssociationCidrs": [
           {
               "Cidr": "18.96.0.0/14",
               "LastObservedAt": "2026-07-30T18:00:00.000Z"
           }
       ]
   }
   ```

1. **Ver los ASN asociados.**

   ```
   aws ec2 get-ipam-internet-registry-association-asns --region us-east-1 \
       --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0
   ```

   A continuación, se muestra un ejemplo del resultado.

   ```
   {
       "IpamInternetRegistryAssociationAsns": [
           {
               "Asn": "77221",
               "LastObservedAt": "2026-07-30T18:00:00.000Z"
           }
       ]
   }
   ```

## Paso 4: Aprovisionar BYOIP con la creación automática de la ROA
<a name="tutorials-byoip-bgp-security-step4"></a>

Con la RPKI delegada activa, el aprovisionamiento se simplifica.


| Antes (sin RPKI delegada) | Después (con RPKI delegada) | 
| --- | --- | 
| Se debe proporcionar --cidr-authorization-context | Aún así, pase --cidr-authorization-context, pero con Message="CoveredByInternetRegistryAssociation",Signature="": no se requiere un mensaje firmado | 
| Debe validarse mediante un registro TXT de WHOIS o DNS | No es obligatorio: IPAM se compara con los CIDR de las asociaciones | 
| Debe crear las ROA de manera manual en el RIR antes de anunciarse | Las ROA se crean de manera automática en el aprovisionamiento | 
| Debe renovar de manera manual las ROA antes de que caduquen | AWS se renueva de manera automática: no es necesario realizar ninguna acción | 

```
aws ec2 provision-ipam-pool-cidr \
    --cidr 18.97.16.0/24 \
    --ipam-pool-id ipam-pool-0da89c821626f1e4b \
    --cidr-authorization-context Message="CoveredByInternetRegistryAssociation",Signature="" \
    --region us-east-1
```

IPAM valida la propiedad a través de la Asociación de Registros de Internet y crea ROA estrictas que coinciden con la configuración regional y el ASN del grupo. No hay ningún paso de ROA manual.

## Paso 5: Administrar las ROA para prefijos en las instalaciones
<a name="tutorials-byoip-bgp-security-step5"></a>

Para el espacio IP que no se haya incorporado a AWS, utilice los registros de políticas de enrutamiento (RPR).

1. **Creación de un RPR.**

   ```
   aws ec2 create-ipam-routing-policy-registration --region us-east-1 \
       --ipam-id ipam-0de83dba6694560a9 \
       --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0 \
       --cidr 18.96.0.0/14 --asns 77221,13446 \
       --permit-more-specific-announcements
   ```

   A continuación, se muestra un ejemplo del resultado.

   ```
   {
       "deltaId": "0130c368-1f8c-4283-8f16-66e67e633086",
       "state": "PENDING"
   }
   ```

1. **Comprobación del estado de la diferencia.** Si el cambio invalida las rutas existentes, se produce un error. Use `--force` para anular.

   ```
   aws ec2 get-ipam-routing-policy-registration-deltas --region us-east-1 \
       --ipam-id ipam-0de83dba6694560a9 \
       --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0 \
       --delta-id 0130c368-1f8c-4283-8f16-66e67e633086
   ```

1. **Actualización por lotes (atómica).** Las actualizaciones por lotes se realizan correctamente o fallan de forma atómica. No hay ninguna aplicación parcial.

   ```
   aws ec2 batch-modify-ipam-routing-policy-registrations --region us-east-1 \
       --ipam-id ipam-0de83dba6694560a9 \
       --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0 \
       --delta-json file://delta.json
   ```

   Aquí, `delta.json` contiene lo siguiente.

   ```
   {
       "Add": [
           {
               "prefix": "18.96.0.0/14",
               "asns": ["77221", "13446"],
               "permit-more-specific-announcements": "false"
           }
       ],
       "Delete": [
           {
               "prefix": "18.97.16.0/24",
               "asns": ["77221", "13446"],
               "permit-more-specific-announcements": "false"
           }
       ]
   }
   ```

1. **Ver todos los registros de una asociación.**

   ```
   aws ec2 get-ipam-routing-policy-registrations --region us-east-1 \
       --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0
   ```

   A continuación, se muestra un ejemplo del resultado.

   ```
   {
       "IpamRoutingPolicyRegistrations": [
           {
               "Cidr": "18.96.0.0/14",
               "Asns": ["77221", "13446"],
               "PermitMoreSpecificAnnouncements": false,
               "MaxLength": 14,
               "LatestDeltaId": "0130c368-1f8c-4283-8f16-66e67e633086",
               "State": "create-complete"
           },
           {
               "Cidr": "18.97.16.0/24",
               "Asns": ["77221", "13446"],
               "PermitMoreSpecificAnnouncements": false,
               "MaxLength": 24,
               "LatestDeltaId": "0130c368-1f8c-4283-8f16-66e67e633086",
               "State": "create-complete"
           }
       ]
   }
   ```

1. **Filtrar por un prefijo específico.**

   ```
   aws ec2 get-ipam-routing-policy-registrations --region us-east-1 \
       --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0 \
       --cidr 18.96.0.0/14
   ```

## Paso 6: Configurar las alarmas de CloudWatch para detectar anomalías en las rutas
<a name="tutorials-byoip-bgp-security-step6"></a>

IPAM publica las métricas de CloudWatch para cada ruta BYOIP en la cuenta de IPAM global. La métrica `RoaExpiration` se publica en el espacio de nombres `AWS/IPAM` con las dimensiones `Cidr`, `RoaPrefix`, `Asn` y `MaxLength`.


| Tipo | Nombre | Descripción | 
| --- | --- | --- | 
| Métrica | Expiración de la ROA | Número de días que faltan para que expire la ROA | 
| Dimensión | Asn | ASN para el prefijo | 
| Dimensión | Cidr | CIDR incorporado a través de BYOIP | 
| Dimensión | MaxLength | MaxLength de la ROA | 
| Dimensión | RoaPrefix | Prefijo de la ROA | 

Como `RoaExpiration` indica el número de días que quedan hasta que caduque la ROA, emita una alarma cuando el valor caiga hasta su umbral o por debajo de él. Especifique las cuatro dimensiones para centrarse en una única ROA. Cree la alarma en la misma cuenta y región donde se publican las métricas.

```
aws cloudwatch put-metric-alarm --region us-east-1 \
    --alarm-name "IPAM-RoaExpiration-203.0.113.0-24" \
    --alarm-description "Alert when the ROA for 203.0.113.0/24 is within 30 days of expiration" \
    --namespace "AWS/IPAM" \
    --metric-name RoaExpiration \
    --dimensions Name=Cidr,Value=203.0.113.0/24 Name=RoaPrefix,Value=203.0.113.0/24 Name=Asn,Value=64512 Name=MaxLength,Value=24 \
    --statistic Minimum \
    --period 86400 \
    --evaluation-periods 1 \
    --threshold 30 \
    --comparison-operator LessThanOrEqualToThreshold \
    --treat-missing-data notBreaching \
    --alarm-actions arn:aws:sns:us-east-1:123456789012:roa-expiry-notifications
```

## Eliminación
<a name="tutorials-byoip-bgp-security-cleanup"></a>

Para eliminar los recursos de la RPKI delegados:

1. Elimine todos los registros de políticas de enrutamiento.

1. Desasocie la Asociación de Registros de Internet.

1. (Opcional) Elimine la autorización de su portal RIR.

**importante**  
Al eliminar una asociación de registros de Internet, se eliminan todas las ROA administradas por AWS para esa asociación. Asegúrese de que sus rutas tengan una cobertura de ROA alternativa antes de desasociarse.

## Recursos relacionados
<a name="tutorials-byoip-bgp-security-related"></a>
+ [Supervise la protección de rutas BGP](monitor-bgp-route-security.md)
+ [Tutorial: incorpore sus direcciones IP a IPAM](tutorials-byoip-ipam.md)
+ [Tutorial: Traer el ASN a IPAM](tutorials-byoasn.md)
+ [Supervisar IPAM con Amazon CloudWatch](cloudwatch-ipam.md)