Control de acceso a API mediante políticas de IAM
Si utiliza políticas de IAM para controlar el acceso a los Servicios de AWS según las direcciones IP, es posible que deba actualizar las políticas para incluir los rangos de direcciones IPv6. En esta guía se explican las diferencias entre IPv4 e IPv6 y se describe cómo actualizar las políticas de IAM para que admitan ambos protocolos. La implementación de estos cambios permite mantener un acceso seguro a sus recursos de AWS, sin dejar de ser compatible con IPv6.
¿Qué es IPv6?
IPv6 es el estándar IP de próxima generación destinado a reemplazar eventualmente al IPv4. La versión anterior, IPv4, utilizaba un esquema de direccionamiento de 32 bits para admitir 4300 millones de dispositivos. En cambio, IPv6 utiliza un direccionamiento de 128 bits para admitir aproximadamente 340 billones de billones de billones de billones (es decir, 2 a la 128.ª potencia) de dispositivos.
Para obtener más información, consulte la Página web de VPC IPv6
Los siguientes son ejemplos de direcciones IPv6:
2001:cdba:0000:0000:0000:0000:3257:9652 # This is a full, unabbreviated IPv6 address. 2001:cdba:0:0:0:0:3257:9652 # The same address with leading zeros in each group omitted 2001:cdba::3257:965 # A compressed version of the same address.
Políticas de doble pila de IAM (IPv4 e IPv6)
Puede utilizar las políticas de IAM para controlar el acceso a las API de Secrets Manager e impedir que las direcciones IP que estén fuera del rango configurado puedan acceder a las API de Secrets Manager.
El punto de conexión de doble pila secretsmanager.{region}.amazonaws.com para las API de Secrets Manager es compatible con IPv6 e IPv4.
Si necesita admitir tanto IPv4 como IPv6, actualice las políticas de filtrado de la dirección IP para gestionar las direcciones IPv6. De lo contrario, es posible que no pueda conectarse a Secrets Manager por una IPv6.
¿Quién debe realizar este cambio?
Este cambio afectará si utiliza el direccionamiento dual con políticas que contienen aws:sourceIp. El direccionamiento doble significa que la red admite IPv4 e IPv6.
Si utiliza el direccionamiento dual, debe actualizar las políticas de IAM que utilizan actualmente las direcciones de formato IPv4 para incluir las direcciones de formato IPv6.
¿Quién no debería realizar este cambio?
Este cambio no afectará si solo utiliza redes IPv4.
Agregar IPv6 a una política de IAM
Las políticas de IAM utilizan la clave de condición aws:SourceIp para controlar el acceso de direcciones IP específicas. Si su red utiliza direcciones duales (IPv4 e IPv6), actualice las políticas de IAM para incluir los rangos de direcciones IPv6.
En el elemento Condition de sus políticas, utilice los operadores IpAddress y NotIpAddress para las condiciones de la dirección IP. No utilice operadores de cadenas, ya que no pueden gestionar los distintos formatos de direcciones IPv6 válidos.
Estos ejemplos utilizan aws:SourceIp. Para las VPC, use aws:VpcSourceIp en su lugar.
La siguiente es la política de referencia Denegación del acceso a AWS según el IP de origen de la Guía del usuario de IAM. El NotIpAddress del elemento Condition enumera dos rangos de direcciones IPv4, 192.0.2.0/24 y 203.0.113.0/24, a los que se denegará el acceso a la API.
Para actualizar esta política, cambie el elemento de Condition para incluir los rangos de direcciones IPv6 2001:DB8:1234:5678::/64 y 2001:cdba:3257:8593::/64.
nota
No elimine las direcciones IPv4 que existan. Se necesitan para la compatibilidad con versiones anteriores.
"Condition": { "NotIpAddress": { "aws:SourceIp": [ "192.0.2.0/24", <<DO NOT REMOVE existing IPv4 address>> "203.0.113.0/24", <<DO NOT REMOVE existing IPv4 address>>"2001:DB8:1234:5678::/64", <<New IPv6 IP address>> "2001:cdba:3257:8593::/64" <<New IPv6 IP address>>] }, "Bool": { "aws:ViaAWSService": "false" } }
Para actualizar esta política para una VPC, utilice aws:VpcSourceIp en lugar de aws:SourceIp:
"Condition": { "NotIpAddress": { "aws:VpcSourceIp": [ "10.0.2.0/24", <<DO NOT REMOVE existing IPv4 address>> "10.0.113.0/24", <<DO NOT REMOVE existing IPv4 address>>"fc00:DB8:1234:5678::/64", <<New IPv6 IP address>> "fc00:cdba:3257:8593::/64" <<New IPv6 IP address>>] }, "Bool": { "aws:ViaAWSService": "false" } }
Verificar que el cliente admita IPv6
Si utiliza el punto de conexión secretsmanager.{region}.amazonaws.com, compruebe que se puede conectar a él. En los siguientes pasos, se describe cómo realizar la verificación.
Este ejemplo usa Linux y la versión 8.6.0 de curl, así como el servicio de AWS Secrets Manager, que cuenta con puntos de conexión habilitados para IPv6 ubicados en el punto de conexión amazonaws.com.
nota
secretsmanager.{region}.amazonaws.com difiere de la convención de nomenclatura típica de doble pila. Para ver la lista completa de puntos de conexión de Secrets Manager, consulte AWS Secrets ManagerPuntos de conexión de .
Cambie la Región de AWS a la misma región en la que se encuentra el servicio. En este ejemplo, utilizamos el punto de conexión us-east-1 del Este de EE. UU. (Norte de Virginia)
-
Utilice el siguiente comando
digpara determinar si el punto de conexión se resuelve con una dirección IPv6.$dig +short AAAA secretsmanager.us-east-1.amazonaws.com > 2600:1f18:e2f:4e05:1a8a:948e:7c08:c1c3 -
Utilice el siguiente comando
curlpara determinar si la red del cliente puede establecer una conexión de IPv6. Un código de respuesta 404 indica que la conexión se realizó correctamente, mientras que un código de respuesta 0 significa que la conexión falló.$curl --ipv6 -o /dev/null --silent -w "\nremote ip: %{remote_ip}\nresponse code: %{response_code}\n" https://secretsmanager.us-east-1.amazonaws.com > remote ip: 2600:1f18:e2f:4e05:1a8a:948e:7c08:c1c3 > response code: 404
Si se identificó una dirección IP remota y el código de respuesta no es 0, se estableció correctamente una conexión de red con el punto de conexión mediante IPv6. La IP remota debe ser una dirección IPv6 porque el sistema operativo debe seleccionar el protocolo válido para el cliente.
Si la dirección IP remota está en blanco o el código de respuesta es 0, la red del cliente o la ruta de red al punto de conexión es únicamente IPv4. Puede verificar esta configuración con el siguiente comando de curl.
$curl -o /dev/null --silent -w "\nremote ip: %{remote_ip}\nresponse code: %{response_code}\n" https://secretsmanager.us-east-1.amazonaws.com > remote ip: 3.123.154.250 > response code: 404