Utilizar políticas de punto de enlace de la VPC para API privadas en API Gateway - Amazon API Gateway

Utilizar políticas de punto de enlace de la 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 la VPC.

Es posible que quiera crear una política de punto de conexión de VPC para lo siguiente:

  • 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

  • La identidad del invocador se evalúa en función del valor Authorization del encabezado. En función de su authorizationType, esto puede provocar un error 403 IncompleteSignatureException o 403 InvalidSignatureException. En la tabla siguiente se muestran los valores del encabezado Authorization para cada parámetro authorizationType.

    authorizationType

    ¿Encabezado Authorization evaluado?

    Valores del encabezado Authorization permitidos

    NONE con la política de acceso completa predeterminada No No aprobado
    NONE con una política de acceso personalizada Debe ser un valor de SigV4 válido
    IAM Debe ser un valor de SigV4 válido
    CUSTOM o COGNITO_USER_POOLS No No aprobado
  • Si una política restringe el acceso a una entidad principal de IAM específica, como arn:aws:iam::account-id:role/developer, debe establecer el authorizationType del método de la API en AWS_IAM o NONE. Para obtener más instrucciones sobre cómo configurar el authorizationType para un método, consulte Métodos de API de REST en API Gateway.

  • Las políticas de punto de enlace de la VPC se pueden utilizar junto con las 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 enlace de la VPC

Puede crear políticas para los puntos de enlace de Amazon Virtual Private Cloud para Amazon API Gateway en las que puede especificar:

  • La entidad principal que puede realizar acciones.

  • Las acciones que se pueden realizar.

  • Los recursos en los que se pueden realizar acciones.

Para asociar la política al punto de enlace de la 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 la VPC.

Ejemplo 1: Concesión de acceso a la política de punto de enlace de la VPC a dos API

El siguiente ejemplo de política concede acceso solo a dos API específicas a través del punto de enlace de la 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 enlace de la VPC que concede acceso a métodos GET

El siguiente ejemplo de política concede acceso a los usuarios a los métodos GET para una API específica a través del punto de enlace de la VPC a la que la política está asociada.

{ "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1:123412341234:a1b2c3d4e5/stageName/GET/*" ] } ] }

Ejemplo 3: Concesión de acceso al usuario de una política de punto de enlace de la VPC a una API específica

El siguiente ejemplo de política concede acceso a un usuario específico a una API específica a través del punto de enlace de la VPC a la que la política está asociada.

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/*" ] } ] }