

# 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 | 