

# Segurança no Amazon API Gateway
<a name="security"></a>

A segurança da nuvem na AWS é a nossa maior prioridade. Como cliente da AWS, você contará com um data center e uma arquitetura de rede criados para atender aos requisitos das organizações com as maiores exigências de segurança.

A segurança é uma responsabilidade compartilhada entre a AWS e você. O [Modelo de Responsabilidade Compartilhada](https://aws.amazon.com/compliance/shared-responsibility-model/) descreve isso como segurança *da* nuvem e segurança *na* nuvem:
+ **Segurança da nuvem**: a AWS é responsável pela proteção da infraestrutura que executa serviços AWS na Nuvem AWS. A AWS também fornece serviços que podem ser usados com segurança. Auditores de terceiros testam e verificam regularmente a eficácia da nossa segurança como parte dos [Programas de conformidade da AWS](https://aws.amazon.com/compliance/programs/). Para saber mais sobre os programas de conformidade que se aplicam ao Amazon API Gateway; consulte os [Serviços da AWS no escopo por programa de conformidade](https://aws.amazon.com/compliance/services-in-scope/).
+ **Segurança na nuvem**: sua responsabilidade é determinada pelo serviço da AWS que você usa. Você também é responsável por outros fatores, incluindo a confidencialidade de seus dados, os requisitos da empresa e as leis e regulamentos aplicáveis. 

Esta documentação ajuda você a entender como aplicar o modelo de responsabilidade compartilhada ao usar o API Gateway. Os tópicos a seguir mostram como configurar o API Gateway para atender aos seus objetivos de segurança e de conformidade. Você também aprenderá a usar outros serviços da AWS que ajudam a monitorar e proteger os recursos do API Gateway. 

Para obter mais informações, consulte [Visão geral de segurança no Amazon API Gateway](https://d1.awsstatic.com/whitepapers/api-gateway-security.pdf).

**Topics**
+ [Proteção de dados no Amazon API Gateway](data-protection.md)
+ [Gerenciamento de identidade e acesso para o Amazon API Gateway](security-iam.md)
+ [Registro em log e monitoramento no Amazon API Gateway](security-monitoring.md)
+ [Validação de conformidade do Amazon API Gateway](apigateway-compliance.md)
+ [Resiliência no Amazon API Gateway](disaster-recovery-resiliency.md)
+ [Segurança de infraestrutura no Amazon API Gateway](infrastructure-security.md)
+ [Análise de vulnerabilidades no Amazon API Gateway](vulnerability-analysis.md)
+ [Melhores práticas de segurança no Amazon API Gateway](security-best-practices.md)

# Proteção de dados no Amazon API Gateway
<a name="data-protection"></a>

O [modelo de responsabilidade compartilhada](https://aws.amazon.com/compliance/shared-responsibility-model/) da AWS se aplica à proteção de dados no Amazon API Gateway. Conforme descrito nesse modelo, a AWS é responsável por proteger a infraestrutura global que executa toda a Nuvem AWS. Você é responsável por manter o controle sobre seu conteúdo hospedado nessa infraestrutura. Você também é responsável pelas tarefas de configuração e gerenciamento de segurança dos Serviços da AWS que usa. Para obter mais informações sobre a privacidade de dados, consulte as [Perguntas Frequentes sobre Privacidade de Dados.](https://aws.amazon.com/compliance/data-privacy-faq/). Para obter mais informações sobre a proteção de dados na Europa, consulte a postagem do blog [AWS Shared Responsibility Model and GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) no *Blog de segurança da AWS*.

Para fins de proteção de dados, recomendamos que você proteja as credenciais da Conta da AWS e configure as contas de usuário individuais com Centro de Identidade do AWS IAM ou AWS Identity and Access Management (IAM). Dessa maneira, cada usuário receberá apenas as permissões necessárias para cumprir suas obrigações de trabalho. Recomendamos também que você proteja seus dados das seguintes formas:
+ Use uma autenticação multifator (MFA) com cada conta.
+ Use SSL/TLS para se comunicar com os recursos da AWS. Exigimos TLS 1.2 e recomendamos TLS 1.3.
+ Configure a API e atividade do usuário logando com AWS CloudTrail. Para obter mais informações sobre como usar as trilhas do CloudTrail para capturar atividades da AWS, consulte [Working with CloudTrail trails](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) no *Guia do Usuário do AWS CloudTrail*.
+ Use as soluções de criptografia AWS, juntamente com todos os controles de segurança padrão em Serviços da AWS.
+ Use serviços gerenciados de segurança avançada, como o Amazon Macie, que ajuda a localizar e proteger dados sigilosos armazenados no Amazon S3.
+ Se você precisar de módulos criptográficos validados pelo FIPS 140-3 ao acessar a AWS por meio de uma interface de linha de comando ou uma API, use um endpoint do FIPS. Para obter mais informações sobre os endpoints FIPS disponíveis, consulte [Federal Information Processing Standard (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

É altamente recomendável que nunca sejam colocadas informações de identificação confidenciais, como endereços de e-mail dos seus clientes, em marcações ou campos de formato livre, como um campo **Nome**. Isso inclui quando você trabalha com o API Gateway ou outros Serviços da AWS usando o console, a API, a AWS CLI ou os AWS SDKs. Quaisquer dados inseridos em tags ou campos de texto de formato livre usados para nomes podem ser usados para logs de faturamento ou de diagnóstico. Se você fornecer um URL para um servidor externo, recomendemos fortemente que não sejam incluídas informações de credenciais no URL para validar a solicitação a esse servidor.

# Criptografia de dados no Amazon API Gateway
<a name="data-protection-encryption"></a>

Proteção de dados refere-se à proteção de dados em trânsito (à medida que são transferidos para e do API Gateway) e em repouso (enquanto estão armazenados na AWS).

## Criptografia de dados em repouso no Amazon API Gateway
<a name="data-protection-at-rest"></a>

Se você optar por habilitar o armazenamento em cache para uma API REST, poderá habilitar a criptografia de cache. Para saber mais, consulte [Configurações de cache para APIs REST no API Gateway](api-gateway-caching.md).

Consulte mais informações sobre proteção de dados na publicação do blog [AWS Shared Responsibility Model and GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) no *Blog de segurança da AWS*.

### Criptografia e decodificação da chave privada do seu certificado
<a name="private-key"></a>

Quando você cria um nome de domínio personalizado para APIs privadas, seu certificado do ACM e chave privada são criptografados usando uma chave do KMS gerenciada pela AWS que tem o alias **aws/acm**. Você pode ver o ID da chave com esse alias no console do AWS KMS, **Chaves gerenciadas pela AWS**.

O API Gateway não acessa diretamente seus recursos do ACM. Ele usa o AWS TLS Connection Manager para proteger e acessar as chaves privadas do seu certificado. Quando você usa seu certificado do ACM para criar um nome de domínio personalizado do API Gateway para APIs privadas, o API Gateway associa seu certificado ao AWS TLS Connection Manager. Isso é feito criando uma concessão no AWS KMS em relação à sua chave gerenciada pela AWS com o prefixo **aws/acm**. Uma concessão é um instrumento de política que permite que o TLS Connection Manager usem chaves do KMS em operações de criptografia. A concessão permite que a entidade principal autorizada (TLS Connection Manager) chame as operações de concessão especificadas na chave do KMS para decifrar a chave privada do seu certificado. Em seguida, o TLS Connection Manager usa o certificado e a chave privada descriptografada (texto simples) para estabelecer uma conexão segura (sessão SSL/TLS) com clientes de serviços do API Gateway. Quando o certificado é desassociado de um nome de domínio personalizado do API Gateway para APIs privadas, a concessão é removida.

Se você quiser remover o acesso à chave do KMS, recomendamos substituir ou excluir o certificado do serviço usando o Console de gerenciamento da AWS ou o comando `update-service` na AWS CLI.

### Contexto de criptografia para o API Gateway
<a name="encryption-context"></a>

[Contexto de criptografia](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) é um conjunto opcional de pares de chave/valor que pode conter mais informações contextuais sobre o possível uso da chave privada. O AWS KMS vincula o contexto de criptografia aos dados criptografados e usa dados adicionais autenticados para permitir criptografia autenticada.

Quando suas chaves TLS são usadas com o API Gateway e o TLS Connection Manager, o nome do serviço API Gateway é incluído no contexto de criptografia usado para criptografar sua chave em repouso. A fim de verificar para qual nome de domínio personalizado do API Gateway seu certificado e sua chave privada estão sendo usados, visualize o contexto de criptografia em seus logs do CloudTrail, conforme apresentado na próxima seção, ou examine a guia **Recursos associados** no console do ACM.

Para descriptografar os dados, o mesmo contexto de criptografia é incluído na solicitação. O API Gateway usa o mesmo contexto de criptografia em todas as operações criptográficas do AWS KMS, no qual a chave é `aws:apigateway:arn` e o valor é o nome do recurso da Amazon (ARN) do recurso `PrivateDomainName` do API Gateway.

O seguinte exemplo mostra o contexto de criptografia na saída de uma operação como `CreateGrant`:

```
"constraints": {
"encryptionContextEquals": {
"aws:acm:arn": "arn:aws:acm:us-west-2:859412291086:certificate/9177097a-f0ae-4be1-93b1-19f911ea4f88",
"aws:apigateway:arn": "arn:aws:apigateway:us-west-2:859412291086:/domainnames/denytest-part1.pdx.sahig.people.aws.dev+cbaeumzjhg"
}
},
"operations": [
"Decrypt"
],
"granteePrincipal": "tlsconnectionmanager.amazonaws.com"
```

## Criptografia de dados em trânsito no Amazon API Gateway
<a name="data-protection-in-transit"></a>

As APIs criadas com o Amazon API Gateway expõem apenas endpoints HTTPS. O API Gateway não é compatível com endpoints não criptografados (HTTP).

O API Gateway gerencia os certificados dos endpoints `execute-api` padrão. Ao configurar um nome de domínio personalizado, [você especifica o certificado para o nome de domínio](how-to-custom-domains.md#custom-domain-names-certificates). Como prática recomendada, não [fixe certificados](https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-pinning.html).

Para obter maior segurança, é possível escolher uma versão mínima do protocolo TLS (Transport Layer Security) a ser aplicada ao seu domínio personalizado do API Gateway. As APIs WebSocket e HTTP são compatíveis apenas com TLS 1.2. Para saber mais, consulte [Escolher uma política de segurança para o domínio personalizado no API Gateway](apigateway-custom-domain-tls-version.md).

Também é possível configurar uma distribuição do Amazon CloudFront com um certificado SSL personalizado em sua conta e usá-la com APIs regionais. Depois, você pode configurar a política de segurança para a distribuição do CloudFront com TLS 1.1 ou superior com base nos seus requisitos de segurança e conformidade.

Para obter mais informações sobre proteção de dados, consulte [Proteger as APIs REST no API Gateway](rest-api-protect.md) e a publicação do blog [AWS Shared Responsibility Model and GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) no *Blog de segurança da AWS*.

# Privacidade do tráfego entre redes
<a name="security-traffic-privacy"></a>

Usando o Amazon API Gateway, é possível criar APIs REST privadas que podem ser acessadas somente a partir da Amazon Virtual Private Cloud (VPC). A VPC usa um [VPC endpoint de interface](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html), que é uma interface de rede de endpoint criada na VPC. Com as [políticas de recursos](apigateway-private-api-create.md#apigateway-private-api-set-up-resource-policy), você pode permitir ou negar o acesso à sua API de alguns VPCs e VPC endpoints, incluindo nas contas da AWS. Cada endpoint pode ser usado para acessar várias APIs privadas. Você também pode usar o Direct Connect para estabelecer uma conexão a partir de uma rede local para a VPC da Amazon e acessar sua API privada nessa conexão. O tráfego para a API privada sempre usa conexões seguras e não deixa a rede da Amazon; ele é isolado da Internet pública. Para saber mais, consulte [APIs REST privadas no API Gateway](apigateway-private-apis.md).

# Gerenciamento de identidade e acesso para o Amazon API Gateway
<a name="security-iam"></a>

O AWS Identity and Access Management (IAM) é um serviço da AWS service (Serviço da AWS) que ajuda um administrador a controlar com segurança o acesso aos recursos da AWS. Os administradores do IAM controlam quem pode ser *autenticado* (conectado) e *autorizado* (ter permissões) a usar recursos do API Gateway. O IAM é um AWS service (Serviço da AWS) que pode ser usado sem custo adicional.

**Topics**
+ [Público](#security_iam_audience)
+ [Autenticação com identidades](#security_iam_authentication)
+ [Gerenciar o acesso usando políticas](#security_iam_access-manage)
+ [Como o Amazon API Gateway funciona com o IAM](security_iam_service-with-iam.md)
+ [Exemplos de políticas baseadas em identidade do Amazon API Gateway](security_iam_id-based-policy-examples.md)
+ [Exemplos de políticas baseadas em recursos do Amazon API Gateway](security_iam_resource-based-policy-examples.md)
+ [Solução de problemas de identidade e acesso do Amazon API Gateway](security_iam_troubleshoot.md)
+ [Usar funções vinculadas ao serviço para o API Gateway](using-service-linked-roles.md)

## Público
<a name="security_iam_audience"></a>

A forma como você usa o AWS Identity and Access Management (IAM) difere com base em seu perfil:
+ **Usuário do serviço**: solicite permissões ao seu administrador se você não conseguir acessar os atributos (consulte [Solução de problemas de identidade e acesso do Amazon API Gateway](security_iam_troubleshoot.md)).
+ **Administrador do serviço**: determine o acesso do usuário e envie solicitações de permissão (consulte [Como o Amazon API Gateway funciona com o IAM](security_iam_service-with-iam.md))
+ **Administrador do IAM**: escreva políticas para gerenciar o acesso (consulte [Exemplos de políticas baseadas em identidade do Amazon API Gateway](security_iam_id-based-policy-examples.md))

## Autenticação com identidades
<a name="security_iam_authentication"></a>

A autenticação é a forma como fazer login na AWS usando suas credenciais de identidade. Você precisa se autenticar como o Usuário raiz da conta da AWS, como um usuário do IAM ou assumindo um perfil do IAM.

Você pode fazer login como uma identidade federada usando credenciais de uma fonte de identidade, como o Centro de Identidade do AWS IAM (Centro de Identidade do IAM), autenticação única ou credenciais do Google/Facebook. Para ter mais informações sobre como fazer login, consulte [Como fazer login em sua Conta da AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) no *Guia do usuário do Início de Sessão da AWS*.

Para acesso programático, a AWS oferece um SDK e uma CLI para assinar solicitações criptograficamente. Para ter mais informações, consulte [AWS Signature Version 4 para solicitações de API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) no *Guia do usuário do IAM*.

### Usuário-raiz Conta da AWS
<a name="security_iam_authentication-rootuser"></a>

 Ao criar uma Conta da AWS, você começa com uma identidade de login única chamada *usuário-raiz* da Conta da AWS, que tem acesso total a todos os recursos e Serviços da AWS. É altamente recomendável não usar o usuário-raiz em tarefas diárias. Consulte as tarefas que exigem credenciais de usuário-raiz em [Tarefas que exigem credenciais de usuário-raiz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) no *Guia do usuário do IAM*. 

### Usuários e grupos do IAM
<a name="security_iam_authentication-iamuser"></a>

Um *[usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* é uma identidade com permissões específicas para uma única pessoa ou aplicação. É recomendável usar credenciais temporárias, em vez de usuários do IAM com credenciais de longo prazo. Para saber mais, consulte [Exigir que os usuários humanos usem a federação com um provedor de identidade para acessar a AWS usando credenciais temporárias](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) no *Guia do usuário do IAM*.

Um [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) especifica um conjunto de usuários do IAM e facilita o gerenciamento de permissões para grandes conjuntos de usuários. Para ter mais informações, consulte [Casos de uso de usuários do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) no *Guia do usuário do IAM*.

### Perfis do IAM
<a name="security_iam_authentication-iamrole"></a>

Uma *[perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* é uma identidade com permissões específicas que oferece credenciais temporárias. É possível assumir um perfil [alternando de um usuário para um perfil do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) ou chamando uma operação de API AWS CLI ou AWS. Para saber mais, consulte [Métodos para assumir um perfil](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) no *Manual do usuário do IAM*.

Os perfis do IAM são úteis para acesso de usuário federado, permissões de usuário do IAM temporárias, acesso entre contas, acesso entre serviços e aplicações em execução no Amazon EC2. Consulte mais informações em [Acesso a recursos entre contas no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) no *Guia do usuário do IAM*.

## Gerenciar o acesso usando políticas
<a name="security_iam_access-manage"></a>

Você controla o acesso na AWS criando políticas e anexando-as a identidades ou recursos da AWS. Uma política define permissões quando associada a uma identidade ou a um recurso. A AWS avalia essas políticas quando a entidade principal faz uma solicitação. A maioria das políticas é armazenada na AWS como documentos JSON. Para ter mais informações sobre documentos de política JSON, consulte [Visão geral das políticas JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) no *Guia do usuário do IAM*.

Por meio de políticas, os administradores especificam quem tem acesso a que, definindo qual **entidade principal** pode realizar **ações** em quais **recursos** e sob quais **condições**.

Por padrão, usuários e perfis não têm permissões. Um administrador do IAM cria políticas do IAM e as adiciona aos perfis, os quais os usuários podem então assumir. As políticas do IAM definem permissões, independentemente do método usado para realizar a operação.

### Políticas baseadas em identidade
<a name="security_iam_access-manage-id-based-policies"></a>

As políticas baseadas em identidade são documentos de políticas de permissão JSON que você anexa a uma identidade (usuário, grupo ou perfil). Essas políticas controlam quais ações as identidades podem realizar, em quais recursos e sob quais condições. Para saber como criar uma política baseada em identidade, consulte [Definir permissões personalizadas do IAM com as políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) no *Guia do Usuário do IAM*.

As políticas baseadas em identidade podem ser políticas *em linha* (incorporadas diretamente em uma única identidade) ou *políticas gerenciadas* (políticas autônomas anexadas a várias identidades). Para saber como escolher entre uma política gerenciada e políticas em linha, consulte [Escolher entre políticas gerenciadas e políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) no *Guia do usuário do IAM*.

### Políticas baseadas em recursos
<a name="security_iam_access-manage-resource-based-policies"></a>

Políticas baseadas em recursos são documentos de políticas JSON que você anexa a um recurso. Entre os exemplos estão *políticas de confiança de perfil* do IAM e *políticas de bucket* do Amazon S3. Em serviços compatíveis com políticas baseadas em recursos, os administradores de serviço podem usá-las para controlar o acesso a um recurso específico. É necessário [especificar uma entidade principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) em uma política baseada em recursos.

Políticas baseadas em recursos são políticas em linha localizadas nesse serviço. Não é possível usar as políticas gerenciadas pela AWS do IAM em uma política baseada em atributos.

### Listas de controle de acesso (ACLs)
<a name="security_iam_access-manage-acl"></a>

As listas de controle de acesso (ACLs) controlam quais entidades principais (membros, usuários ou perfis da conta) têm permissões para acessar um recurso. As ACLs são semelhantes às políticas baseadas em recursos, embora não usem o formato de documento de política JSON.

Amazon S3, AWS WAF e Amazon VPC são exemplos de serviços que oferecem compatibilidade com ACLs. Para saber mais sobre ACLs, consulte [Visão geral da lista de controle de acesso (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) no *Guia do Desenvolvedor do Amazon Simple Storage Service*.

### Outros tipos de política
<a name="security_iam_access-manage-other-policies"></a>

A AWS permite outros tipos de política capazes de definir o máximo de permissões concedidas por tipos de política mais comuns:
+ **Limites de permissões**: definem o número máximo de permissões que uma política baseada em identidade pode conceder a uma entidade do IAM. Para saber mais sobre limites de permissões, consulte [Limites de permissões para identidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) no *Guia do usuário do IAM*.
+ **Políticas de Controle de Serviços (SCPs)**: as SCPs especificam o número máximo de permissões para uma organização ou uma unidade organizacional no AWS Organizations. Para saber mais, consulte [Políticas de controle de serviço](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) no *Guia do usuário do AWS Organizations*.
+ **Políticas de controle de recursos (RCPs)**: definem o número máximo de permissões disponíveis para recursos em suas contas. Consulte mais informações em [Resource control policies (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) no *Guia do usuário do AWS Organizations*.
+ **Políticas de sessão**: políticas avançadas transmitidas como um parâmetro durante a criação de uma sessão temporária para um perfil ou um usuário federado. Para saber mais, consulte [Políticas de sessão](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) no *Guia do usuário do IAM*.

### Vários tipos de política
<a name="security_iam_access-manage-multiple-policies"></a>

Quando vários tipos de política são aplicáveis a uma solicitação, é mais complicado compreender as permissões resultantes. Para saber como a AWS determina se deve permitir uma solicitação quando há vários tipos de política envolvidos, consulte [Lógica da avaliação de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) no *Guia do Usuário do IAM*.

# Como o Amazon API Gateway funciona com o IAM
<a name="security_iam_service-with-iam"></a>

Antes de usar o IAM para gerenciar o acesso ao API Gateway, você deve entender quais recursos do IAM estão disponíveis para uso com o API Gateway. Para obter uma visão de alto nível de como o API Gateway e outros serviços da AWS funcionam com o IAM, consulte [Serviços da AWS que funcionam com o IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) no *Guia do usuário do IAM*.

**Topics**
+ [Políticas baseadas em identidade do API Gateway](#security_iam_service-with-iam-id-based-policies)
+ [Políticas baseadas em recursos do API Gateway](#security_iam_service-with-iam-resource-based-policies)
+ [Autorização baseada em tags API Gateway](#security_iam_service-with-iam-tags)
+ [Funções do IAM do API Gateway](#security_iam_service-with-iam-roles)

## Políticas baseadas em identidade do API Gateway
<a name="security_iam_service-with-iam-id-based-policies"></a>

Com as políticas baseadas em identidade do IAM, é possível especificar quais ações e recursos são permitidos ou negados, bem como as condições sob as quais isso ocorre. O API Gateway oferece suporte a ações, recursos e chaves de condição específicos. Para obter mais informações sobre ações, recursos e chaves de condição específicos do API Gateway, consulte [Ações, recursos e chaves de condição do Amazon API Gateway Management](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagement.html) e [Ações, recursos e chaves de condição do Amazon API Gateway Management V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagementv2.html). Para obter informações sobre todos os elementos usados em uma política JSON, consulte [Referência de elementos de política JSON do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) no *Guia do usuário do IAM*.

O exemplo a seguir mostra uma política baseada em identidade que permite que um usuário crie ou atualize apenas APIs REST privadas. Para obter mais exemplos, consulte [Exemplos de políticas baseadas em identidade do Amazon API Gateway](security_iam_id-based-policy-examples.md).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ScopeToPrivateApis",
      "Effect": "Allow",
      "Action": [
        "apigateway:PATCH",
        "apigateway:POST",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/restapis",
        "arn:aws:apigateway:us-east-1::/restapis/??????????"
      ],
      "Condition": {
        "ForAllValues:StringEqualsIfExists": {
          "apigateway:Request/EndpointType": "PRIVATE",
          "apigateway:Resource/EndpointType": "PRIVATE"
        }
      }
    },
    {
      "Sid": "AllowResourcePolicyUpdates",
      "Effect": "Allow",
      "Action": [
          "apigateway:UpdateRestApiPolicy"
      ],
      "Resource": [
          "arn:aws:apigateway:us-east-1::/restapis/*"
      ]
    }
  ]
}
```

------

### Ações
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

O elemento `Action` de uma política JSON descreve as ações que você pode usar para permitir ou negar acesso em uma política.

As ações de política no API Gateway usam o seguinte prefixo antes da ação: `apigateway:`. As instruções de política devem incluir um elemento `Action` ou `NotAction`. O API Gateway define seu próprio conjunto de ações que descrevem as tarefas que podem ser executadas com esse serviço.



A expressão `Action` de gerenciamento de API está no formato `apigateway:action`, em que *ação* representa uma das seguintes ações do API Gateway: **GET**, **POST**, **PUT**, **DELETE**, **PATCH** (para atualizar recursos) ou **\$1**, que representa todas as ações anteriores.

Alguns exemplos da expressão `Action` incluem:
+ **apigateway:\$1** para todas as ações do API Gateway.
+ **apigateway:GET** para apenas a ação GET no API Gateway.

Para especificar várias ações em uma única declaração, separe-as com vírgulas, conforme o seguinte:

```
"Action": [
      "apigateway:action1",
      "apigateway:action2"
```

Para obter informações sobre verbos a serem usados de HTTP para operações específicas do API Gateway, consulte a [Versão 1 da referência da API do Amazon API Gateway](https://docs.aws.amazon.com/apigateway/api-reference/) (APIs REST) e a [Versão 2 da referência da API do Amazon API Gateway](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/api-reference.html) (APIs WebSocket e HTTP).

Para obter mais informações, consulte [Exemplos de políticas baseadas em identidade do Amazon API Gateway](security_iam_id-based-policy-examples.md).

### Recursos
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Os administradores podem usar as políticas JSON da AWS para especificar quem tem acesso a quê. Ou seja, qual **entidade principal** pode executar **ações** em quais **recursos** e em que **condições**.

O elemento de política JSON `Resource` especifica o objeto ou os objetos aos quais a ação se aplica. Como prática recomendada, especifique um recurso usando seu [nome do recurso da Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Para ações em que não é possível usar permissões em nível de recurso, use um curinga (\$1) para indicar que a instrução se aplica a todos os recursos.

```
"Resource": "*"
```



Os recursos do API Gateway têm o seguinte formato ARN:

```
arn:aws:apigateway:region::resource-path-specifier
```

Por exemplo, para especificar uma API REST com o id *`api-id`* e seus sub-recursos, como autorizadores em sua declaração, use o ARN a seguir:

```
"Resource": "arn:aws:apigateway:us-east-2::/restapis/api-id/*"
```

Para especificar todas as APIs REST e sub-recursos que pertencem a uma conta específica, use o caractere curinga (\$1):

```
"Resource": "arn:aws:apigateway:us-east-2::/restapis/*"
```

Para obter uma lista de tipos de recursos do API Gateway e seus ARNs, consulte [Referência de nome de recurso da Amazon (ARN) do API Gateway](arn-format-reference.md). 

### Chaves de condição
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Os administradores podem usar as políticas JSON AWS para especificar quem tem acesso a quê. Ou seja, qual **entidade principal** pode executar **ações** em quais **recursos** e em que **condições**.

O elemento `Condition` especifica quando as instruções são executadas com base em critérios definidos. É possível criar expressões condicionais que usem [agentes de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), como “igual a” ou “menor que”, para fazer a condição da política corresponder aos valores na solicitação. Para ver todas as chaves de condição globais da AWS, consulte [Chaves de contexto de condição globais da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) no *Guia do usuário do IAM*.

O API Gateway define seu próprio conjunto de chaves de condição e também oferece suporte ao uso de algumas chaves de condição globais. Para obter uma lista de chaves de condição do API Gateway, consulte [Chaves de condição para o Amazon API Gateway](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_manageamazonapigateway.html#manageamazonapigateway-policy-keys) no *Guia do usuário do IAM*. Para obter informações sobre quais ações e recursos você pode usar uma chave de condição, consulte [Ações definidas pelo Amazon API Gateway](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_manageamazonapigateway.html#amazonapigateway-actions-as-permissions).

Para obter informações sobre marcação, inclusive sobre o controle de acesso baseado em atributos, consulte [Marcar recursos do API Gateway](apigateway-tagging.md).

### Exemplos
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Para obter exemplos de políticas baseadas em identidade do API Gateway, consulte [Exemplos de políticas baseadas em identidade do Amazon API Gateway](security_iam_id-based-policy-examples.md).

## Políticas baseadas em recursos do API Gateway
<a name="security_iam_service-with-iam-resource-based-policies"></a>

As políticas baseadas em recursos são documentos de políticas JSON que especificam quais ações um principal pode executar no recurso do API Gateway e sob quais condições. O API Gateway oferece suporte a políticas de permissões baseadas em recursos para APIs REST. Você usa políticas de recursos para controlar quem pode invocar uma API REST. Para obter mais informações, consulte [Controlar o acesso a uma API REST com políticas de recursos do API Gateway](apigateway-resource-policies.md). 

### Exemplos
<a name="security_iam_service-with-iam-resource-based-policies-examples"></a>

Para obter exemplos de políticas baseadas em recursos do API Gateway, consulte [Exemplos de política de recursos do API Gateway](apigateway-resource-policies-examples.md).

## Autorização baseada em tags API Gateway
<a name="security_iam_service-with-iam-tags"></a>

Você pode anexar tags aos recursos do API Gateway ou transmitir tags em uma solicitação para o API Gateway. Para controlar o acesso baseado em tags, forneça informações sobre as tags no [elemento de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) de uma política usando as chaves de condição `apigateway:ResourceTag/key-name`, `aws:RequestTag/key-name` ou `aws:TagKeys`. Para obter mais informações sobre como marcar recursos do API Gateway, consulte [Usar tags para controlar o acesso aos recursos da API REST do API Gateway](apigateway-tagging-iam-policy.md).

Para obter exemplos de políticas baseadas em identidade visando limitar o acesso a um recurso baseado nas tags desse recurso, consulte [Usar tags para controlar o acesso aos recursos da API REST do API Gateway](apigateway-tagging-iam-policy.md).

## Funções do IAM do API Gateway
<a name="security_iam_service-with-iam-roles"></a>

Uma [função do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) é uma entidade dentro da sua conta da AWS que tem permissões específicas.

### Usar credenciais temporárias com o API Gateway
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

É possível usar credenciais temporárias para fazer login com federação, assumir uma função do IAM ou assumir uma função entre contas. As credenciais de segurança temporárias são obtidas chamando operações da API do AWS STS, como [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) ou [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html). 

O API Gateway oferece suporte ao uso de credenciais temporárias. 

### Funções vinculadas ao serviço
<a name="security_iam_service-with-iam-roles-service-linked"></a>

[Perfis vinculados ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) permitem que os serviços da AWS acessem recursos em outros serviços para concluir uma ação em seu nome. Os perfis vinculados a serviço aparecem em sua conta do IAM e são de propriedade do serviço. Um administrador do IAM pode visualizar, mas não pode editar as permissões para funções vinculadas ao serviço.

O API Gateway oferece suporte a funções vinculadas ao serviço. Para obter informações sobre como criar ou gerenciar funções vinculadas ao serviço do API Gateway, consulte [Usar funções vinculadas ao serviço para o API Gateway](using-service-linked-roles.md).

### Funções de serviço
<a name="security_iam_service-with-iam-roles-service"></a>

Um serviço pode assumir uma [função de serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) em seu nome. Uma função de serviço permite que o serviço acesse recursos em outros serviços para concluir uma ação em seu nome. Os perfis de serviço aparecem em sua conta do IAM e pertencem à conta, de modo que um administrador possa alterar as permissões para esse perfil. Porém, fazer isso pode alterar a funcionalidade do serviço.

O API Gateway oferece suporte a funções de serviço. 

# Exemplos de políticas baseadas em identidade do Amazon API Gateway
<a name="security_iam_id-based-policy-examples"></a>

Por padrão, os usuários e as funções do IAM não têm permissão para criar ou modificar recursos do API Gateway. Eles também não podem executar tarefas usando o Console de gerenciamento da AWS, a AWS CLI ou SDKs da AWS. Um administrador do IAM deve criar políticas do IAM que concedam aos usuários e funções permissão para executarem operações de API específicas nos recursos especificados de que precisam. O administrador deve anexar essas políticas aos usuários ou grupos do IAM que exigem essas permissões.

Para obter informações sobre como criar políticas do IAM, consulte [Como criar políticas na guia JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) no *Guia do usuário do IAM*. Para obter informações sobre ações, recursos e condições específicas do API Gateway, consulte [Ações, recursos e chaves de condição do Amazon API Gateway Management](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagement.html) e [Ações, recursos e chaves de condição do Amazon API Gateway Management V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagementv2.html).

**Topics**
+ [Práticas recomendadas de política](#security_iam_service-with-iam-policy-best-practices)
+ [Permitir que os usuários visualizem suas próprias permissões](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Permissões de leitura simples](#api-gateway-policy-example-apigateway-general)
+ [Crie apenas os autorizadores REQUEST ou JWT](#security_iam_id-based-policy-examples-v2-import)
+ [Exija que o endpoint padrão `execute-api` esteja desabilitado](#security_iam_id-based-policy-examples-v2-endpoint-status)
+ [Permita que usuários criem ou atualizem apenas APIs REST privadas](#security_iam_id-based-policy-examples-private-api)
+ [Exija que as rotas da API tenham autorização](#security_iam_id-based-policy-examples-require-authorization)
+ [Impeça que um usuário crie ou atualize um link da VPC](#security_iam_id-based-policy-examples-deny-vpc-link)
+ [Exemplos de políticas para usar regras de roteamento](#security_iam_id-based-policy-examples-routing-mode)

## Práticas recomendadas de política
<a name="security_iam_service-with-iam-policy-best-practices"></a>

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir recursos do API Gateway em sua conta. Essas ações podem incorrer em custos para sua Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:
+ **Comece com as políticas gerenciadas pela AWS e avance para as permissões de privilégio mínimo**: para começar a conceder permissões a seus usuários e workloads, use as *políticas gerenciadas pela AWS*, que concedem permissões para muitos casos de uso comuns. Elas estão disponíveis em seus Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo cliente da AWS que são específicas para seus casos de uso. Para saber mais, consulte [Políticas gerenciadas pela AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou [Políticas gerenciadas pela AWS para funções de trabalho](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) no *Guia do usuário do IAM*.
+ **Aplique permissões de privilégio mínimo**: ao definir permissões com as políticas do IAM, conceda apenas as permissões necessárias para executar uma tarefa. Você faz isso definindo as ações que podem ser executadas em recursos específicos sob condições específicas, também conhecidas como *permissões de privilégio mínimo*. Para saber mais sobre como usar o IAM para aplicar permissões, consulte [Políticas e permissões no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) no *Guia do usuário do IAM*.
+ **Use condições nas políticas do IAM para restringir ainda mais o acesso**: é possível adicionar uma condição às políticas para limitar o acesso a ações e recursos. Por exemplo, é possível escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usando SSL. Também pode usar condições para conceder acesso a ações de serviço, se elas forem usadas por meio de um AWS service (Serviço da AWS) específico, como o CloudFormation. Para saber mais, consulte [Elementos da política JSON do IAM: condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) no *Guia do usuário do IAM*.
+ **Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais**: o IAM Access Analyzer valida as políticas novas e existentes para que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. O IAM Access Analyzer oferece mais de cem verificações de política e recomendações práticas para ajudar a criar políticas seguras e funcionais. Para saber mais, consulte [Validação de políticas do IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) no *Guia do Usuário do IAM*.
+ **Exigir autenticação multifator (MFA)**: se houver um cenário que exija usuários do IAM ou um usuário raiz em sua Conta da AWS, ative a MFA para obter segurança adicional. Para exigir MFA quando as operações de API forem chamadas, adicione condições de MFA às suas políticas. Para saber mais, consulte [Configuração de acesso à API protegido por MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) no *Guia do Usuário do IAM*.

Para saber mais sobre as práticas recomendadas do IAM, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.

## Permitir que os usuários visualizem suas próprias permissões
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Este exemplo mostra como criar uma política que permita que os usuários do IAM visualizem as políticas gerenciadas e em linha anexadas a sua identidade de usuário. Essa política inclui permissões para concluir essa ação no console ou de forma programática usando a AWS CLI ou a API da AWS.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## Permissões de leitura simples
<a name="api-gateway-policy-example-apigateway-general"></a>

Esta política de exemplo concede permissão ao usuário para obter informações sobre todos os recursos de uma API HTTP ou WebSocket com o identificador de `a123456789` na região us-east-1 da AWS. O recurso `arn:aws:apigateway:us-east-1::/apis/a123456789/*` inclui todos os sub-recursos da API, como autorizadores e implantações.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "apigateway:GET"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis/a123456789/*"
      ]
    }
  ]
}
```

------

## Crie apenas os autorizadores REQUEST ou JWT
<a name="security_iam_id-based-policy-examples-v2-import"></a>

Esta política de exemplo permite que um usuário crie APIs apenas com os autorizadores `REQUEST` ou `JWT`, inclusive por meio da [importação](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis.html#ImportApi). Na seção `Resource` da política, o `arn:aws:apigateway:us-east-1::/apis/??????????` exige que os recursos tenham um máximo de dez caracteres, o que exclui os sub-recursos de uma API. Este exemplo usa `ForAllValues` na seção `Condition` porque os usuários podem criar vários autorizadores de uma só vez importando uma API.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "OnlyAllowSomeAuthorizerTypes",
      "Effect": "Allow",
      "Action": [
        "apigateway:PUT",
        "apigateway:POST",
        "apigateway:PATCH"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/??????????",
        "arn:aws:apigateway:us-east-1::/apis/*/authorizers",
        "arn:aws:apigateway:us-east-1::/apis/*/authorizers/*"
      ],
      "Condition": {
        "ForAllValues:StringEqualsIfExists": {
          "apigateway:Request/AuthorizerType": [
            "REQUEST",
            "JWT"
          ]
        }
      }
    }
  ]
}
```

------

## Exija que o endpoint padrão `execute-api` esteja desabilitado
<a name="security_iam_id-based-policy-examples-v2-endpoint-status"></a>

 Esta política de exemplo permite que os usuários criem, atualizem ou importem uma API, com a exigência de que o `DisableExecuteApiEndpoint` seja `true`. Quando o `DisableExecuteApiEndpoint` for `true`, os clientes não poderão usar o endpoint padrão `execute-api` para invocar uma API.

Nós usamos a condição `BoolIfExists` para lidar com uma chamada para atualizar uma API que não tenha a chave de condição `DisableExecuteApiEndpoint` preenchida. Quando um usuário tenta criar ou importar uma API, a chave de condição `DisableExecuteApiEndpoint` é sempre preenchida.

Como o recurso `apis/*` também captura sub-recursos, como autorizadores ou métodos, nós o estendemos explicitamente apenas para APIs com uma declaração `Deny`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DisableExecuteApiEndpoint",
      "Effect": "Allow",
      "Action": [
        "apigateway:PATCH",
        "apigateway:POST",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/*"
      ],
      "Condition": {
        "BoolIfExists": {
          "apigateway:Request/DisableExecuteApiEndpoint": true
        }
      }
    },
    {
      "Sid": "ScopeDownToJustApis",
      "Effect": "Deny",
      "Action": [
        "apigateway:PATCH",
        "apigateway:POST",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis/*/*"
      ]
    }
  ]
}
```

------

## Permita que usuários criem ou atualizem apenas APIs REST privadas
<a name="security_iam_id-based-policy-examples-private-api"></a>

Esta política de exemplo usa chaves de condição para exigir que um usuário crie somente APIs `PRIVATE` e para evitar atualizações que possam alterar uma API `PRIVATE` para outro tipo, como `REGIONAL`.

Usamos `ForAllValues` para exigir que cada `EndpointType` adicionado a uma API seja `PRIVATE`. Usamos uma chave de condição de recurso para permitir qualquer atualização em uma API, desde que seja `PRIVATE`. `ForAllValues` aplica-se somente quando uma chave de condição está presente.

Nós usamos a correspondência não greedy (`?`) para corresponder explicitamente aos IDs de API para evitar a permissão de recursos que não sejam APIs, como, por exemplo, autorizadores.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ScopePutToPrivateApis",
            "Effect": "Allow",
            "Action": [
                "apigateway:PUT"
            ],
            "Resource": [
                "arn:aws:apigateway:us-east-1::/restapis",
                "arn:aws:apigateway:us-east-1::/restapis/??????????"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "apigateway:Resource/EndpointType": "PRIVATE"
                }
            }
        },
        {
            "Sid": "ScopeToPrivateApis",
            "Effect": "Allow",
            "Action": [
                "apigateway:DELETE",
                "apigateway:PATCH",
                "apigateway:POST"
            ],
            "Resource": [
                "arn:aws:apigateway:us-east-1::/restapis",
                "arn:aws:apigateway:us-east-1::/restapis/??????????"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "apigateway:Request/EndpointType": "PRIVATE",
                    "apigateway:Resource/EndpointType": "PRIVATE"
                }
            }
        },
        {
            "Sid": "AllowResourcePolicyUpdates",
            "Effect": "Allow",
            "Action": [
                "apigateway:UpdateRestApiPolicy"
            ],
            "Resource": [
                "arn:aws:apigateway:us-east-1::/restapis/*"
            ]
        }
    ]
}
```

------

## Exija que as rotas da API tenham autorização
<a name="security_iam_id-based-policy-examples-require-authorization"></a>

Esta política faz com que as tentativas de criação ou atualização de uma rota (inclusive por meio da [importação](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis.html#ImportApi)) falhem se a rota não tiver autorização. O `ForAnyValue` considera a tentativa falsa se a chave não estiver presente, como, por exemplo, quando uma rota não está sendo criada ou atualizada. Nós usamos `ForAnyValue` porque várias rotas podem ser criadas por meio da importação.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowUpdatesOnApisAndRoutes",
      "Effect": "Allow",
      "Action": [
        "apigateway:POST",
        "apigateway:PATCH",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/??????????",
        "arn:aws:apigateway:us-east-1::/apis/*/routes",
        "arn:aws:apigateway:us-east-1::/apis/*/routes/*"
      ]
    },
    {
      "Sid": "DenyUnauthorizedRoutes",
      "Effect": "Deny",
      "Action": [
        "apigateway:POST",
        "apigateway:PATCH",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/*"
      ],
      "Condition": {
        "ForAnyValue:StringEqualsIgnoreCase": {
          "apigateway:Request/RouteAuthorizationType": "NONE"
        }
      }
    }
  ]
}
```

------

## Impeça que um usuário crie ou atualize um link da VPC
<a name="security_iam_id-based-policy-examples-deny-vpc-link"></a>

Esta política impede que um usuário crie ou atualize um link da VPC. Um link da VPC permite que você exponha recursos em uma Amazon VPC para clientes fora da VPC.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyVPCLink",
      "Effect": "Deny",
      "Action": [
        "apigateway:POST",
        "apigateway:PUT",
        "apigateway:PATCH"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/vpclinks",
        "arn:aws:apigateway:us-east-1::/vpclinks/*"
      ]
    }
  ]
}
```

------

## Exemplos de políticas para usar regras de roteamento
<a name="security_iam_id-based-policy-examples-routing-mode"></a>

As políticas de exemplo a seguir mostram como usar as chaves de condição RoutingRule para controlar como os usuários podem rotear o tráfego de seus nomes de domínio personalizados para suas APIs REST. Você pode usar esses exemplos para criar políticas granulares para o tipo de regras de roteamento que os usuários podem criar. Para obter mais informações, consulte [Regras de roteamento para associar estágios da API a um nome de domínio personalizado para APIs REST](rest-api-routing-rules.md).

### Impedir que um usuário altere a forma como um nome de domínio personalizado encaminha uma solicitação
<a name="security_iam_id-based-policy-examples-routing-mode-1"></a>

Essa política impede que um usuário crie ou atualize `BasePathMapping`, `ApiMapping` ou `RoutingRule`. Todos esses recursos podem mudar a maneira como um nome de domínio personalizado encaminha solicitações para as APIs.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyAccessBasePathMappingsApiMappingsRoutingRules",
      "Effect": "Deny",
      "Action": "apigateway:*",
      "Resource": [
        "arn:aws:apigateway:us-east-1::/domainnames/example.com/basepathmappings/*",
        "arn:aws:apigateway:us-east-1::/domainnames/example.com/apimappings/*",
        "arn:aws:apigateway:us-east-1:111122223333:/domainnames/example.com/routingrules/*"
      ]
    }
  ]
}
```

------

### Permitir que um usuário atualize uma regra de roteamento para determinadas prioridades
<a name="security_iam_id-based-policy-examples-routing-mode-2"></a>

Essa política permite que um usuário atualize somente uma regra de roteamento para uma prioridade entre 1001 e 2000. Você pode usar essa regra para separar suas regras de produção das regras de menor prioridade e, em seguida, permitir que os usuários modifiquem as regras de menor prioridade sem afetar as regras de produção.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "UpdatingRoutingRulePriorityBetween1001And2000",
      "Effect": "Allow",
      "Action": "apigateway:UpdateRoutingRule",
      "Resource": "arn:aws:apigateway:us-east-1:111122223333:/domainnames/example.com/routingrules/*",
      "Condition": {
        "NumericGreaterThanEquals": {
          "apigateway:Resource/Priority": 1001,
          "apigateway:Request/Priority": 1001
        },
       "NumericLessThanEquals": {
          "apigateway:Resource/Priority": 2000,
          "apigateway:Request/Priority": 2000
        } 
      }
    }
  ]
}
```

------

### Permitir que um usuário atualize uma regra de roteamento ou mapeamento do caminho base para um determinado valor do caminho base
<a name="security_iam_id-based-policy-examples-routing-mode-3"></a>

Essa política permite que um usuário atualize somente um mapeamento de caminho base para qualquer caminho base que comece com `orders` ou atualize uma regra de roteamento correspondente a um caminho base que comece com `orders`. Nessa política, um usuário pode atualizar um mapeamento de caminho base ou regra de roteamento para `orders/create` ou `orders123`, mas não `payment/orders`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
      {
        "Sid": "AllowUpdateRoutingRuleUnderPathOrders",
        "Effect": "Allow",
        "Action": "apigateway:UpdateRoutingRule",
        "Resource": "arn:aws:apigateway:us-east-1:111122223333:/domainnames/example.com/routingrules/*",
        "Condition": {
            "ForAllValues:StringLike": {
                "apigateway:Request/ConditionBasePaths": ["orders*"],
                "apigateway:Resource/ConditionBasePaths": ["orders*"]
            },
            "Null":{
                 "apigateway:Request/ConditionBasePaths":"false",
                 "apigateway:Resource/ConditionBasePaths":"false"             
          }
        }
      }
  ]
}
```

------

### Permitir que um usuário atualize o modo de roteamento para valores específicos
<a name="security_iam_id-based-policy-examples-routing-mode-4"></a>

Essa política permite que um usuário atualize somente o modo de roteamento para `API_MAPPING_ONLY` e `ROUTING_RULE_THEN_API_MAPPING`. Para obter mais informações sobre o modo de roteamento, consulte [Definir o modo de roteamento para o nome de domínio personalizado](set-routing-mode.md).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
        {
           "Sid": "AllowUpdateRoutingModeToAnythingWithApiMapping",
           "Effect": "Allow",
           "Action": ["apigateway:PATCH"],
           "Resource": "arn:aws:apigateway:us-east-1::/domainnames/example.com",
              "Condition": {
               "StringLike": {
                   "apigateway:Request/RoutingMode":"*API_MAPPING*"
               }
           }
       }
    ]
}
```

------

# Exemplos de políticas baseadas em recursos do Amazon API Gateway
<a name="security_iam_resource-based-policy-examples"></a>

Para obter exemplos de política baseada em recursos, consulte [Exemplos de política de recursos do API Gateway](apigateway-resource-policies-examples.md).

# Solução de problemas de identidade e acesso do Amazon API Gateway
<a name="security_iam_troubleshoot"></a>

Use as informações a seguir para ajudar a diagnosticar e corrigir problemas comuns que você possa encontrar ao trabalhar com o API Gateway e o IAM.

**Topics**
+ [Não tenho autorização para executar uma ação no API Gateway](#security_iam_troubleshoot-no-permissions)
+ [Não estou autorizado a executar iam:PassRole](#security_iam_troubleshoot-passrole)
+ [Desejo permitir que pessoas fora da minha conta da AWS acessem meus recursos do API Gateway](#security_iam_troubleshoot-cross-account-access)

## Não tenho autorização para executar uma ação no API Gateway
<a name="security_iam_troubleshoot-no-permissions"></a>

Se você receber uma mensagem de erro informando que não tem autorização para executar uma ação, suas políticas deverão ser atualizadas para permitir que você realize a ação.

O erro do exemplo a seguir ocorre quando o usuário do IAM `mateojackson` tenta usar o console para visualizar detalhes sobre um atributo `my-example-widget` fictício, mas não tem as permissões `apigateway:GetWidget` fictícias.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: apigateway:GetWidget on resource: my-example-widget because no identity-based policy allows the GetWidget action 
```

Nesse caso, a política do usuário `mateojackson` deve ser atualizada para permitir o acesso ao recurso `my-example-widget` usando a ação `apigateway:GetWidget`.

Se você precisar de ajuda, entre em contato com seu administrador AWS. Seu administrador é a pessoa que forneceu suas credenciais de login.

## Não estou autorizado a executar iam:PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Se receber uma mensagem de erro informando que você não está autorizado a realizar a ação `iam:PassRole`, suas políticas deverão ser atualizadas para permitir a transmissão de um perfil para o API Gateway.

Alguns Serviços da AWS permitem que você transmita um perfil existente para o serviço, em vez de criar um perfil de serviço ou um perfil vinculado ao serviço. Para fazer isso, é preciso ter permissões para passar o perfil para o serviço.

O erro exemplificado a seguir ocorre quando uma usuária do IAM chamada `marymajor` tenta usar o console para executar uma ação no API Gateway. No entanto, a ação exige que o serviço tenha permissões concedidas por um perfil de serviço. Mary não tem permissões para passar o perfil para o serviço.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Nesse caso, as políticas de Mary devem ser atualizadas para permitir que ela realize a ação `iam:PassRole`.

Se você precisar de ajuda, entre em contato com seu administrador AWS. Seu administrador é a pessoa que forneceu suas credenciais de login.

## Desejo permitir que pessoas fora da minha conta da AWS acessem meus recursos do API Gateway
<a name="security_iam_troubleshoot-cross-account-access"></a>

Você pode criar uma função que os usuários de outras contas ou pessoas fora da sua organização podem usar para acessar seus recursos. É possível especificar quem é confiável para assumir o perfil. Para serviços que oferecem compatibilidade com políticas baseadas em recursos ou listas de controle de acesso (ACLs), é possível usar essas políticas para conceder às pessoas acesso aos seus recursos.

Para saber mais, consulte o seguinte:
+ Para saber se o API Gateway oferece suporte a esses recursos, consulte [Como o Amazon API Gateway funciona com o IAM](security_iam_service-with-iam.md).
+ Para saber como conceder acesso a seus recursos em todas as Contas da AWS pertencentes a você, consulte [Fornecimento de acesso a um usuário do IAM em outra Conta da AWS pertencente a você](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) no *Guia de usuário do IAM*.
+ Para saber como conceder acesso a seus recursos para Contas da AWS de terceiros, consulte [Fornecimento de acesso a Contas da AWS pertencentes a terceiros](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) no *Guia do usuário do IAM*.
+ Para saber como conceder acesso por meio da federação de identidades, consulte [Conceder acesso a usuários autenticados externamente (federação de identidades)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) no *Guia do usuário do IAM*.
+ Para saber a diferença entre perfis e políticas baseadas em recurso para acesso entre contas, consulte [Acesso a recursos entre contas no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) no *Guia do usuário do IAM*.

# Usar funções vinculadas ao serviço para o API Gateway
<a name="using-service-linked-roles"></a>

O Amazon API Gateway usa [funções vinculadas ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) do AWS Identity and Access Management (IAM). A função vinculada ao serviço é um tipo exclusivo de função do IAM vinculada diretamente ao API Gateway. As funções vinculadas a serviços são predefinidas pelo API Gateway e incluem todas as permissões que o serviço requer para chamar outros serviços da AWS em seu nome. 

Uma função vinculada ao serviço facilita a configuração do API Gateway, já que não é preciso adicionar as permissões necessárias manualmente. O API Gateway define as permissões das funções vinculadas a serviços e, exceto se definido de outra forma, somente o API Gateway pode assumir suas funções. As permissões definidas incluem a política de confiança e a política de permissões, e essa política não pode ser anexada a nenhuma outra entidade do IAM.

Você pode excluir uma função vinculada ao serviço somente depois de excluir os recursos relacionados da Isso protege os recursos do API Gateway, pois não é possível remover por engano as permissões para acessar os recursos.

Para ter informações sobre outros serviços que permitem perfis vinculados ao serviço, consulte [Serviços da AWS que funcionam com o IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) e procure os serviços que apresentarem **Sim** na coluna **Função vinculada ao serviço.**. Escolha um **Sim** com um link para exibir a documentação da função vinculada a serviço desse serviço.

## Permissões de função vinculada ao serviço para o API Gateway
<a name="slr-permissions"></a>

O API Gateway usa o perfil vinculado ao serviço chamado **AWSServiceRoleForAPIGateway**: permite que o API Gateway acesse o Elastic Load Balancing, o Amazon Data Firehose e outros recursos de serviços em seu nome.

A função vinculada ao serviço AWSServiceRoleForAPIGateway confia nos seguintes serviços para assumir a função:
+ `ops.apigateway.amazonaws.com`

A política de permissões da função permite que o API Gateway conclua as seguintes ações nos recursos especificados:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:AddListenerCertificates",
                "elasticloadbalancing:RemoveListenerCertificates",
                "elasticloadbalancing:ModifyListener",
                "elasticloadbalancing:DescribeListeners",
                "elasticloadbalancing:DescribeLoadBalancers",
                "xray:PutTraceSegments",
                "xray:PutTelemetryRecords",
                "xray:GetSamplingTargets",
                "xray:GetSamplingRules",
                "logs:CreateLogDelivery",
                "logs:GetLogDelivery",
                "logs:UpdateLogDelivery",
                "logs:DeleteLogDelivery",
                "logs:ListLogDeliveries",
                "servicediscovery:DiscoverInstances"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "firehose:DescribeDeliveryStream",
                "firehose:PutRecord",
                "firehose:PutRecordBatch"
            ],
            "Resource": "arn:aws:firehose:*:*:deliverystream/amazon-apigateway-*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "acm:DescribeCertificate",
                "acm:GetCertificate"
            ],
            "Resource": "arn:aws:acm:*:*:certificate/*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateNetworkInterfacePermission",
            "Resource": "arn:aws:ec2:*:*:network-interface/*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:*:*:network-interface/*",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "Owner",
                        "VpcLinkId"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:DeleteNetworkInterface",
                "ec2:AssignPrivateIpAddresses",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterfacePermission",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeNetworkInterfaceAttribute",
                "ec2:DescribeVpcs",
                "ec2:DescribeNetworkInterfacePermissions",
                "ec2:UnassignPrivateIpAddresses",
                "ec2:DescribeSubnets",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "servicediscovery:GetNamespace",
            "Resource": "arn:aws:servicediscovery:*:*:namespace/*"
        },
        {
            "Effect": "Allow",
            "Action": "servicediscovery:GetService",
            "Resource": "arn:aws:servicediscovery:*:*:service/*"
        }
    ]
}
```

------

Você deve configurar permissões para que uma entidade do IAM (por exemplo, um usuário, grupo ou função) crie, edite ou exclua uma função vinculada ao serviço. Para obter mais informações, consulte [Permissões de função vinculada ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) no *Guia do usuário do IAM*.

## Criar uma função vinculada ao serviço para o API Gateway
<a name="create-slr"></a>

Você não precisa criar manualmente uma função vinculada a serviço. Quando você cria uma API, um nome de domínio personalizado ou um link de VPC no Console de gerenciamento da AWS, a AWS CLI ou a API da AWS, o API Gateway cria a função vinculada ao serviço para você. 

Se você excluir essa função vinculada ao serviço e precisar criá-la novamente, poderá usar esse mesmo processo para recriar a função em sua conta. Quando você cria uma API, um nome de domínio personalizado ou um link de VPC, o API Gateway cria a função vinculada ao serviço para você novamente. 

## Editar uma função vinculada ao serviço para o API Gateway
<a name="edit-slr"></a>

O API Gateway não permite que você edite a função vinculada ao serviço AWSServiceRoleForAPIGateway. Depois que você criar uma função vinculada a serviço, não poderá alterar o nome da função, pois várias entidades podem fazer referência à função. No entanto, você poderá editar a descrição do perfil usando o IAM. Para obter mais informações, consulte [Editar uma função vinculada ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) no *Guia do usuário do IAM*.

## Excluir uma função vinculada ao serviço para o API Gateway
<a name="delete-slr"></a>

Se você não precisar mais usar um recurso ou serviço que requer uma função vinculada a serviço, é recomendável excluí-la. Dessa forma, você não tem uma entidade não utilizada que não seja monitorada ativamente ou mantida. No entanto, você deve limpar os recursos de sua função vinculada ao serviço antes de exclui-la manualmente.

**nota**  
Se o serviço API Gateway estiver usando a função quando você tentar excluir os recursos, a exclusão poderá falhar. Se isso acontecer, espere alguns minutos e tente a operação novamente.

**Como excluir recursos do API Gateway usados pela AWSServiceRoleForAPIGateway**

1. Abra o console do API Gateway em [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/). 

1. Navegue para a API, o nome de domínio personalizado ou o link da VPC que usa a função vinculada ao serviço.

1. Use o console para excluir o recurso.

1. Repita o procedimento para excluir todas as APIs, nomes de domínio personalizados ou links de VPC que usam a função vinculada ao serviço.

**Como excluir manualmente o perfil vinculado ao serviço usando o IAM**

Use o console do IAM, a AWS CLI ou a API da AWS para excluir a função vinculada ao serviço AWSServiceRoleForAPIGateway. Para obter mais informações, consulte [Excluir uma função vinculada ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) no *Guia do usuário do IAM*.

## Regiões compatíveis com funções vinculadas a serviços do API Gateway
<a name="slr-regions"></a>

O API Gateway oferece suporte a funções vinculadas a serviços em todas as regiões em que o serviço está disponível. Para obter mais informações, consulte [Endpoints de serviço do AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html).

## Atualizações do API Gateway para políticas gerenciadas da AWS
<a name="security-iam-awsmanpol-updates"></a>



Visualize detalhes sobre atualizações em políticas gerenciadas pela AWS para o API Gateway desde que este serviço começou a rastrear essas alterações. Para obter alertas automáticos sobre alterações feitas nesta página, inscreva-se no feed RSS na página [Histórico de documentos](history.md) do API Gateway.


| Alteração | Descrição | Data | 
| --- | --- | --- | 
|  Adição de suporte`acm:GetCertificate` à política `AWSServiceRoleForAPIGateway`.  |  A política`AWSServiceRoleForAPIGateway` agora inclui permissão para chamar a ação de API `GetCertificate` do ACM.  | 12 de julho de 2021 | 
|  API Gateway começou a controlar as alterações  |  API Gateway começou a controlar alterações para suas políticas gerenciadas da AWS.  | 12 de julho de 2021 | 

# Registro em log e monitoramento no Amazon API Gateway
<a name="security-monitoring"></a>

O monitoramento é uma parte importante para manter a confiabilidade, a disponibilidade e a performance do API Gateway e das suas soluções da AWS. É necessário coletar dados de monitoramento de todas as partes de sua solução da AWS para depurar uma falha de vários pontos com mais facilidade, caso ocorra. A AWS fornece várias ferramentas para monitorar seus recursos do e responder a possíveis incidentes:

**Amazon CloudWatch Logs**  
Para ajudar a depurar problemas relacionados à execução de solicitação ou ao acesso do cliente à sua API, é possível permitir que o CloudWatch Logs registre chamadas de API. Para obter mais informações, consulte [Configurar o registro em log do CloudWatch para APIs REST no API Gateway](set-up-logging.md).

**Alarmes do Amazon CloudWatch**  
Ao usar alarmes do CloudWatch, você observa uma única métrica durante um período especificado. Se a métrica exceder determinado limite, uma notificação será enviada para um tópico do Amazon Simple Notification Service ou para uma política do AWS Auto Scaling. Os alarmes do CloudWatch não invocam ações quando uma métrica está em um estado específico. O estado deve ter sido alterado e mantido por uma quantidade especificada de períodos. Para ter mais informações, consulte [Monitorar a execução da API REST com métricas do Amazon CloudWatch](monitoring-cloudwatch.md).

**Registro em log de acesso ao Firehose**  
Para ajudar a depurar problemas relacionados ao acesso do cliente à sua API, é possível permitir que o Firehose registre em log chamadas de API. Para ter mais informações, consulte [Registrar em log chamadas de API REST para o Amazon Data Firehose no API Gateway](apigateway-logging-to-kinesis.md).

**AWS CloudTrail**  
O CloudTrail fornece um registro de ações executadas por um usuário, uma função ou um serviço da AWS no API Gateway. Usando as informações coletadas pelo CloudTrail, é possível determinar a solicitação feita para o API Gateway, o endereço IP do qual a solicitação foi feita, quem fez a solicitação, quando ela foi feita e detalhes adicionais. Para obter mais informações, consulte [Registrar em log chamadas de APIs do Amazon API Gateway usando o AWS CloudTrail](cloudtrail.md). 

**AWS X-Ray**  
O X-Ray é um produto da AWS que coleta dados sobre as solicitações atendidas pela aplicação e os usa para construir um mapa de serviços que pode ser usado para identificar problemas na aplicação e oportunidades de otimização. Para obter mais informações, consulte [Configurar o AWS X-Ray com APIs REST do API Gateway](apigateway-enabling-xray.md). 

**AWS Config**  
O AWS Config fornece uma visão detalhada da configuração dos recursos da AWS na conta. Você pode ver como os recursos estão relacionados, obter um histórico de alterações de configuração e ver como os relacionamentos e as configurações foram alterados ao longo do tempo. É possível usar o AWS Config para definir regras que avaliam configurações de recursos para conformidade de dados. As regras do AWS Config representam as definições de configuração ideais para os recursos do API Gateway. Se um recurso violar uma regra e for sinalizado como não compatível, o AWS Config poderá alertá-lo usando um tópico do Amazon Simple Notification Service (Amazon SNS). Para obter mais detalhes, consulte [Monitorar a configuração da API do API Gateway com AWS Config](apigateway-config.md). 

# Registrar em log chamadas de APIs do Amazon API Gateway usando o AWS CloudTrail
<a name="cloudtrail"></a>

O Amazon API Gateway é integrado ao [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html), um serviço que fornece um registro das ações realizadas por um usuário, por um perfil ou por um AWS service (Serviço da AWS). O CloudTrail captura as chamadas de API REST do serviço do API Gateway como eventos. As chamadas capturadas incluem as chamadas do console do API Gateway e as chamadas de código para as APIs do serviço do API Gateway. Ao fazer uso das informações coletadas pelo CloudTrail, é possível determinar a solicitação feita ao API Gateway, o endereço IP no qual a solicitação foi feita, quando a solicitação foi feita e detalhes adicionais.

**nota**  
[TestInvokeAuthorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-authorizer.html) e [TestInvokeMethod](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-method.html) não são registrados no CloudTrail.

Cada entrada de log ou evento contém informações sobre quem gerou a solicitação. As informações de identidade ajudam a determinar o seguinte:
+ Se a solicitação foi feita com credenciais de usuário raiz ou credenciais de usuário.
+ Se a solicitação foi feita em nome de um usuário do Centro de Identidade do IAM.
+ Se a solicitação foi feita com credenciais de segurança temporárias de um perfil ou de um usuário federado.
+ Se a solicitação foi feita por outro AWS service (Serviço da AWS).

Quando a Conta da AWS é criada, o CloudTrail torna-se ativo nela e você tem acesso automático ao **Histórico de eventos** do CloudTrail. O **Histórico de eventos** do CloudTrail fornece um registro visualizável, pesquisável, baixável e imutável dos últimos 90 dias de eventos de gerenciamento gravados em uma Região da AWS. Para obter mais informações, consulte [Trabalhar com histórico de eventos do CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html) no *Guia do usuário do AWS CloudTrail*. Não há cobranças do CloudTrail pela visualização do **Histórico de eventos**.

Para obter um registro contínuo de eventos em sua Conta da AWS nos últimos 90 dias, crie uma trilha ou um armazenamento de dados de eventos do [CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html).

**Trilhas do CloudTrail**  
Uma *trilha* permite que o CloudTrail entregue arquivos de log a um bucket do Amazon S3. As trilhas criadas usando o Console de gerenciamento da AWS são de várias regiões. Só é possível criar uma trilha de região única ou de várias regiões usando a AWS CLI. Criar uma trilha de várias regiões é uma prática recomendada, pois você captura atividades em todas as Regiões da AWS da conta. Ao criar uma trilha de região única, é possível visualizar somente os eventos registrados na Região da AWS da trilha. Para obter mais informações sobre trilhas, consulte [Criar uma trilha para a Conta da AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html) e [Criar uma trilha para uma organização](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-trail-organization.html) no *Guia do usuário do AWS CloudTrail*.  
Uma cópia dos eventos de gerenciamento em andamento pode ser entregue no bucket do Amazon S3 sem nenhum custo via CloudTrail com a criação de uma trilha; no entanto, há cobranças de armazenamento do Amazon S3. Para obter mais informações sobre os preços do CloudTrail, consulte [Preços do AWS CloudTrail](https://aws.amazon.com/cloudtrail/pricing/). Para receber informações sobre a definição de preços do Amazon S3, consulte [Definição de preços do Amazon S3](https://aws.amazon.com/s3/pricing/).

**Armazenamentos de dados de eventos do CloudTrail Lake**  
O *CloudTrail Lake* permite executar consultas baseadas em SQL nos eventos. O CloudTrail Lake converte eventos existentes em formato JSON baseado em linhas para o formato [Apache ORC](https://orc.apache.org/). O ORC é um formato colunar de armazenamento otimizado para recuperação rápida de dados. Os eventos são agregados em *armazenamentos de dados de eventos*, que são coleções imutáveis de eventos baseados nos critérios selecionados com a aplicação de [seletores de eventos avançados](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-concepts.html#adv-event-selectors). Os seletores que aplicados a um armazenamento de dados de eventos controlam quais eventos persistem e estão disponíveis para consulta. Para obter mais informações sobre o CloudTrail Lake, consulte [Trabalhar com o AWS CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html), no *Guia do usuário do AWS CloudTrail*.  
Os armazenamentos de dados de eventos e consultas do CloudTrail Lake incorrem em custos. Ao criar um armazenamento de dados de eventos, você escolhe a [opção de preço](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-manage-costs.html#cloudtrail-lake-manage-costs-pricing-option) que deseja usar para ele. A opção de preço determina o custo para a ingestão e para o armazenamento de eventos, e o período de retenção padrão e máximo para o armazenamento de dados de eventos. Para obter mais informações sobre os preços do CloudTrail, consulte [Preços do AWS CloudTrail](https://aws.amazon.com/cloudtrail/pricing/).

## Eventos de gerenciamento do API Gateway no CloudTrail
<a name="cloudtrail-management-events"></a>

Os [eventos de gerenciamento](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html#logging-management-events) fornecem informações sobre operações de gerenciamento executadas em recursos na Conta da AWS. Elas também são conhecidas como operações de ambiente de gerenciamento. Por padrão, o CloudTrail registra eventos de gerenciamento em logs.

O Amazon API Gateway registra em log todas as ações do API Gateway como eventos de gerenciamento, exceto [TestInvokeAuthorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-authorizer.html) e [TestInvokeMethod](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-method.html). Para encontrar uma lista das ações do Amazon API Gateway que o API Gateway registra em log no CloudTrail, consulte [Amazon API Gateway API Reference](https://docs.aws.amazon.com/apigateway/latest/api/API_Operations.html).

## Exemplo de evento do API Gateway
<a name="cloudtrail-event-examples"></a>

Um evento representa uma única solicitação de qualquer origem e inclui informações sobre a operação solicitada, a data e a hora da operação da API, os parâmetros de solicitação etc. Os arquivos de log do CloudTrail não são um rastreamento de pilha ordenada de chamadas de API públicas, portanto não são exibidos em uma ordem específica.

O seguinte exemplo mostra uma evento do CloudTrail que demonstra a ação `GetResource` do API Gateway:

```
{
    Records: [
        {
            eventVersion: "1.03",
            userIdentity: {
                type: "Root",
                principalId: "AKIAI44QH8DHBEXAMPLE",
                arn: "arn:aws:iam::123456789012:root",
                accountId: "123456789012",
                accessKeyId: "AKIAIOSFODNN7EXAMPLE",
                sessionContext: {
                    attributes: {
                        mfaAuthenticated: "false",
                        creationDate: "2015-06-16T23:37:58Z"
                    }
                }
            },
            eventTime: "2015-06-17T00:47:28Z",
            eventSource: "apigateway.amazonaws.com",
            eventName: "GetResource",
            awsRegion: "us-east-1",
            sourceIPAddress: "203.0.113.11",
            userAgent: "example-user-agent-string",
            requestParameters: {
                restApiId: "3rbEXAMPLE",
                resourceId: "5tfEXAMPLE",
                template: false
            },
            responseElements: null,
            requestID: "6d9c4bfc-148a-11e5-81b6-7577cEXAMPLE",
            eventID: "4d293154-a15b-4c33-9e0a-ff5eeEXAMPLE",
            readOnly: true,
            eventType: "AwsApiCall",
            recipientAccountId: "123456789012"
        },
        ... additional entries ...
    ]
}
```

Para obter informações sobre o conteúdo dos registros do CloudTrail, consulte [Conteúdo dos registros do CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html) no *Guia do usuário do AWS CloudTrail*.

# Monitorar a configuração da API do API Gateway com AWS Config
<a name="apigateway-config"></a>

Você pode usar o [AWS Config](https://aws.amazon.com/config/) para registrar as alterações de configuração feitas em seus recursos de API do API Gateway e enviar notificações com base em alterações de recursos. A manutenção de um histórico de alteração de configurações do API Gateway é útil para casos de uso de solução de problemas operacionais, auditoria e conformidade.

AWS ConfigO pode rastrear alterações em:
+ **Configuração de estágio de API**, como:
  + configurações de cluster de cache
  + configurações de limites
  + configurações de logs de acesso
  + a implantação ativa definida no estágio
+ **Configuração de API**, como:
  + configuração do endpoint
  + versão
  + protocolo
  + tags

Além disso, o recurso do Regras do AWS Config permite que você defina regras de configuração e detecte, rastreie e alerte violações dessas regras automaticamente. Além disso, o rastreamento de alterações nessas propriedades de configuração de recursos permite criar regras do AWS Config acionadas por alterações para recursos do API Gateway e testar as configurações de recursos em relação às melhores práticas.

Você pode habilitar o AWS Config em sua conta usando o console do AWS Config ou a AWS CLI. Selecione os tipos de recurso para os quais você deseja rastrear as alterações. Se você já configurou o AWS Config para registrar todos os tipos de recursos, esses recursos do API Gateway serão registrados automaticamente na sua conta. O suporte ao Amazon API Gateway em AWS Config está disponível em todas as regiões públicas da AWS e em AWS GovCloud (US). Para obter a lista completa de regiões compatíveis, consulte [Endpoints e cotas do Amazon API Gateway](https://docs.aws.amazon.com/general/latest/gr/apigateway.html) na Referência geral da AWS.

**Topics**
+ [Tipos de recursos compatíveis](#apigateway-config-resources-rules)
+ [Configurar o AWS Config](#apigateway-config-setup)
+ [Configuração do AWS Config para registrar recursos do API Gateway](#apigateway-config-configuring)
+ [Vizualização de detalhes de configuração do API Gateway no console do AWS Config](#apigateway-config-console)
+ [Avaliação de recursos do API Gateway usando regras do AWS Config](#apigateway-config-rules)

## Tipos de recursos compatíveis
<a name="apigateway-config-resources-rules"></a>

Os seguintes tipos de recursos do API Gateway são integrados ao AWS Config e documentados em [Relacionamentos de recursos e tipos de recursos da AWS com suporte do AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html):
+ `AWS::ApiGatewayV2::Api` (WebSocket e API HTTP)
+ `AWS::ApiGateway::RestApi` (API REST)
+ `AWS::ApiGatewayV2::Stage` (estágio de API WebSocket e HTTP)
+ `AWS::ApiGateway::Stage` (Estágio de API REST)

Para obter mais informações sobre o AWS Config, consulte o [Guia do desenvolvedor do AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/). Para obter informações sobre a definição de preço, consulte a [página de informações sobre a definição de preço do AWS Config](https://aws.amazon.com/config/pricing/).

**Importante**  
Se você alterar qualquer uma das seguintes propriedades da API depois que a API for implantada, *deverá* [reimplantá-la](how-to-deploy-api.md) para propagar as alterações. Caso contrário, você verá as alterações de atributo no console do AWS Config, mas as configurações de propriedade anteriores ainda estarão em vigor. O comportamento de tempo de execução da API permanecerá inalterado.  
**`AWS::ApiGateway::RestApi`** – `binaryMediaTypes`, `minimumCompressionSize`, `apiKeySource`
**`AWS::ApiGatewayV2::Api`** – `apiKeySelectionExpression`

## Configurar o AWS Config
<a name="apigateway-config-setup"></a>

Para fazer a configuração inicial do AWS Config, consulte os tópicos a seguir no [Guia do desenvolvedor do AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/).
+ [Configuração do AWS Config no console](https://docs.aws.amazon.com/config/latest/developerguide/gs-console.html)
+ [Configuração do AWS Config com a AWS CLI](https://docs.aws.amazon.com/config/latest/developerguide/gs-cli.html)

## Configuração do AWS Config para registrar recursos do API Gateway
<a name="apigateway-config-configuring"></a>

Por padrão, o AWS Config registra as alterações de configuração para todos os tipos de recursos regionais com suporte, que ele descobre na região em que seu ambiento está sendo executado. Você pode personalizar o AWS Config para registrar alterações somente para tipos de recursos específicos ou alterações em recursos globais.

Para saber mais sobre os recursos regionais versus globais e saber como personalizar sua configuração do AWS Config, consulte [Selecionar quais recursos o AWS Config registra](https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html).

## Vizualização de detalhes de configuração do API Gateway no console do AWS Config
<a name="apigateway-config-console"></a>

É possível usar o console do AWS Config para procurar recursos do API Gateway atuais e históricos e obter detalhes sobre suas configurações. O procedimento a seguir mostra como encontrar informações sobre uma API do API Gateway.

**Como localizar um recurso do API Gateway no console de configuração do AWS**

1. Abra o [console do AWS Config](https://console.aws.amazon.com/config).

1. Escolha **Resources** (Recursos).

1. Na página de inventário **Resource (Recurso)**, selecione **Resources (Recursos)**.

1. Abra o menu **Resource type (Tipo de recurso)**, role a tela até APIGateway ou APIGatewayV2 e selecione um ou mais tipos de recursos do API Gateway.

1. Escolha **Look up**.

1. Selecione um ID de recurso na lista de recursos que o AWS Config exibe. O AWS Config exibe detalhes de configuração e outras informações sobre o recurso que você selecionou.

1. Para ver os detalhes completos da configuração registrada, selecione **View Details (Exibir detalhes)**.

Para saber mais maneiras de localizar um recurso e exibir informações nesta página, consulte [Visualizar configurações de recursos e histórico da AWS](https://docs.aws.amazon.com/config/latest/developerguide/view-manage-resource.html) no Guia do desenvolvedor do AWS Config.

## Avaliação de recursos do API Gateway usando regras do AWS Config
<a name="apigateway-config-rules"></a>

É possível criar regras do AWS Config que representam as definições de configuração ideais para seus recursos do API Gateway. Você pode usar [Regras de configuração gerenciadas pelo AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html) predefinidas ou definir regras personalizadas. O AWS Config monitora de forma contínua as alterações na configuração dos seus recursos para determinar se essas alterações violam alguma condição em suas regras. O console AWS Config mostra o status de compatibilidade de suas regras e recursos.

Se um recurso violar uma regra e for sinalizado como não compatível, o AWS Config poderá alertá-lo usando um tópico do [Guia do desenvolvedor do Amazon Simple Notification](https://docs.aws.amazon.com/sns/latest/dg/) (Amazon SNS). Para consumir programaticamente os dados nesses alertas do AWS Config, use uma fila do Amazon Simple Queue Service (Amazon SQS) como o endpoint de notificação para o tópico do Amazon SNS.

Para saber mais sobre como configurar e usar regras, consulte [Avaliação de recursos com regras](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) no [Guia do desenvolvedor do AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/). 

# Validação de conformidade do Amazon API Gateway
<a name="apigateway-compliance"></a>

Para saber se um AWS service (Serviço da AWS) está no escopo de programas de conformidade específicos, consulte [Serviços da AWS no escopo por programa de conformidade](https://aws.amazon.com/compliance/services-in-scope/) e selecione o programa de conformidade em que você está interessado. Para obter informações gerais, consulte [Programas de Conformidade da AWS](https://aws.amazon.com/compliance/programs/).

É possível baixar relatórios de auditoria de terceiros usando o AWS Artifact. Para obter mais informações, consulte [Baixar relatórios no AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html).

Sua responsabilidade de conformidade ao usar o Serviços da AWS é determinada pela confidencialidade dos seus dados, pelos objetivos de conformidade da sua empresa e pelos regulamentos e leis aplicáveis. Para ter mais informações sobre sua responsabilidade pela conformidade ao usar Serviços da AWS, consulte a [documentação da AWS sobre segurança](https://docs.aws.amazon.com/security/).

# Resiliência no Amazon API Gateway
<a name="disaster-recovery-resiliency"></a>

A infraestrutura global da AWS é criada com base em regiões da AWS e zonas de disponibilidade. As regiões da AWS As regiões fornecem várias zonas de disponibilidade separadas e isoladas fisicamente, conectadas com baixa latência, throughput elevado e redes altamente redundantes. Com as zonas de disponibilidade, é possível projetar e operar aplicativos e bancos de dados que automaticamente executam o failover entre as zonas sem interrupção. As zonas de disponibilidade são altamente disponíveis, tolerantes a falhas e escaláveis que uma ou várias infraestruturas de data centers tradicionais. 

Como um serviço regional totalmente gerenciado, o API Gateway opera em várias zonas de disponibilidade em cada região, usando a redundância das zonas de disponibilidade para minimizar falhas na infraestrutura como uma categoria de risco de disponibilidade. O API Gateway foi projetado para se recuperar automaticamente da falha de uma zona de disponibilidade. 

Para mais informações sobre regiões e zonas de disponibilidade da AWS, consulte [Infraestrutura global da AWS](https://aws.amazon.com/about-aws/global-infrastructure/).

Para evitar que suas APIs fiquem sobrecarregadas com muitas solicitações, o API Gateway limita as solicitações para suas APIs. Especificamente, o API Gateway define um limite para uma taxa de estado fixo e uma intermitência de envios de solicitações para todas as APIs na sua conta. É possível configurar a limitação personalizada para suas APIs. Para saber mais, consulte [Controle de utilização das solicitações das APIs REST para ter um melhor throughput no API Gateway](api-gateway-request-throttling.md).

É possível usar as verificações de integridade do Route 53 para controlar o failover de DNS de uma API do API Gateway em uma região primária para uma API do API Gateway em uma região secundária. Para ver um exemplo, consulte [Configurar verificações de integridade personalizadas para failover de DNS para um API Gateway](dns-failover.md).

# Segurança de infraestrutura no Amazon API Gateway
<a name="infrastructure-security"></a>

Por ser um serviço gerenciado, o Amazon API Gateway é protegido pela segurança da rede global da AWS. Para obter informações sobre serviços de segurança da AWS e como a AWS protege a infraestrutura, consulte [Segurança na Nuvem AWS](https://aws.amazon.com/security/). Para projetar seu ambiente da AWS usando as práticas recomendadas de segurança da infraestrutura, consulte [Proteção de Infraestrutura](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) em *Pilar de Segurança: AWS Estrutura bem arquitetada*.

Use as chamadas de API publicadas da AWS para acessar o API Gateway por meio da rede. Os clientes devem oferecer compatibilidade com:
+ Transport Layer Security (TLS). Exigimos TLS 1.2 e recomendamos TLS 1.3.
+ Conjuntos de criptografia com perfect forward secrecy (PFS) como DHE (Ephemeral Diffie-Hellman) ou ECDHE (Ephemeral Elliptic Curve Diffie-Hellman). A maioria dos sistemas modernos, como Java 7 e versões posteriores, comporta esses modos.

É possível chamar essas operações de API de qualquer local da rede, mas o API Gateway não é compatível com políticas de acesso baseadas em recursos, que podem incluir restrições com base no endereço IP de origem. Também é possível usar políticas baseadas em recursos para controlar o acesso da Amazon Virtual Private Cloud (Amazon VPC) endpoints ou de VPCs específicas. Na verdade, isso isola o acesso à rede a um determinado recurso do API Gateway apenas por meio da VPC específica dentro da rede da AWS.

# Análise de vulnerabilidades no Amazon API Gateway
<a name="vulnerability-analysis"></a>

A configuração e os controles de TI são uma responsabilidade compartilhada entre a AWS e você, nosso cliente. Para obter mais informações, consulte o AWS [modelo de responsabilidade compartilhada da ](https://aws.amazon.com/compliance/shared-responsibility-model/).

# Melhores práticas de segurança no Amazon API Gateway
<a name="security-best-practices"></a>

O API Gateway fornece uma série de recursos de segurança a serem considerados no desenvolvimento e na implementação das suas próprias políticas de segurança. As melhores práticas a seguir são diretrizes gerais e não representam uma solução completa de segurança. Como essas práticas recomendadas podem não ser adequadas ou suficientes para o seu ambiente, trate-as como considerações úteis em vez de prescrições.

**Implemente o privilégio de acesso mínimo**  
Use políticas do IAM para implementar o acesso de menor privilégio para criar, ler, atualizar ou excluir APIs do API Gateway. Para saber mais, consulte [Gerenciamento de identidade e acesso para o Amazon API Gateway](security-iam.md). O API Gateway oferece várias opções para controlar o acesso às APIs criadas por você. Para saber mais, consulte [Controlar e gerenciar o acesso a APIs REST no API Gateway](apigateway-control-access-to-api.md), [Controlar e gerenciar o acesso a APIs de WebSocket no API Gateway](apigateway-websocket-api-control-access.md) e [Controlar o acesso a APIs HTTP com autorizadores JWT no API Gateway](http-api-jwt-authorizer.md).

**Implementar o registro em log**  
Use o CloudWatch Logs ou o Amazon Data Firehose para registrar em log solicitações em suas APIs. Para saber mais, consulte [Monitorar APIs REST no API Gateway](rest-api-monitor.md), [Configurar o registro em log para APIs de WebSocket no API Gateway](websocket-api-logging.md) e [Configurar registro em log para APIs HTTP no API Gateway](http-api-logging.md).

**Implementar alarmes do Amazon CloudWatch**  
Ao usar alarmes do CloudWatch, você observa uma única métrica durante um período especificado. Se a métrica exceder determinado limite, uma notificação será enviada para um tópico do Amazon Simple Notification Service ou para uma política do AWS Auto Scaling. Os alarmes do CloudWatch não invocam ações quando uma métrica está em um estado específico. O estado deve ter sido alterado e mantido por uma quantidade especificada de períodos. Para obter mais informações, consulte [Monitorar a execução da API REST com métricas do Amazon CloudWatch](monitoring-cloudwatch.md).

**Habilitar o AWS CloudTrail**  
O CloudTrail fornece um registro de ações executadas por um usuário, uma função ou um serviço da AWS no API Gateway. Usando as informações coletadas pelo CloudTrail, é possível determinar a solicitação feita para o API Gateway, o endereço IP do qual a solicitação foi feita, quem fez a solicitação, quando ela foi feita e detalhes adicionais. Para obter mais informações, consulte [Registrar em log chamadas de APIs do Amazon API Gateway usando o AWS CloudTrail](cloudtrail.md). 

**Habilitar o AWS Config**  
O AWS Config fornece uma visão detalhada da configuração dos recursos da AWS na conta. Você pode ver como os recursos estão relacionados, obter um histórico de alterações de configuração e ver como os relacionamentos e as configurações foram alterados ao longo do tempo. É possível usar o AWS Config para definir regras que avaliam configurações de recursos para conformidade de dados. As regras do AWS Config representam as definições de configuração ideais para os recursos do API Gateway. Se um recurso violar uma regra e for sinalizado como não compatível, o AWS Config poderá alertá-lo usando um tópico do Amazon Simple Notification Service (Amazon SNS). Para obter detalhes, consulte [Monitorar a configuração da API do API Gateway com AWS Config](apigateway-config.md). 

**Use AWS Security Hub CSPM**  
Monitore seu uso do API Gateway em relação às práticas recomendadas de segurança com o [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html). O CSPM Security Hub usa *controles de segurança* para avaliar configurações de recursos e *padrões de segurança* que ajudam você a cumprir vários frameworks de conformidade. Para ter mais informações sobre como usar o CSPM do Security Hub para avaliar os recursos do API Gateway, consulte [Controles do Amazon API Gateway](https://docs.aws.amazon.com/securityhub/latest/userguide/apigateway-controls.html) no *Guia do usuário do AWS Security Hub*.