

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Controllo degli accessi basato su attributi per Amazon SQS
<a name="sqs-abac"></a>

## Che cos'è ABAC?
<a name="sqs-abac-whatis"></a>

Il controllo degli accessi basato sugli attributi (ABAC) è un processo di autorizzazione che definisce le autorizzazioni in base ai tag allegati a utenti e risorse. AWS ABAC fornisce un controllo degli accessi granulare e flessibile basato su attributi e valori, riduce i rischi per la sicurezza legati alle policy riconfigurate basate sui ruoli e centralizza il controllo e la gestione delle policy di accesso. Per ulteriori informazioni su ABAC, consulta [Che cos'è ABAC per AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) nella *Guida per l'utente di IAM*.

Amazon SQS supporta ABAC consentendoti di controllare l'accesso alle code Amazon SQS in base ai tag e agli alias associati a una coda Amazon SQS. Le chiavi di condizione tag e alias che abilitano ABAC in Amazon SQS autorizzano le entità IAM a utilizzare le code Amazon SQS senza modificare le policy o gestire le concessioni. Per ulteriori informazioni sulle chiavi di condizione ABAC, consulta [Condition keys for Amazon](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html#amazonsqs-policy-keys) SQS nel *Service Authorization Reference*.

Con ABAC, puoi utilizzare i tag per configurare le autorizzazioni e le policy di accesso IAM per le tue code Amazon SQS, il che ti aiuta a dimensionare la gestione delle autorizzazioni. Puoi creare un'unica policy di autorizzazioni in IAM utilizzando i tag che aggiungi a ciascun ruolo aziendale, senza dover aggiornare la policy ogni volta che aggiungi una nuova risorsa. Puoi anche allegare tag ai presidi IAM per creare una policy ABAC. Puoi progettare policy ABAC per consentire le operazioni di Amazon SQS quando il tag sul ruolo utente IAM che effettua la chiamata corrisponde al tag di coda di Amazon SQS. Per ulteriori informazioni sul tagging in AWS, consulta [AWS Tagging](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) Strategies and. [Tag per l'allocazione dei costi Amazon SQS](sqs-queue-tags.md)

**Nota**  
ABAC per Amazon SQS è attualmente disponibile in AWS tutte le regioni commerciali in cui è disponibile Amazon SQS, con le seguenti eccezioni:   
Asia Pacifico (Hyderabad)
Asia Pacifico (Melbourne)
Europa (Spagna) 
Europa (Zurigo)

## Qual è il vantaggio di utilizzare ABAC in Amazon SQS?
<a name="sqs-abac-benefits"></a>

Ecco alcuni vantaggi dell'utilizzo di ABAC in Amazon SQS:
+ ABAC per Amazon SQS richiede un numero minore di policy di autorizzazione. Non è necessario creare policy diverse per diverse mansioni lavorative. Puoi utilizzare tag di risorse e richieste che si applicano a più di una coda, il che riduce il sovraccarico operativo.
+ Usa ABAC per dimensionare rapidamente i team. Le autorizzazioni per le nuove risorse vengono concesse automaticamente in base ai tag quando le risorse vengono etichettate in modo appropriato durante la loro creazione.
+ Utilizza le autorizzazioni sul principale IAM per limitare l'accesso alle risorse. Puoi creare tag per il principale IAM e utilizzarli per limitare l'accesso ad azioni specifiche che corrispondono ai tag sul principale IAM. Ciò ti aiuta ad automatizzare il processo di concessione delle autorizzazioni per le richieste.
+ Tieni traccia di chi accede alle tue risorse. Puoi determinare l'identità di una sessione esaminando gli attributi utente in AWS CloudTrail.

**Topics**
+ [Che cos'è ABAC?](#sqs-abac-whatis)
+ [Qual è il vantaggio di utilizzare ABAC in Amazon SQS?](#sqs-abac-benefits)
+ [Assegnazione di tag per il controllo degli accessi](sqs-abac-tagging-resource-control.md)
+ [Creazione di utenti IAM e code Amazon SQS](sqs-abac-creating-queues.md)
+ [Test del controllo dell'accesso basato sugli attributi](sqs-abac-testing-access-control.md)

# Etichettatura per il controllo degli accessi in Amazon SQS
<a name="sqs-abac-tagging-resource-control"></a>

Di seguito è riportato un esempio di utilizzo dei tag per il controllo degli accessi in Amazon SQS. La policy IAM limita un utente IAM a tutte le azioni Amazon SQS per tutte le code che includono un tag di risorsa con l'ambiente della chiave e la produzione di valore. Per ulteriori informazioni, consulta [Controllo degli accessi basato sugli attributi con tag e Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging_abac.html). AWS 

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

****  

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

------

# Creazione di utenti IAM e code Amazon SQS
<a name="sqs-abac-creating-queues"></a>

Gli esempi seguenti spiegano come creare una policy ABAC per controllare l'accesso ad Amazon SQS utilizzando Console di gestione AWS and. CloudFormation

## Utilizzando il Console di gestione AWS
<a name="sqs-abac-creating-queues-console"></a>

**Crea un utente IAM**

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Seleziona **Utenti** dal pannello di navigazione sinistro.

1. Scegli **Aggiungi utenti** e inserisci un nome nella casella di testo **Nome utente**.

1. Seleziona **Chiave di accesso - Accesso programmatico** e scegli **Next:Permissions**.

1. Scegli **Successivo: Tag**.

1. Aggiungi un tag con la chiave `environment` e il valore del tag `beta`.

1. Scegli **Next:Review**, quindi **Crea utente**.

1. Copiare e archiviare l'ID chiave di accesso e la chiave di accesso segreta in una posizione sicura.

**Aggiungi le autorizzazioni degli utenti IAM**

1. Seleziona l’utente IAM creato.

1. Scegli **Aggiungi policy in linea**.

1. Nella scheda JSON incolla la policy seguente:

1. Scegliere **Esamina policy**.

1. Scegli **Crea policy**.

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

Utilizza il seguente CloudFormation modello di esempio per creare un utente IAM con una policy in linea allegata e una coda 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"
```

# Test del controllo degli accessi basato sugli attributi in Amazon SQS
<a name="sqs-abac-testing-access-control"></a>

Gli esempi seguenti mostrano come testare il controllo degli accessi basato su attributi in Amazon SQS.

## Crea una coda con la chiave del tag impostata su environment e il valore del tag impostato su prod
<a name="sqs-abac-testing-access-control-create-queue"></a>

Esegui questo comando AWS CLI per testare la creazione della coda con la chiave tag impostata su environment e il valore del tag impostato su prod. Se non disponi della AWS CLI, puoi [scaricarla e configurarla](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) per la tua macchina.

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

Ricevi un errore `AccessDenied` dall'endpoint Amazon SQS:

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

Questo perché il valore del tag sull'utente IAM non corrisponde al tag passato nella chiamata [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html) API. Ricorda che abbiamo applicato un tag all'utente IAM con la chiave impostata su `environment` e il valore impostato su `beta`.

## Crea una coda con la chiave del tag impostata su environment e il valore del tag impostato su beta
<a name="sqs-abac-testing-access-control-create-env"></a>

Esegui questo comando CLI per testare la creazione della coda con la chiave tag impostata su `environment` e il valore del tag impostato su `beta`.

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

Riceverai un messaggio di conferma dell'avvenuta creazione della coda, simile a quello riportato di seguito.

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

## Invio di un messaggio a una coda
<a name="sqs-abac-testing-access-control-sending-message"></a>

Esegui questo comando CLI per testare l'invio di un messaggio a una coda.

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

La risposta indica che il messaggio è stato recapitato correttamente alla coda di Amazon SQS. L'autorizzazione utente IAM ti consente di inviare un messaggio a una coda con un tag `beta`. La risposta include `MD5OfMessageBody` e `MessageId` contenente il messaggio.

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