

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Control de acceso basado en atributos para Amazon SQS
<a name="sqs-abac"></a>

## ¿Qué es ABAC?
<a name="sqs-abac-whatis"></a>

El control de acceso basado en atributos (ABAC) es un proceso de autorización que define los permisos en función de las etiquetas que se adjuntan a los usuarios y los recursos. AWS ABAC proporciona un control de acceso detallado y flexible basado en atributos y valores, reduce el riesgo de seguridad relacionado con las políticas basadas en roles reconfiguradas y centraliza la auditoría y la administración de las políticas de acceso. Para obtener más información sobre ABAC, consulte [Qué es ABAC para AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) en la *Guía del usuario de IAM*.

Amazon SQS admite ABAC al permitirle controlar el acceso a las colas de Amazon SQS en función de las etiquetas y los alias asociados a una cola de Amazon SQS. Las claves de condición de etiqueta y alias que habilitan ABAC en Amazon SQS autorizan a las entidades principales de IAM a utilizar las colas de Amazon SQS sin necesidad de editar políticas ni administrar concesiones. Para obtener más información acerca de las claves de condición de ABAC, consulte [Claves de estado de Amazon SQS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html#amazonsqs-policy-keys) en la *Referencia de autorizaciones de servicio*.

Con ABAC, puede utilizar etiquetas para configurar los permisos y las políticas de acceso de IAM para sus colas de Amazon SQS, lo que lo ayudará a escalar la administración de permisos. Puede crear una única política de permisos en IAM mediante etiquetas que agregue a cada rol empresarial, sin tener que actualizar la política cada vez que agregue un nuevo recurso. También puede asociar etiquetas a entidades principales de IAM para crear una política de ABAC. Puede diseñar políticas de ABAC para permitir las operaciones de Amazon SQS cuando la etiqueta del rol de usuario de IAM que está realizando la llamada coincida con la etiqueta de cola de Amazon SQS. [Para obtener más información sobre el etiquetado AWS, consulte AWS Estrategias de etiquetado y.](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) [Etiquetas de asignación de costos de Amazon SQS](sqs-queue-tags.md)

**nota**  
ABAC para Amazon SQS está disponible actualmente en AWS todas las regiones comerciales en las que Amazon SQS está disponible, con las siguientes excepciones:   
Asia-Pacífico (Hyderabad)
Asia-Pacífico (Melbourne)
Europa (España) 
Europa (Zúrich)

## ¿Por qué debo utilizar ABAC en Amazon SQS?
<a name="sqs-abac-benefits"></a>

He aquí algunos beneficios de utilizar ABAC en Amazon SQS:
+ ABAC para Amazon SQS requiere menos políticas de permisos. No tiene que crear diferentes políticas para diferentes funciones de trabajo. Puede utilizar etiquetas de recursos y solicitudes que se apliquen a más de una cola, lo que reduce la sobrecarga operativa.
+ Utilizar ABAC para escalar equipos rápidamente. Los permisos para nuevos recursos se conceden automáticamente en función de las etiquetas cuando los recursos se etiquetan adecuadamente durante su creación.
+ Utilizar permisos en la entidad principal de IAM para restringir el acceso a los recursos. Puede crear etiquetas para la entidad principal de IAM y utilizarlas a fin de restringir el acceso a acciones específicas que coincidan con las etiquetas de la entidad principal de IAM. Esto lo ayuda a automatizar el proceso de concesión de permisos de solicitud.
+ Realizar un seguimiento de quién accede a sus recursos. Puede determinar la identidad de una sesión si consulta los atributos de usuario en AWS CloudTrail.

**Topics**
+ [¿Qué es ABAC?](#sqs-abac-whatis)
+ [¿Por qué debo utilizar ABAC en Amazon SQS?](#sqs-abac-benefits)
+ [Etiquetado para el control de acceso](sqs-abac-tagging-resource-control.md)
+ [Creación de usuarios de IAM y colas de Amazon SQS](sqs-abac-creating-queues.md)
+ [Prueba del control de acceso basado en atributos](sqs-abac-testing-access-control.md)

# Etiquetado para el control de acceso en Amazon SQS
<a name="sqs-abac-tagging-resource-control"></a>

A continuación, se muestra un ejemplo del uso de etiquetas para el control de acceso en Amazon SQS. La política de IAM restringe a un usuario de IAM todas las acciones de Amazon SQS para todas las colas que incluyan una etiqueta de recurso con la clave environment y el valor production. Para obtener más información, consulte [Control de acceso basado en atributos con etiquetas y 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"
        }
      }
    }
  ]
}
```

------

# Creación de usuarios de IAM y colas de Amazon SQS
<a name="sqs-abac-creating-queues"></a>

En los siguientes ejemplos se explica cómo crear una política ABAC para controlar el acceso a Amazon SQS mediante Consola de administración de AWS y. CloudFormation

## Mediante el Consola de administración de AWS
<a name="sqs-abac-creating-queues-console"></a>

**Crear un usuario de IAM**

1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Desde el panel de navegación izquierdo, elija **Usuario**.

1. Elija **Agregar usuarios** e introduzca un nombre en el cuadro de texto **Nombre de usuario**.

1. Seleccione **(Clave de acceso: acceso mediante programación)** y elija **Siguiente: permisos**.

1. Elija **Siguiente:Etiquetas**.

1. Agregue la clave de la etiqueta como `environment` y el valor de la etiqueta como `beta`.

1. Seleccione **Siguiente: revisión** y, después, elija **Crear usuario**.

1. Copie y guarde el ID de clave de acceso y la clave de acceso secreta en un lugar seguro.

**Agregar permisos de usuario de IAM**

1. Seleccione el usuario de IAM que ha creado.

1. Elija **Agregar política insertada**.

1. En la pestaña JSON, pegue la política siguiente:

1. Elija **Revisar política**.

1. Elija **Crear política**.

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

Utilice la siguiente CloudFormation plantilla de ejemplo para crear un usuario de IAM con una política en línea adjunta y una cola de 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"
```

# Pruebas de control de acceso basado en atributos de Amazon SQS
<a name="sqs-abac-testing-access-control"></a>

En los siguientes ejemplos se muestra cómo probar el control de acceso basado en atributos en Amazon SQS.

## Cree una cola con la clave de etiqueta establecida a environment y el valor de etiqueta establecido a prod
<a name="sqs-abac-testing-access-control-create-queue"></a>

Ejecute este comando AWS CLI para probar la creación de la cola con la clave de etiqueta establecida en environment y el valor de la etiqueta establecido en prod. Si no tiene AWS CLI, puede [descargarla y configurarla](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) para su máquina.

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

Recibe un error `AccessDenied` del punto de conexión de Amazon SQS:

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

Esto se debe a que el valor de etiqueta en el usuario de IAM no coincide con la etiqueta pasada en la llamada a la API [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html). Recuerde que aplicamos una etiqueta al usuario de IAM con la clave establecida a `environment` y el valor establecido a `beta`.

## Cree una cola con la clave de etiqueta establecida a environment y el valor de etiqueta establecido a beta
<a name="sqs-abac-testing-access-control-create-env"></a>

Ejecute este comando de la CLI para probar la creación de una cola con la clave de etiqueta establecida a `environment` y el valor de etiqueta establecido a `beta`.

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

Recibe un mensaje que confirma la creación correcta de la cola, similar al que se muestra a continuación.

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

## Envío de un mensaje a una cola
<a name="sqs-abac-testing-access-control-sending-message"></a>

Ejecute este comando de la CLI para probar el envío de un mensaje a una cola.

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

La respuesta muestra una entrega correcta del mensaje a la cola de Amazon SQS. El permiso de usuario de IAM le permite enviar un mensaje a una cola que tenga una etiqueta `beta`. La respuesta incluye `MD5OfMessageBody` y `MessageId` con el mensaje.

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