Uso de políticas de punto de conexión de VPC para API privadas en API Gateway
Para mejorar la seguridad de la API privada, puede crear una política de punto de conexión de VPC. Una política de punto de conexión de VPC es una política de recursos de IAM que se adjunta a un punto de conexión de VPC. Para obtener más información, consulte Control del acceso a los servicios con Puntos de conexión de VPC.
Es posible que desee crear una política de punto de conexión de VPC para realizar las siguientes tareas.
Permita que solo determinadas organizaciones o recursos accedan al punto de conexión de VPC e invoquen la API.
Use una sola política y evite las políticas basadas en sesiones o roles para controlar el tráfico a la API.
Refuerce el perímetro de seguridad de la aplicación al migrar de en las instalaciones a AWS.
Consideraciones de la política del punto de conexión de VPC
A continuación, se incluyen algunas consideraciones para la política de puntos de conexión de VPC:
-
La identidad del invocador se evalúa en función del valor
Authorization
del encabezado. Primero se evalúa la política de puntos de conexión de VPC y, a continuación, API Gateway evalúa la solicitud en función del tipo de autorización configurado en la solicitud del método. En la siguiente tabla se muestra cómo se evalúa la política de puntos de conexión de VPC en función del contenido del valor del encabezadoAuthorization
.Contenido del valor del encabezado
Authorization
Cómo se evalúa la política de punto de conexión de VPC
Sin contenido El invocador se evalúa como un usuario anónimo Firma SigV4 o SigV4a válida El invocador se evalúa como la identidad de IAM autenticada a partir de la firma Firma SigV4 o SigV4a no válida API Gateway deniega el acceso Información de autorización que no es SigV4, como un token de portador El invocador se evalúa como un usuario anónimo -
Si el control de acceso depende del uso de un token de portador, como un autorizador de Lambda o Amazon Cognito, puede controlar el perímetro de seguridad mediante las propiedades del recurso.
-
Si los controles de autorización utilizan la autorización de IAM, puede controlar el perímetro de seguridad mediante las propiedades del recurso y las propiedades de la entidad principal.
-
Las políticas de punto de conexión de VPC se pueden utilizar junto con políticas de recursos de API Gateway. La política de recursos de API Gateway especifica qué entidades principales pueden acceder a la API. La política de puntos de conexión especifica quién puede acceder a la VPC y qué API se puede llamar desde el punto de conexión de VPC. La API privada necesita una política de recursos pero no necesita crear una política de punto de conexión de VPC personalizada.
Ejemplos de políticas de puntos de conexión de VPC
Puede crear políticas para los puntos de conexión de Amazon Virtual Private Cloud para Amazon API Gateway en las que puede especificar lo siguiente.
-
La entidad principal que puede realizar acciones.
-
Las acciones que se pueden realizar.
-
Los recursos en los que se pueden realizar acciones.
Esto puede depender del contenido del encabezado de autorización. Para obtener más información, consulte Consideraciones de la política del punto de conexión de VPC. Para obtener ejemplos de políticas adicionales, consulte Data perimeter policy examples
Para asociar la política al punto de conexión de VPC, tendrá que utilizar la consola de VPC. Para obtener más información, consulte Control del acceso a los servicios con Puntos de conexión de VPC.
Ejemplo 1: Política de punto de conexión de VPC que otorga acceso a dos API
El siguiente ejemplo de política otorga acceso solo a dos API específicas a través del punto de conexión de VPC al que está asociado la política.
{ "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:
us-east-1
:123412341234
:a1b2c3d4e5
/*", "arn:aws:execute-api:us-east-1
:123412341234
:aaaaa11111
/*" ] } ] }
Ejemplo 2: Política de punto de conexión de VPC que otorga acceso a métodos GET
El siguiente ejemplo de política otorga acceso a los usuarios a los métodos GET
para una API específica a través del punto de conexión de VPC al que está asociada la política.
{ "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:
us-east-1
:123412341234
:a1b2c3d4e5
/stageName
/GET/*" ] } ] }
Ejemplo 3: Política de punto de conexión de VPC que otorga acceso a un usuario específico a una API específica
El siguiente ejemplo de política otorga acceso a un usuario específico a una API específica a través del punto de conexión de VPC al que está asociada la política.
En este caso, como la política restringe el acceso a entidades principales de IAM específicas, debe establecer el authorizationType
del método en AWS_IAM
o NONE
.
{ "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::123412341234:user/
MyUser
" ] }, "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1
:123412341234
:a1b2c3d4e5
/*" ] } ] }
Ejemplo 4: Política de punto de conexión de VPC que otorga a los usuarios acceso a un nombre de dominio personalizado específico y a todas las API asignadas al dominio
El siguiente ejemplo de política otorga acceso a los usuarios a un determinado nombre de dominio personalizado para API privadas a través del punto de conexión de VPC al que está asociada la política. Con esta política, siempre que el usuario haya creado una asociación de acceso a nombre de dominio entre el punto de conexión de VPC y el nombre de dominio personalizado y se le otorgue acceso para invocar el nombre de dominio personalizado y cualquier API privada asignada al nombre de dominio personalizado, el usuario puede invocar cualquier API asignada a este nombre de dominio personalizado. Para obtener más información, consulte Nombres de dominio personalizados para API privadas en API Gateway.
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "execute-api:Invoke", "Resource": [ "*" ], "Condition": { "ArnEquals": { "execute-api:viaDomainArn": "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.test.com+f4g5h6", } } } ] }
Ejemplo 5: Política de punto de conexión de VPC que otorga o deniega el acceso a determinadas API y recursos de dominio
La siguiente política de ejemplo otorga a los usuarios acceso a determinadas API y recursos de dominio. Con esta política, siempre que el usuario haya creado una asociación de acceso a nombre de dominio entre el punto de conexión de VPC y el nombre de dominio personalizado y se le otorgue acceso para invocar el nombre de dominio personalizado y cualquier API privada asignada al nombre de dominio personalizado, el usuario puede invocar las API privadas y los recursos de dominio permitidos. Para obtener más información, consulte Nombres de dominio personalizados para API privadas en API Gateway.
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.test.com+f4g5h6", "arn:aws:execute-api:us-west-2:111122223333:a1b2c3d4e5/*" ] }, { "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:us-west-2:111122223333:a1b2c3d4e5/admin/*", "arn:aws:execute-api:us-west-2:111122223333:bcd123455/*" ] } ] }
Ejemplo 6: política de punto de conexión de VPC que concede o deniega el acceso a entidades principales y recursos que pertenecen a una organización
La siguiente política de ejemplo concede acceso a entidades principales y recursos que pertenecen a una organización.