

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á.

# Controle de acesso por atributo para o Amazon SQS
<a name="sqs-abac"></a>

## O que é ABAC?
<a name="sqs-abac-whatis"></a>

O controle de acesso baseado em atributos (ABAC) é um processo de autorização que define permissões com base em tags anexadas a usuários e recursos. AWS O ABAC fornece controle de acesso detalhado e flexível com base em atributos e valores, reduz o risco de segurança relacionado a políticas reconfiguradas baseadas em perfis e centraliza a auditoria e o gerenciamento de políticas de acesso. Para obter mais detalhes sobre o ABAC, consulte [O que é a ABAC para a AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html), no *Guia do usuário do IAM*.

O Amazon SQS é compatível com o ABAC, permitindo que você controle o acesso às filas do Amazon SQS com base em tags e aliases associados a uma fila do Amazon SQS. As chaves de condição de tag e alias que ativam o ABAC no Amazon SQS autorizam as entidades principais a usar as filas do Amazon SQS sem editar políticas ou gerenciar concessões. Para saber mais sobre as chaves de condição do ABAC, consulte [Condition keys for Amazon SQS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html#amazonsqs-policy-keys) na *Referência de autorização do serviço*.

Com o ABAC, é possível usar tags para configurar permissões e políticas de acesso do IAM para as filas do Amazon SQS, o que ajuda você a escalar o gerenciamento de permissões. É possível criar uma única política de permissões no IAM usando tags que você adiciona a cada perfil empresarial, sem precisar atualizar a política toda vez em que adicionar um novo recurso. Você também pode anexar tags às entidades principais do IAM para criar uma política de ABAC. É possível criar políticas de ABAC para permitir operações do Amazon SQS quando a tag no perfil do usuário do IAM que está fazendo a chamada corresponde à tag de fila do Amazon SQS. Para saber mais sobre a marcação AWS, consulte [Estratégias de AWS marcação e.](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) [Tags de alocação de custos do Amazon SQS](sqs-queue-tags.md)

**nota**  
Atualmente, o ABAC para Amazon SQS está disponível em AWS todas as regiões comerciais em que o Amazon SQS está disponível, com as seguintes exceções:   
Ásia-Pacífico (Hyderabad)
Ásia-Pacífico (Melbourne)
Europa (Espanha) 
Europa (Zurique)

## Por que devo usar o ABAC no Amazon SQS?
<a name="sqs-abac-benefits"></a>

Veja alguns benefícios de usar o ABAC no Amazon SQS:
+ O ABAC para o Amazon SQS exige menos políticas de permissões. Não é necessário criar políticas diferentes para funções de trabalho diferentes. É possível usar tags de recurso e solicitação que se aplicam a mais de uma fila, o que reduz as despesas operacionais indiretas.
+ Use o ABAC para escalar equipes rapidamente. As permissões para novos recursos são concedidas automaticamente com base em tags quando os recursos são devidamente marcados durante a criação.
+ Use as permissões na entidade principal do IAM para restringir o acesso aos recursos. É possível criar tags para a entidade principal do IAM principal e usá-las para restringir o acesso a ações específicas que correspondam às tags na entidade principal do IAM. Isso ajuda você a automatizar o processo de concessão de permissões de solicitação.
+ Acompanhe quem está acessando seus recursos. Você pode determinar a identidade de uma sessão examinando os atributos do usuário no AWS CloudTrail.

**Topics**
+ [O que é ABAC?](#sqs-abac-whatis)
+ [Por que devo usar o ABAC no Amazon SQS?](#sqs-abac-benefits)
+ [Marcação para controle de acesso](sqs-abac-tagging-resource-control.md)
+ [Criação de usuários do IAM e filas do Amazon SQS](sqs-abac-creating-queues.md)
+ [Testar o controle de acesso por atributo](sqs-abac-testing-access-control.md)

# Marcação para controle de acesso no Amazon SQS
<a name="sqs-abac-tagging-resource-control"></a>

Veja a seguir um exemplo do uso de tags para controle de acesso no Amazon SQS. A política do IAM restringe um usuário do IAM a todas as ações do Amazon SQS para todas as filas que incluem uma tag de recurso com a chave “environment” (ambiente) e o valor “production” (produção). Para obter mais informações, consulte [Controle de acesso baseado em atributos com tags e Organizations AWS](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging_abac.html). 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessForProd",
      "Effect": "Allow",
      "Action": "sqs:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/environment": "prod"
        }
      }
    }
  ]
}
```

------

# Criação de usuários do IAM e filas do Amazon SQS
<a name="sqs-abac-creating-queues"></a>

Os exemplos a seguir explicam como criar uma política ABAC para controlar o acesso ao Amazon SQS usando e. Console de gerenciamento da AWS CloudFormation

## Usando o Console de gerenciamento da AWS
<a name="sqs-abac-creating-queues-console"></a>

**Criar um usuário do IAM**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Selecione **User** (Usuário) no painel de navegação à esquerda.

1. Selecione **Add Users** (Adicionar usuários) e insira um nome na caixa de texto **User name** (Nome do usuário).

1. Escolha a caixa **Access key - Programmatic access** (Chave de acesso – Acesso programático) e selecione **Next: Permissions** (Próximo: permissões).

1. Selecione **Next: Tags** (Próximo: tags).

1. Adicione `beta` como a chave da tag e `environment` como o valor da tag.

1. Selecione **Next: Review** (Próximo: revisão) e, depois, **Create user** (Criar usuário).

1. Copie e armazene o ID da chave de acesso e a chave de acesso secreta em um local seguro.

**Adicionar permissões de usuário do IAM**

1. Selecione o usuário do IAM que você criou.

1. Escolha **Add inline policy** (Adicionar política em linha).

1. Na guia JSON, cole a seguinte política:

1. Selecione **Revisar política**.

1. Selecione **Criar política**.

## Usando AWS CloudFormation
<a name="sqs-abac-creating-queues-cf"></a>

Use o CloudFormation modelo de amostra a seguir para criar um usuário do IAM com uma política embutida anexada e uma fila do Amazon SQS:

```
AWSTemplateFormatVersion: "2010-09-09"
Description: "CloudFormation template to create IAM user with custom inline policy"
Resources:
    IAMPolicy:
        Type: "AWS::IAM::Policy"
        Properties:
            PolicyDocument: |
                {
                    "Version": "2012-10-17",		 	 	 
                    "Statement": [
                        {
                            "Sid": "AllowAccessForSameResTag",
                            "Effect": "Allow",
                            "Action": [
                                "sqs:SendMessage",
                                "sqs:ReceiveMessage",
                                "sqs:DeleteMessage"
                            ],
                            "Resource": "*",
                            "Condition": {
                                "StringEquals": {
                                    "aws:ResourceTag/environment": "${aws:PrincipalTag/environment}"
                                }
                            }
                        },
                        {
                            "Sid": "AllowAccessForSameReqTag",
                            "Effect": "Allow",
                            "Action": [
                                "sqs:CreateQueue",
                                "sqs:DeleteQueue",
                                "sqs:SetQueueAttributes",
                                "sqs:tagqueue"
                            ],
                            "Resource": "*",
                            "Condition": {
                                "StringEquals": {
                                    "aws:RequestTag/environment": "${aws:PrincipalTag/environment}"
                                }
                            }
                        },
                        {
                            "Sid": "DenyAccessForProd",
                            "Effect": "Deny",
                            "Action": "sqs:*",
                            "Resource": "*",
                            "Condition": {
                                "StringEquals": {
                                    "aws:ResourceTag/stage": "prod"
                                }
                            }
                        }
                    ]
                }
                
            Users: 
              - "testUser"
            PolicyName: tagQueuePolicy

    IAMUser:
        Type: "AWS::IAM::User"
        Properties:
            Path: "/"
            UserName: "testUser"
            Tags: 
              - 
                Key: "environment"
                Value: "beta"
```

# Testar o controle de acesso por atributo no Amazon SQS
<a name="sqs-abac-testing-access-control"></a>

Os exemplos a seguir mostram como testar o controle de acesso por atributo no Amazon SQS.

## Crie uma fila com a chave da tag definida como “ambiente” e o valor da tag definido como “prod”
<a name="sqs-abac-testing-access-control-create-queue"></a>

Execute esse comando da AWS CLI para testar a criação da fila com a chave de tag definida como environment e o valor da tag definido como prod. Se você não tiver a AWS CLI, poderá [baixá-la e configurá-la](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) para sua máquina.

```
aws sqs create-queue --queue-name prodQueue —region us-east-1 —tags "environment=prod"
```

Você recebe um erro `AccessDenied` do endpoint do Amazon SQS:

```
An error occurred (AccessDenied) when calling the CreateQueue operation: Access to the resource <queueUrl> is denied.
```

Isso ocorre porque o valor da tag no usuário do IAM não corresponde à tag transmitida na chamada de API [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html). Lembre-se de que aplicamos uma tag ao usuário do IAM com a chave definida como `environment` e o valor definido como `beta`.

## Crie uma fila com a chave da tag definida como “environment” e o valor da tag definido como “beta”
<a name="sqs-abac-testing-access-control-create-env"></a>

Execute esse comando da CLI para testar a criação de uma fila com a chave da tag definida como `environment` e o valor da tag definido como `beta`.

```
aws sqs create-queue --queue-name betaQueue —region us-east-1 —tags "environment=beta"
```

Você recebe uma mensagem confirmando a criação bem-sucedida da fila, semelhante à indicada abaixo.

```
{
"QueueUrl": "<queueUrl>“
}
```

## Enviar uma mensagem para uma fila
<a name="sqs-abac-testing-access-control-sending-message"></a>

Execute esse comando da CLI para testar o envio de uma mensagem a uma fila.

```
aws sqs send-message --queue-url <queueUrl> --message-body testMessage
```

A resposta mostra uma entrega bem-sucedida de mensagens para a fila do Amazon SQS. A permissão de usuário do IAM permite que você envie uma mensagem para uma fila que tenha uma tag `beta`. A resposta inclui `MD5OfMessageBody` e `MessageId` contendo a mensagem.

```
{
"MD5OfMessageBody": "<MD5OfMessageBody>",
"MessageId": "<MessageId>"
}
```