Usar políticas de VPC endpoint para APIs privadas no API Gateway - Amazon API Gateway

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar políticas de VPC endpoint para APIs privadas no API Gateway

É possível melhorar a segurança das APIs privadas configurando o API Gateway para usar um VPC endpoint de interface. Os endpoints de interface são desenvolvidos pelo AWS PrivateLink, uma tecnologia que permite acessar de forma privada os serviços da AWS usando endereços IP privados. Para obter mais informações sobre a criação de endpoints da VPC, consulte Criação de um endpoint de interface.

Uma política de VPC endpoint é uma política de recurso do IAM que pode ser anexada a um VPC endpoint de interface para controlar o acesso ao endpoint. Para obter mais informações, consulte Controlar o acesso a serviços com endpoints da VPC. É possível usar uma política de endpoint para restringir o tráfego que vai da sua rede interna para acessar as APIs privadas. É possível optar por permitir ou não o acesso a APIs privadas específicas que podem ser acessadas por meio do VPC endpoint.

As políticas de VPC endpoint podem ser usadas com políticas de recurso do API Gateway. A política de recurso é usada para especificar quais principais podem acessar a API. A política de endpoint especifica quais APIs privadas podem ser chamadas pelo VPC endpoint. Para obter mais informações sobre políticas de recursos, consulte Controlar o acesso a uma API com políticas de recursos do API Gateway.

Política do endpoint da VPC

  • Se uma política restringir as entidades principais do IAM, você deverá definir o método authorizationType como AWS_IAM ou NONE.

  • A identidade do invocador é avaliada com base no valor do cabeçalho Authorization. Dependendo do authorizationType, isso pode causar um erro 403 IncompleteSignatureException ou 403 InvalidSignatureException. A tabela a seguir mostra os valores do cabeçalho Authorization de cada authorizationType.

    authorizationType

    Cabeçalho Authorization avaliado?

    Valores do cabeçalho Authorization permitidos

    NONE com a política padrão de acesso total Não Não aprovado
    NONE com uma política de acesso personalizada Sim Deve ser um valor SigV4 válido
    IAM Sim Deve ser um valor SigV4 válido
    CUSTOM ou COGNITO_USER_POOLS Não Não aprovado

Exemplos de política de VPC endpoint

É possível criar políticas para endpoints do Amazon Virtual Private Cloud para o Amazon API Gateway nas quais você pode especificar:

  • O principal que pode executar ações.

  • As ações que podem ser executadas.

  • Os recursos que podem ter ações executadas neles.

Para anexar a política ao VPC endpoint, será necessário usar o console da VPC. Para obter mais informações, consulte Controlar o acesso a serviços com endpoints da VPC.

Exemplo 1: Política de VPC endpoint que concede acesso a duas APIs

O exemplo de política a seguir concede acesso somente a duas APIs específicas por meio do VPC endpoint ao qual a política está anexada.

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

Exemplo 2: Política de VPC endpoint que concede acesso a métodos GET

O exemplo de política a seguir concede aos usuários acesso a métodos GET para uma API específica por meio do VPC endpoint ao qual a política está anexada.

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

Exemplo 3: Política de VPC endpoint que concede acesso a uma API específica para um usuário específico

O exemplo de política a seguir concede acesso a uma API específica para um usuário específico por meio do VPC endpoint ao qual a política está anexada.

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