

**Apresentando uma nova experiência de console para AWS WAF**

Agora você pode usar a experiência atualizada para acessar a AWS WAF funcionalidade em qualquer lugar do console. Para obter mais detalhes, consulte [Trabalhando com o console](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html). 

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

# Como AWS WAF funciona com o IAM
<a name="security_iam_service-with-iam"></a>

Esta seção explica como usar os recursos do IAM com AWS WAF.

**nota**  
Apresentando novas ações nas políticas do IAM que oferecem um controle mais granular ao invocar operações relacionadas à Web ACL Association para Application Load Balancer e. AWS AppSync Consulte [Ações que exigem configurações de permissões adicionais](#security_iam_action-additions).

Antes de usar o IAM para gerenciar o acesso AWS WAF, saiba com quais recursos do IAM estão disponíveis para uso AWS WAF.






**Recursos do IAM que você pode usar com AWS WAF**  

| Recurso do IAM | AWS WAF apoio | 
| --- | --- | 
| [Políticas baseadas em identidade](#security_iam_service-with-iam-id-based-policies) |  Sim | 
| [Políticas baseadas em atributos](#security_iam_service-with-iam-resource-based-policies) |  Sim | 
| [Ações de políticas](#security_iam_service-with-iam-id-based-policies-actions) |  Sim | 
| [Recursos de políticas](#security_iam_service-with-iam-id-based-policies-resources) |  Sim | 
| [Chaves de condição de política (específicas do serviço)](#security_iam_service-with-iam-id-based-policies-conditionkeys) |  Sim | 
| [ACLs](#security_iam_service-with-iam-acls) |  Não  | 
| [ABAC (tags em políticas)](#security_iam_service-with-iam-tags) |  Parcial | 
| [Credenciais temporárias](#security_iam_service-with-iam-roles-tempcreds) |  Sim | 
| [Sessões de acesso direto (FAS)](#security_iam_service-with-iam-principal-permissions) |  Sim | 
| [Perfis de serviço](#security_iam_service-with-iam-roles-service) |  Sim | 
| [Perfis vinculados a serviço](#security_iam_service-with-iam-roles-service-linked) |  Sim | 

Para ter uma visão de alto nível de como AWS WAF e outros AWS serviços funcionam com a maioria dos recursos do IAM, consulte [AWS os serviços 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*.

## Políticas baseadas em identidade para AWS WAF
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Compatível com políticas baseadas em identidade:** sim

As políticas baseadas em identidade são documentos de políticas de permissões JSON que podem ser anexados a uma identidade, como usuário do IAM, grupo de usuários ou perfil. Essas políticas controlam quais ações os usuários e perfis podem realizar, em quais recursos e em que 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*.

Com as políticas baseadas em identidade do IAM, é possível especificar ações e recursos permitidos ou negados, assim como as condições sob as quais as ações são permitidas ou negadas. Para saber mais sobre todos os elementos que podem ser usados em uma política JSON, consulte [Referência de elemento 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*.

Para ver exemplos de políticas AWS WAF baseadas em identidade, consulte. [Exemplos de políticas baseadas em identidade para AWS WAF](security_iam_id-based-policy-examples.md)

## Políticas baseadas em recursos dentro AWS WAF
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**Compatível com políticas baseadas em recursos:** sim

Políticas baseadas em recursos são documentos de políticas JSON que você anexa a um recurso. São exemplos de políticas baseadas em recursos as *políticas de confiança de perfil* do IAM e as *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. Para o atributo ao qual a política está anexada, a política define quais ações uma entidade principal especificado pode executar nesse atributo e em que condições. É 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. Os diretores podem incluir contas, usuários, funções, usuários federados ou. Serviços da AWS

Para permitir o acesso entre contas, é possível especificar uma conta inteira ou as entidades do IAM em outra conta como a entidade principal em uma política baseada em recursos. 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*.

AWS WAF usa políticas baseadas em recursos para apoiar o compartilhamento de grupos de regras entre contas. Você compartilha um grupo de regras que você possui com outra AWS conta fornecendo as configurações de política com base em recursos para a chamada de AWS WAF API `PutPermissionPolicy` ou para uma chamada de CLI ou SDK equivalente. Para obter informações adicionais, incluindo exemplos e links para a documentação dos outros idiomas disponíveis, consulte [PutPermissionPolicy](https://docs.aws.amazon.com/waf/latest/APIReference/API_PutPermissionPolicy.html)a Referência da AWS WAF API. Essa funcionalidade não está disponível por outros meios, como o console ou o CloudFormation. 

## Ações políticas para AWS WAF
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Compatível com ações de políticas:** sim

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

O elemento `Action` de uma política JSON descreve as ações que podem ser usadas para permitir ou negar acesso em uma política. Incluem ações em uma política para conceder permissões para executar a operação associada.



Para ver uma lista de AWS WAF ações e permissões para cada uma, consulte [Ações definidas pela AWS WAF V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions) na *Referência de Autorização de Serviço*.

As ações de política AWS WAF usam o seguinte prefixo antes da ação:

```
wafv2
```

Para especificar várias ações em uma única instrução, separe-as com vírgulas.

```
"Action": [
      "wafv2:{{action1}}",
      "wafv2:{{action2}}"
         ]
```



Você também pode especificar várias ações usando caracteres-curinga (\*). Por exemplo, para especificar todas as ações AWS WAF que começam com`List`, inclua a seguinte ação:

```
"Action": "wafv2:List*"
```

Para ver exemplos de políticas AWS WAF baseadas em identidade, consulte. [Exemplos de políticas baseadas em identidade para AWS WAF](security_iam_id-based-policy-examples.md)

### Ações que exigem configurações de permissões adicionais
<a name="security_iam_action-additions"></a>

Algumas ações exigem permissões que não podem ser completamente descritas em [Ações definidas pela AWS WAF V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions) na *Referência de Autorização de Serviço*. Esta seção fornece informações adicionais sobre permissões.

**Topics**
+ [Permissões para `AssociateWebACL`](#security_iam_action-AssociateWebACL)
+ [Permissões para `DisassociateWebACL`](#security_iam_action-DisassociateWebACL)
+ [Permissões para `GetWebACLForResource`](#security_iam_action-GetWebACLForResource)
+ [Permissões para `ListResourcesForWebACL`](#security_iam_action-ListResourcesForWebACL)

#### Permissões para `AssociateWebACL`
<a name="security_iam_action-AssociateWebACL"></a>

Esta seção lista as permissões necessárias para associar um pacote de proteção (ACL da Web) a um recurso usando a ação `AssociateWebACL` do AWS WAF . 

Para CloudFront distribuições da Amazon, em vez dessa ação, use a CloudFront ação`UpdateDistribution`. Para obter mais informações, consulte [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)a *Amazon CloudFront API Reference*. 

**API REST do Amazon API Gateway**  
Requer permissão para chamar o API Gateway `SetWebACL` no tipo de recurso da API REST e para chamar AWS WAF `AssociateWebACL` um pacote de proteção (Web ACL). 

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "apigateway:SetWebACL"
    ],
    "Resource": [
        "arn:aws:apigateway:*::/restapis/*/stages/*"
    ]
}
```

**Application Load Balancer**  
 **Configuração de permissão antiga**

Requer permissão para chamar `elasticloadbalancing:SetWebACL` uma ação no tipo de recurso do Application Load Balancer e para chamar AWS WAF `AssociateWebACL` um pacote de proteção (web ACL). 

```
{
                  "Sid": "AssociateWebACL1",
                  "Effect": "Allow",
                  "Action": [
                     "wafv2:AssociateWebACL"
                  ],
                  "Resource": [
                     "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
                  ]
               },
               {
                  "Sid": "AssociateWebACL2",
                  "Effect": "Allow",
                  "Action": [
                     "elasticloadbalancing:SetWebACL"
                  ],
                  "Resource": [
                     "arn:aws:elasticloadbalancing:*:{{account-id}}:loadbalancer/app/*/*"
                  ]
               }
```

 **Nova configuração de permissão**

 Requer permissão para chamar `elasticloadbalancing:CreateWebACLAssociation` uma ação no tipo de recurso do Application Load Balancer e para chamar AWS WAF `AssociateWebACL` um pacote de proteção (web ACL).

```
{
   "Sid": "AssociateWebACL1",
   "Effect": "Allow",
   "Action": [
      "wafv2:AssociateWebACL"
   ],
   "Resource": [
      "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
   ]
},
{
   "Sid": "AssociateWebACL2",
   "Effect": "Allow",
   "Action": [
      "elasticloadbalancing:CreateWebACLAssociation"
   ],
   "Resource": [
         "arn:aws:elasticloadbalancing:*:{{account-id}}:loadbalancer/app/*/*"
   ]
}
```

**AWS AppSync API do GraphQL**  
 **Configuração de permissão antiga**

Requer permissão para chamar AWS AppSync `SetWebACL` o tipo de recurso da API GraphQL e para chamar AWS WAF `AssociateWebACL` um pacote de proteção (web ACL). 

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "appsync:SetWebACL"
    ],
    "Resource": [
        "arn:aws:appsync:*:{{account-id}}:apis/*"
    ]
}
```

 **Nova configuração de permissão**

Requer permissão para chamar `appsync:AssociateWebACL` uma ação no tipo de recurso da API GraphQL e para chamar AWS WAF `AssociateWebACL` um pacote de proteção (web ACL).

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "appsync:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:appsync:*:account-id:apis/*"
    ]
}
```

**Grupo de usuários do Amazon Cognito**  
Requer permissão para chamar a `AssociateWebACL` ação do Amazon Cognito no tipo de recurso do grupo de usuários e para chamar AWS WAF `AssociateWebACL` um pacote de proteção (web ACL). 

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:{{account-id}}:userpool/*"
    ]
}
```

**AWS App Runner serviço**  
Requer permissão para chamar a `AssociateWebACL` ação do App Runner no tipo de recurso do serviço App Runner e para chamar AWS WAF `AssociateWebACL` uma ACL da web. 

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "apprunner:AssociateWebAcl"
    ],
    "Resource": [
        "arn:aws:apprunner:*:{{account-id}}:service/*/*"
    ]
}
```

**AWS Instância de acesso verificado**  
Requer permissão para chamar a `ec2:AssociateVerifiedAccessInstanceWebAcl` ação no tipo de recurso da instância de acesso verificado e para chamar AWS WAF `AssociateWebACL` uma ACL da web. 

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "ec2:AssociateVerifiedAccessInstanceWebAcl"
    ],
    "Resource": [
        "arn:aws:ec2:*:{{account-id}}:verified-access-instance/*"
    ]
}
```

#### Permissões para `DisassociateWebACL`
<a name="security_iam_action-DisassociateWebACL"></a>

Esta seção lista as permissões necessárias para desassociar um pacote de proteção (ACL da Web) de um recurso usando a ação `DisassociateWebACL` do AWS WAF . 

Para CloudFront distribuições da Amazon, em vez dessa ação, use a CloudFront ação `UpdateDistribution` com um ID de pacote de proteção vazio (web ACL). Para obter mais informações, consulte [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)a *Amazon CloudFront API Reference*. 

**API REST do Amazon API Gateway**  
Requer permissão para chamar `SetWebACL` do API Gateway no tipo de recurso da API REST. Não requer permissão para ligar AWS WAF `DisassociateWebACL`.

```
{
    "Sid": "DisassociateWebACL",
    "Effect": "Allow",
    "Action": [
        "apigateway:SetWebACL"
    ],
    "Resource": [
        "arn:aws:apigateway:*::/restapis/*/stages/*"
    ]
}
```

**Application Load Balancer**  
 **Configuração de permissão antiga**

Requer permissão para chamar a ação `elasticloadbalancing:SetWebACL` no tipo de recurso do Application Load Balancer. Não requer permissão para ligar AWS WAF `DisassociateWebACL`.

```
{
    "Sid": "DisassociateWebACL",
    "Effect": "Allow",
    "Action": [
        "elasticloadbalancing:SetWebACL"
    ],
    "Resource": [
        "arn:aws:elasticloadbalancing:*:{{account-id}}:loadbalancer/app/*/*"
    ]
}
```

 **Nova configuração de permissão**

Requer permissão para chamar a ação `elasticloadbalancing:DeleteWebACLAssociation` no tipo de recurso do Application Load Balancer. Também requer permissão para ligar AWS WAF `DisassociateWebACL`.

```
{
      "Sid": "DisassociateWebACL",
      "Effect": "Allow",
      "Action": "wafv2:DisassociateWebACL",
      "Resource": "*" 
    },
    {
      "Sid": "DisassociateWebACL2",
      "Effect": "Allow",
      "Action": [
         "elasticloadbalancing:DeleteWebACLAssociation"
      ],
      "Resource": [
        "arn:aws:elasticloadbalancing:*:{{account-id}}:loadbalancer/app/*/*"
      ]
   }   
}
```

**AWS AppSync API do GraphQL**  
**Configuração de permissão antiga**

Requer permissão para chamar o AWS AppSync `SetWebACL` tipo de recurso da API GraphQL. Não requer permissão para chamar AWS WAF `DisassociateWebACL`.

```
{
    "Sid": "DisassociateWebACL",
    "Effect": "Allow",
    "Action": [
        "appsync:SetWebACL"
    ],
    "Resource": [
        "arn:aws:appsync:*:{{account-id}}:apis/*"
    ]
}
```

 **Nova configuração de permissão**

Requer permissão para chamar a `appsync:DisassociateWebACL` ação no tipo de recurso da API GraphQL. Também requer permissão para ligar AWS WAF `DisassociateWebACL`.

```
{
    "Sid": "DisassociateWebACL1",
    "Effect": "Allow",
    "Action": "wafv2:DisassociateWebACL",
    "Resource": "*"
},
{
    "Sid": "DisassociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "appsync:DisassociateWebACL"
    ],
    "Resource": [
        "arn:aws:appsync:*:account-id:apis/*"
    ]
}
```

**Grupo de usuários do Amazon Cognito**  
Requer permissão para chamar a `DisassociateWebACL` ação do Amazon Cognito no tipo de recurso do grupo de usuários e para chamar. AWS WAF `DisassociateWebACL` 

```
{
    "Sid": "DisassociateWebACL1",
    "Effect": "Allow",
    "Action": "wafv2:DisassociateWebACL",
    "Resource": "*"
},
{
    "Sid": "DisassociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:DisassociateWebACL"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:{{account-id}}:userpool/*"
    ]
}
```

**AWS App Runner serviço**  
Requer permissão para chamar a `DisassociateWebACL` ação App Runner no tipo de recurso de serviço App Runner e para chamar. AWS WAF `DisassociateWebACL` 

```
{
    "Sid": "DisassociateWebACL1",
    "Effect": "Allow",
    "Action": "wafv2:DisassociateWebACL",
    "Resource": "*"
},
{
    "Sid": "DisassociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "apprunner:DisassociateWebAcl"
    ],
    "Resource": [
        "arn:aws:apprunner:*:{{account-id}}:service/*/*"
    ]
}
```

**AWS Instância de acesso verificado**  
Requer permissão para chamar a `ec2:DisassociateVerifiedAccessInstanceWebAcl` ação no tipo de recurso da instância de Acesso Verificado e para chamar AWS WAF `DisassociateWebACL`. 

```
{
    "Sid": "DisassociateWebACL1",
    "Effect": "Allow",
    "Action": "wafv2:DisassociateWebACL",
    "Resource": "*"
},
{
    "Sid": "DisassociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "ec2:DisassociateVerifiedAccessInstanceWebAcl"
    ],
    "Resource": [
        "arn:aws:ec2:*:{{account-id}}:verified-access-instance/*"
    ]
}
```

#### Permissões para `GetWebACLForResource`
<a name="security_iam_action-GetWebACLForResource"></a>

Esta seção lista as permissões necessárias para obter o pacote de proteção (ACL da Web) para um recurso protegido usando a ação `GetWebACLForResource` do AWS WAF . 

Para CloudFront distribuições da Amazon, em vez dessa ação, use a CloudFront ação`GetDistributionConfig`. Para obter mais informações, consulte [GetDistributionConfig](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetDistributionConfig.html)a *Amazon CloudFront API Reference*. 

**nota**  
`GetWebACLForResource` requer permissão para chamar `GetWebACL`. Nesse contexto, AWS WAF usa `GetWebACL` somente para verificar se sua conta tem a permissão necessária para acessar o pacote de proteção (Web ACL) que `GetWebACLForResource` retorna. Ao ligar`GetWebACLForResource`, você pode receber um erro indicando que sua conta não está autorizada a atuar `wafv2:GetWebACL` no recurso. AWS WAF não adiciona esse tipo de erro ao histórico de AWS CloudTrail eventos. 

**API REST do Amazon API Gateway**  
Exigir permissão para ligar AWS WAF `GetWebACLForResource` e `GetWebACL` solicitar um pacote de proteção (Web ACL). 

```
{
    "Sid": "GetWebACLForResource",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
}
```

**Application Load Balancer**  
 **Configuração de permissão antiga**

Exigir permissão para ligar AWS WAF `GetWebACLForResource` e `GetWebACL` solicitar um pacote de proteção (Web ACL). 

```
{
    "Sid": "GetWebACLForResource",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
}
```

 **Nova configuração de permissão**

Exigir permissão para ligar AWS WAF `GetWebACLForResource` e `GetWebACL` solicitar um pacote de proteção (Web ACL). Também exija permissão para ligar`elasticloadbalancing:GetLoadBalancerWebACL`.

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
   "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "elasticloadbalancing:GetLoadBalancerWebACL"
    ],
    "Resource": [
        "arn:aws:elasticloadbalancing:*:{{account-id}}:loadbalancer/app/*/*"
    ]
}
```

**AWS AppSync API do GraphQL**  
 **Configuração de permissão antiga**

Exigir permissão para ligar AWS WAF `GetWebACLForResource` e `GetWebACL` solicitar um pacote de proteção (Web ACL). 

```
{
    "Sid": "GetWebACLForResource",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
}
```

 **Nova configuração de permissão**

Exigir permissão para ligar AWS WAF `GetWebACLForResource` e `GetWebACL` solicitar um pacote de proteção (Web ACL). Também exija permissão para ligar`appsync:GetWebACLForResource`.

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
   "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "appsync:GetWebACLForResource"
    ],
    "Resource": [
        "arn:aws:appsync:*:{{account-id}}:apis/*"
    ]
}
```

**Grupo de usuários do Amazon Cognito**  
Requer permissão para chamar a `GetWebACLForResource` ação do Amazon Cognito no tipo de recurso do grupo de usuários e para chamar e. AWS WAF `GetWebACLForResource` `GetWebACL` 

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [ 
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:GetWebACLForResource"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:{{account-id}}:userpool/*"
    ]
}
```

**AWS App Runner serviço**  
Requer permissão para chamar a `DescribeWebAclForService` ação App Runner no tipo de recurso do serviço App Runner e para chamar e. AWS WAF `GetWebACLForResource` `GetWebACL` 

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "apprunner:DescribeWebAclForService"
    ],
    "Resource": [
        "arn:aws:apprunner:*:{{account-id}}:service/*/*"
    ]
}
```

**AWS Instância de acesso verificado**  
Requer permissão para chamar a `ec2:GetVerifiedAccessInstanceWebAcl` ação no tipo de recurso da instância de Acesso Verificado e para chamar AWS WAF `GetWebACLForResource` `GetWebACL` e. 

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "ec2:GetVerifiedAccessInstanceWebAcl"
    ],
    "Resource": [
        "arn:aws:ec2:*:{{account-id}}:verified-access-instance/*"
    ]
}
```

#### Permissões para `ListResourcesForWebACL`
<a name="security_iam_action-ListResourcesForWebACL"></a>

Esta seção lista as permissões necessárias para recuperar a lista de recursos protegidos para um pacote de proteção (ACL da Web) usando a ação `ListResourcesForWebACL` do AWS WAF . 

Para CloudFront distribuições da Amazon, em vez dessa ação, use a CloudFront ação`ListDistributionsByWebACLId`. Para obter mais informações, consulte [ListDistributionsByWebACLId](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListDistributionsByWebACLId.html)a *Amazon CloudFront API Reference*. 

**API REST do Amazon API Gateway**  
Exigir permissão AWS WAF `ListResourcesForWebACL` para solicitar uma ACL da web. 

```
{
    "Sid": "ListResourcesForWebACL",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
}
```

**Application Load Balancer**  
 **Configuração de permissão antiga**

Exigir permissão AWS WAF `ListResourcesForWebACL` para solicitar um pacote de proteção (Web ACL). 

```
{
    "Sid": "ListWebACLForResource",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
}
```

 **Nova configuração de permissão**

Exigir permissão AWS WAF `ListResourcesForWebACL` para solicitar um pacote de proteção (Web ACL). Também exija permissão para ligar`elasticloadbalancing:DescribeWebACLAssociation`.

```
{
    "Sid": "ListResourcesForWebACL",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL",
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
   "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "elasticloadbalancing:DescribeWebACLAssociation"
    ],
    "Resource": "*"
}
```

**AWS AppSync API do GraphQL**  
 **Configuração de permissão antiga**

Exigir permissão AWS WAF `ListResourcesForWebACL` para solicitar um pacote de proteção (Web ACL). 

```
{
    "Sid": "ListResourcesForWebACL",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL",
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
}
```

 **Nova configuração de permissão**

Exigir permissão AWS WAF `ListResourcesForWebACL` para solicitar um pacote de proteção (Web ACL). Também exija permissão para ligar`appsync:ListResourcesForWebACL`.

```
{
    "Sid": "ListResourcesForWebACL",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "appsync:ListResourcesForWebACL"
    ],
    "Resource": "*"
}
```

**Grupo de usuários do Amazon Cognito**  
Requer permissão para chamar a ação `ListResourcesForWebACL` do Amazon Cognito no tipo de recurso do grupo de usuários e para chamar `ListResourcesForWebACL` do AWS WAF . 

```
{
    "Sid": "ListResourcesForWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:{{account-id}}:userpool/*"
    ]
}
```

**AWS App Runner serviço**  
Requer permissão para chamar a `ListAssociatedServicesForWebAcl` ação App Runner no tipo de recurso de serviço App Runner e para chamar. AWS WAF `ListResourcesForWebACL` 

```
{
    "Sid": "ListResourcesForWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "apprunner:ListAssociatedServicesForWebAcl"
    ],
    "Resource": [
        "arn:aws:apprunner:*:{{account-id}}:service/*/*"
    ]
}
```

**AWS Instância de acesso verificado**  
Requer permissão para chamar a ação `ec2:DescribeVerifiedAccessInstanceWebAclAssociations` no tipo de recurso da instância do acesso verificado e para chamar `ListResourcesForWebACL` do AWS WAF . 

```
{
    "Sid": "ListResourcesForWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:{{region}}:{{account-id}}:regional/webacl/*/*"
    ]
},
{
    "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "ec2:DescribeVerifiedAccessInstanceWebAclAssociations"
    ],
    "Resource": [
        "arn:aws:ec2:*:{{account-id}}:verified-access-instance/*"
    ]
}
```

## Recursos políticos para AWS WAF
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Compatível com recursos de políticas:** sim

Os administradores podem usar políticas AWS JSON para especificar quem tem acesso ao 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 que não oferecem compatibilidade com permissões em nível de recurso, use um curinga (\*) para indicar que a instrução se aplica a todos os recursos.

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

Para ver a lista de tipos de AWS WAF recursos e seus ARNs, consulte [Recursos definidos pela AWS WAF V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-resources-for-iam-policies) na *Referência de Autorização de Serviço*. Para saber com quais ações você pode especificar o ARN de cada recurso, consulte [Ações definidas pela AWS WAF](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions) V2. Para permitir ou negar acesso a um subconjunto de AWS WAF recursos, inclua o ARN do recurso no elemento `resource` da sua política.

Os AWS WAF `wafv2` recursos ARNs of têm o seguinte formato:

```
arn:{{partition}}:wafv2:{{region}}:{{account-id}}:{{scope}}/{{resource-type}}/{{resource-name}}/{{resource-id}}
```

Para obter informações gerais sobre as especificações do ARN, consulte [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) no. Referência geral da Amazon Web Services

A seguir, são listados os requisitos específicos ARNs dos `wafv2` recursos de: 
+ {{region}}: Para AWS WAF recursos que você usa para proteger as CloudFront distribuições da Amazon, defina `us-east-1` isso como. Caso contrário, defina isso para a região que você está usando com seus recursos regionais protegidos. 
+ {{scope}}: defina o escopo `global` para uso com uma CloudFront distribuição da Amazon ou `regional` para uso com qualquer um dos recursos regionais que oferecem AWS WAF suporte. Os recursos regionais são uma API REST do Amazon API Gateway, um Application Load Balancer, uma API GraphQL AWS AppSync , um grupo de usuários do Amazon Cognito, um AWS App Runner serviço e uma instância de acesso verificado. AWS 
+ {{resource-type}}: especifique um dos seguintes valores: `webacl``rulegroup`,`ipset`,`regexpatternset`, ou`managedruleset`.
+ {{resource-name}}: especifique o nome que você deu ao AWS WAF recurso ou especifique um curinga (`*`) para indicar todos os recursos que atendem às outras especificações no ARN. Você deve especificar o nome do recurso e a ID do recurso ou especificar um caractere curinga para ambos. 
+ {{resource-id}}: especifique a ID do AWS WAF recurso ou especifique um curinga (`*`) para indicar todos os recursos que atendem às outras especificações no ARN. Você deve especificar o nome do recurso e a ID do recurso ou especificar um caractere curinga para ambos.

Por exemplo, o ARN a seguir especifica todos os pacotes de proteção (web ACLs) com escopo regional para a conta na Região: `111122223333` `us-west-1`

```
arn:aws:wafv2:us-west-1:111122223333:regional/webacl/*/*
```

O ARN a seguir especifica o grupo de regras nomeado `MyIPManagementRuleGroup` com escopo global para a conta `111122223333` na Região `us-east-1`:

```
arn:aws:wafv2:us-east-1:111122223333:global/rulegroup/MyIPManagementRuleGroup/1111aaaa-bbbb-cccc-dddd-example-id
```

Para ver exemplos de políticas AWS WAF baseadas em identidade, consulte. [Exemplos de políticas baseadas em identidade para AWS WAF](security_iam_id-based-policy-examples.md)

## Chaves de condição de política para AWS WAF
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**Compatível com chaves de condição de política específicas de serviço:** sim

Os administradores podem usar políticas AWS JSON para especificar quem tem acesso ao 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 AWS globais, consulte as [chaves de contexto de condição AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) no *Guia do usuário do IAM*.

Além disso, AWS WAF oferece suporte às seguintes chaves de condição que você pode usar para fornecer uma filtragem refinada para suas políticas do IAM:
+ **onda 2: LogDestinationResource**

  Essa chave de condição usa uma especificação do nome do recurso da Amazon (ARN) para o destino do registro de logs. Esse é o ARN que você fornece para o destino do registro de logs ao usar a chamada da API REST `PutLoggingConfiguration`. 

  Você pode especificar explicitamente um ARN e especificar a filtragem para o ARN. O exemplo a seguir especifica a filtragem para o ARNs bucket do Amazon S3 que tem uma localização e um prefixo específicos. 

  ```
  "Condition": { "ArnLike": { "wafv2:LogDestinationResource": "arn:aws:s3:::aws-waf-logs-suffix/custom-prefix/*" } }
  ```
+ **onda 2: LogScope**

  Essa chave de condição define a origem da configuração de registro de logs em uma string. Atualmente, isso é sempre definido como o padrão `Customer`, o que indica que o destino do registro de logs pertence e é gerenciado por você. 

Para ver uma lista de chaves de AWS WAF condição, consulte [Chaves de condição para AWS WAF V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-policy-keys) na *Referência de autorização de serviço*. Para saber com quais ações e recursos você pode usar uma chave de condição, consulte [Ações definidas pela AWS WAF V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions).

Para ver exemplos de políticas AWS WAF baseadas em identidade, consulte. [Exemplos de políticas baseadas em identidade para AWS WAF](security_iam_id-based-policy-examples.md)

## ACLs in AWS WAF
<a name="security_iam_service-with-iam-acls"></a>

**Suportes ACLs:** Não 

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

## ABAC com AWS WAF
<a name="security_iam_service-with-iam-tags"></a>

**Compatível com ABAC (tags em políticas):** parcial

O controle de acesso por atributo (ABAC) é uma estratégia de autorização que define permissões com base em atributos chamados de tags. Você pode anexar tags a entidades e AWS recursos do IAM e, em seguida, criar políticas ABAC para permitir operações quando a tag do diretor corresponder à tag no recurso.

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 `aws:ResourceTag/{{key-name}}`, `aws:RequestTag/{{key-name}}` ou chaves de condição `aws:TagKeys`.

Se um serviço for compatível com as três chaves de condição para cada tipo de recurso, o valor será **Sim** para o serviço. Se um serviço for compatível com as três chaves de condição somente para alguns tipos de recursos, o valor será **Parcial**

Para saber mais sobre o ABAC, consulte [Definir permissões com autorização do ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) no *Guia do usuário do IAM*. Para visualizar um tutorial com etapas para configurar o ABAC, consulte [Usar controle de acesso por atributo (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) no *Guia do usuário do IAM*.

## Usando credenciais temporárias com AWS WAF
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Compatível com credenciais temporárias:** sim

As credenciais temporárias fornecem acesso de curto prazo aos AWS recursos e são criadas automaticamente quando você usa a federação ou troca de funções. AWS recomenda que você gere credenciais temporárias dinamicamente em vez de usar chaves de acesso de longo prazo. Para ter mais informações, consulte [Credenciais de segurança temporárias no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) e [Serviços da 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*.

## Encaminhar sessões de acesso para serviço AWS WAF
<a name="security_iam_service-with-iam-principal-permissions"></a>

**Compatibilidade com o recurso de encaminhamento de sessões de acesso (FAS):** sim

 As sessões de acesso direto (FAS) usam as permissões do principal chamando um AWS service (Serviço da AWS), combinadas com a solicitação AWS service (Serviço da AWS) de fazer solicitações aos serviços posteriores. Para obter detalhes da política ao fazer solicitações de FAS, consulte [Sessões de acesso direto](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 

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

**Compatível com perfis de serviço:** sim

 O perfil de serviço é um [perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que um serviço assume para executar ações em seu nome. Um administrador do IAM pode criar, modificar e excluir um perfil de serviço do IAM. Para saber mais, consulte [Criar um perfil para delegar permissões a um AWS service (Serviço da AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) no *Guia do Usuário do IAM*. 

**Atenção**  
Alterar as permissões de uma função de serviço pode interromper AWS WAF a funcionalidade. Edite as funções de serviço somente quando AWS WAF fornecer orientação para fazer isso.

## Funções vinculadas a serviços para AWS WAF
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Compatibilidade com perfis vinculados a serviços:** sim

 Uma função vinculada ao serviço é um tipo de função de serviço vinculada a um. AWS service (Serviço da AWS) O serviço pode assumir o perfil de executar uma ação em seu nome. As funções vinculadas ao serviço aparecem em você Conta da AWS e são de propriedade do serviço. Um administrador do IAM pode visualizar, mas não editar as permissões para perfis vinculados ao serviço. 

Para obter detalhes sobre como criar ou gerenciar funções AWS WAF vinculadas a serviços, consulte. [Usando funções vinculadas a serviços para AWS WAF](using-service-linked-roles.md)