

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

# Classificazione degli oggetti utilizzando i tag
<a name="object-tagging"></a>

Utilizza il tagging degli oggetti per catalogare lo storage. Ogni tag è una coppia chiave-valore.

È possibile aggiungere tag ai nuovi oggetti durante il caricamento oppure è possibile aggiungerli agli oggetti esistenti. 
+ È possibile associare fino a un massimo di 10 tag a ciascun oggetto. I tag associati a un oggetto devono avere chiavi di tag univoche.
+ Una chiave di tag può contenere fino a 128 caratteri Unicode e i valori dei tag possono contenere fino a 256 caratteri Unicode. I tag di oggetti Amazon S3 sono rappresentati internamente in UTF-16. I caratteri in UTF-16 usano 1 o 2 posizioni.
+ La chiave e i valori fanno distinzione tra maiuscole e minuscole.
+ Per ulteriori informazioni sulle restrizioni dei tag, consulta [Restrizioni dei tag definite dall'utente](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/custom-tags.html#allocation-tag-restrictions) nella *Guida all'utente per la fatturazione e la gestione dei costi di AWS *. Per le restrizioni di base dei tag, consulta [Restrizioni dei tag](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-restrictions) nella *Guida all'utente di Amazon EC2*.

**Esempi**  
Considerare i seguenti esempi di tagging:

**Example Informazioni PHI**  
Supponiamo che un oggetto contenga dati sanitari protetti (PHI). È possibile assegnare un tag all'oggetto utilizzando la seguente coppia chiave-valore.  

```
PHI=True
```
oppure  

```
Classification=PHI
```

**Example File di progetto**  
Supponiamo di archiviare i file di progetto nel bucket S3. È possibile assegnare un tag a questi oggetti mediante una chiave denominata `Project` e un valore, come illustrato di seguito.  

```
Project=Blue
```

**Example Tag multipli**  
È possibile aggiungere più tag a un oggetto, come illustrato di seguito.  

```
Project=x
Classification=confidential
```

**Prefissi e tag dei nomi delle chiavi**  
I prefissi dei nomi di una chiave dell'oggetto ti permettono anche di categorizzare lo storage. Tuttavia, la categorizzazione basata sui prefissi è monodimensionale. Consideriamo i seguenti nomi delle chiavi degli oggetti:

```
photos/photo1.jpg
project/projectx/document.pdf
project/projecty/document2.pdf
```

Questi nomi di chiavi hanno il prefisso `photos/`, `project/projectx/` e `project/projecty/`. Questi prefissi consentono la categorizzazione monodimensionale, ossia: tutti gli elementi sotto un prefisso costituiscono una categoria. Ad esempio, il prefisso `project/projectx` identifica tutti i documenti relativi al progetto x.

Il tagging rende disponibile un'altra dimensione. Se si desidera che photo1 sia nella categoria project x, è possibile assegnare un tag all'oggetto di conseguenza.

**Altri vantaggi**  
Oltre alla classificazione dei dati, il tagging offre vantaggi quali i seguenti:
+ I tag degli oggetti consentono un controllo degli accessi granulare per le autorizzazioni. Ad esempio, è possibile concedere a un utente le autorizzazioni per leggere esclusivamente gli oggetti con tag specifici.
+ I tag degli oggetti consentono una gestione granulare del ciclo di vita dell'oggetto, in cui è possibile specificare filtri basati su tag, oltre a prefissi del nome della chiave, in una regola del ciclo di vita.
+ L'utilizzo dell'analisi Amazon S3 consente di configurare filtri per raggruppare gli oggetti per l'analisi in base ai tag dell'oggetto, al prefisso del nome della chiave di accesso o in base sia al prefisso che ai tag.
+ Puoi anche personalizzare le CloudWatch metriche di Amazon per visualizzare le informazioni tramite filtri di tag specifici. Nelle seguenti sezioni sono fornite maggiori informazioni.

**Importante**  
Si possono utilizzare tag per etichettare oggetti contenenti informazioni riservate (ad esempio le informazioni personali (PII) o i dati sanitari protetti (PHI)). Tuttavia, i tag non devono contenere informazioni confidenziali. 

**Aggiunta di serie di tag oggetto a più oggetti Amazon S3 con una singola richiesta**  
Per aggiungere set di tag a più di un oggetto Amazon S3 con una sola richiesta, puoi utilizzare le operazioni in batch S3. Fornisci alle operazioni in batch S3 un elenco di oggetti su cui operare. Le operazioni in batch S3 richiamano la rispettiva API per eseguire l'operazione specificata. Un solo processo di operazioni in batch può eseguire l'operazione specificata su miliardi di oggetti contenenti esabyte di dati. 

La funzionalità Operazioni in batch S3 tiene traccia dei progressi, invia notifiche e memorizza un report dettagliato sul completamento di tutte le azioni, offrendo un'esperienza serverless completamente gestita e verificabile. Puoi utilizzare S3 Batch Operations tramite la console Amazon S3 o l' AWS CLI API AWS SDKs REST. Per ulteriori informazioni, consulta [Nozioni di base sulle operazioni in batch S3](batch-ops.md#batch-ops-basics).

Per ulteriori informazioni sui tag degli oggetti, consulta [Gestione di tag degli oggetti](tagging-managing.md).

## Operazioni API correlate al tagging oggetti
<a name="tagging-apis"></a>

Amazon S3 supporta le seguenti operazioni API, specifiche per il tagging oggetti:

**Operazioni delle API sugli oggetti**
+  [PUT Object tagging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTtagging.html) – Sostituisce i tag su un oggetto. È possibile specificare i tag nel corpo della richiesta. La gestione di tag degli oggetti mediante queste API prevede due scenari distinti.
  + L'oggetto non ha tag – Mediante questa API, è possibile aggiungere un set di tag a un oggetto (l'oggetto non ha tag precedenti).
  + L'oggetto ha un set tag esistenti – Per modificare il set di tag esistenti, è necessario prima recuperarlo, modificarlo sul lato client, quindi utilizzare questa API per sostituire il set di tag.
**Nota**  
 Se si invia questa richiesta con un set di tag vuoto, Amazon S3 elimina il set di tag esistenti sull'oggetto. Se si usa questo metodo, verrà addebitata una richiesta Tier 1 (PUT). Per ulteriori informazioni, consulta [Prezzi di Amazon S3](https://d0.awsstatic.com/whitepapers/aws_pricing_overview.pdf).  
La richiesta [DELETE Object tagging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETEtagging.html) è preferibile perché fornisce lo stesso risultato senza nessun addebito. 
+  [GET Object tagging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGETtagging.html) – Restituisce il set di tag associato a un oggetto. Amazon S3 restituisce i tag degli oggetti nel corpo della risposta.
+ [DELETE Object tagging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETEtagging.html) – Elimina il set di tag associato a un oggetto. 

**Altre operazioni API che supportano il tagging**
+  [PUT Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html) e [Initiate Multipart Upload](https://docs.aws.amazon.com/AmazonS3/latest/API/mpUploadInitiate.html) – È possibile specificare i tag quando si creano oggetti. I tag possono essere specificati utilizzando l'intestazione di richiesta `x-amz-tagging`. 
+  [GET Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html) – Anziché restituire il set di tag, Amazon S3 restituisce il conteggio dei tag degli oggetti nell'intestazione di `x-amz-tag-count` (solo se il richiedente dispone delle autorizzazioni per leggere i tag) poiché le dimensioni della risposta nell'intestazione sono limitate a 8 K di byte. Se si desidera visualizzare i tag, fare un'altra richiesta di operazione API [GET Object tagging](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGETtagging.html).
+ [POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html) – È possibile specificare tag nella richiesta POST. 

  È possibile utilizzare l'API `PUT Object ` per creare oggetti con tag, purché i tag della richiesta non superino le dimensioni massime dell'intestazione della richiesta HTTP di 8 Kbyte, Se i tag specificati superano le dimensioni massime dell'intestazione, è possibile utilizzare questo metodo POST che consiste nell'includere i tag nel corpo. 

   [PUT Object - Copy](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html) – È possibile specificare `x-amz-tagging-directive` nella richiesta per indicare ad Amazon S3 di copiare (comportamento di default) i tag o sostituirli mediante un nuovo set di tag fornito nella richiesta. 

Tieni presente quanto segue:
+ Il tagging degli oggetti S3 è molto coerente. Per ulteriori informazioni, consulta [Modello di consistenza dati Amazon S3](Welcome.md#ConsistencyModel). 

## Configurazioni aggiuntive
<a name="tagging-other-configs"></a>

In questa sezione viene descritto in che modo il tagging oggetti è correlato alle altre configurazioni.

### Tagging oggetti e gestione del ciclo di vita
<a name="tagging-and-lifecycle"></a>

In una configurazione del ciclo di vita del bucket, è possibile specificare un filtro per selezionare un sottoinsieme di oggetti a cui si applica la regola. È possibile specificare un filtro in base ai prefissi dei nomi delle chiavi, ai tag degli oggetti o entrambi. 

Supponiamo di archiviare foto (in formato raw e in formato finito) nel bucket Amazon S3. A questi oggetti possono essere assegnati tag nel modo seguente. 

```
phototype=raw
or
phototype=finished
```

È possibile archiviare le foto non elaborate in Amazon Glacier poco dopo la creazione. È possibile configurare una regola del ciclo di vita con un filtro che identifica il sottoinsieme di oggetti con prefisso del nome della chiave (`photos/`) aventi un tag specifico (`phototype=raw`). 

Per ulteriori informazioni, consulta [Gestione del ciclo di vita degli oggetti](object-lifecycle-mgmt.md). 

### Tagging degli oggetti e replica
<a name="tagging-and-replication"></a>

Se è stata configurata la replica nel bucket, Amazon S3 replica i tag, purché ad Amazon S3 siano assegnate le autorizzazioni per leggerli. Per ulteriori informazioni, consulta [Panoramica della configurazione della replica in tempo reale](replication-how-setup.md).

### Notifiche eventi di assegnazione tag su oggetti
<a name="tagging-and-event-notifications"></a>

Puoi configurare una notifica eventi Amazon S3 per ricevere una notifica quando viene aggiunto o eliminato un tag oggetto da un oggetto. Il tipo di evento `s3:ObjectTagging:Put` ti avvisa quando un tag viene INSERITO su un oggetto o quando viene aggiornato un tag esistente. Il tipo di evento `s3:ObjectTagging:Delete` ti avvisa quando un tag viene rimosso da un oggetto. Per ulteriori informazioni, consulta [ Abilitazione notifiche eventi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-enable-disable-notification-intro.html).

Per ulteriori informazioni sul tagging degli oggetti, consulta i seguenti argomenti:

**Topics**
+ [Operazioni API correlate al tagging oggetti](#tagging-apis)
+ [Configurazioni aggiuntive](#tagging-other-configs)
+ [Tagging e policy di controllo degli accessi](tagging-and-policies.md)
+ [Gestione di tag degli oggetti](tagging-managing.md)

# Tagging e policy di controllo degli accessi
<a name="tagging-and-policies"></a>

Le policy di autorizzazione (policy bucket e policy utente) possono essere utilizzate per gestire le autorizzazioni relative al tagging oggetti. Per le operazioni delle policy, consulta i seguenti argomenti: 
+  [Operazioni con gli oggetti](security_iam_service-with-iam.md#using-with-s3-actions-related-to-objects) 
+  [Operazioni relative ai bucket](security_iam_service-with-iam.md#using-with-s3-actions-related-to-buckets)

I tag degli oggetti consentono un controllo degli accessi granulare per la gestione delle autorizzazioni. È possibile concedere autorizzazioni condizionali in base ai tag degli oggetti. Amazon S3 supporta le seguenti chiavi di condizione che è possibile utilizzare per concedere autorizzazioni condizionali basate sui tag degli oggetti.
+ `s3:ExistingObjectTag/<tag-key>` – Utilizzare questa chiave di condizione per verificare che un tag degli oggetti esistente abbia una chiave e un valore di tag specifici. 
**Nota**  
Quando si concedono autorizzazioni per le operazioni `PUT Object` e `DELETE Object`, questa chiave di condizione non è supportata. Ciò significa che non è possibile creare una policy per concedere o rifiutare le autorizzazioni utente che consentono di eliminare o sovrascrivere un oggetto in base ai relativi tag esistenti. 
+ `s3:RequestObjectTagKeys` – Utilizzare questa chiave di condizione per limitare le chiavi di tag che si desidera consentire sugli oggetti. Ciò è utile quando si aggiungono tag agli oggetti utilizzando le richieste PutObjectTagging di oggetti and e POST. PutObject
+ `s3:RequestObjectTag/<tag-key>` – Utilizzare questa chiave di condizione per limitare i valori e le chiavi di tag che si desidera consentire sugli oggetti. Ciò è utile quando si aggiungono tag agli oggetti utilizzando le richieste PutObjectTagging and PutObject e POST Bucket.

Per un elenco completo delle chiavi di condizione specifiche per il servizio Amazon S3, consulta [Esempi di policy per i bucket che utilizzano le chiavi di condizione](amazon-s3-policy-keys.md). Le seguenti policy di autorizzazione illustrano il modo in cui il tagging oggetti consente una gestione granulare delle autorizzazioni di accesso.

**Example 1: concedere a un utente autorizzazioni di sola lettura per gli oggetti con un valore di tag o chiave specifico**  
La seguente policy di autorizzazione limita l'utente a leggere solo gli oggetti che hanno il tag chiave e il valore `environment: production`. Questa policy utilizza la chiave di condizione `s3:ExistingObjectTag` per specificare la chiave e il valore del tag.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
  {
    "Principal": {
      "AWS": [
        "arn:aws:iam::111122223333:role/JohnDoe"
      ]
    },
    "Effect": "Allow",
    "Action": ["s3:GetObject", "s3:GetObjectVersion"],
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
      "StringEquals": 
        {"s3:ExistingObjectTag/environment": "production"}
    }
  }
  ]
}
```

**Example 2: limitare le chiavi di tag dell'oggetto che gli utenti possono aggiungere**  
La seguente policy di autorizzazione concede a un utente le autorizzazioni per eseguire l'operazione `s3:PutObjectTagging`, che permette di aggiungere tag a un oggetto esistente. La condizione utilizza la chiave di condizione `s3:RequestObjectTagKeys` per specificare le chiavi di tag consentite, ad esempio `Owner` o `CreationDate`. Per ulteriori informazioni, consulta la sezione [Creazione di una condizione con più chiavi o valori](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_multi-value-conditions.html) nella *Guida per l'utente IAM*.  
La policy garantisce che ogni chiave di tag specificata nella richiesta sia una chiave di tag autorizzata. Il qualificatore `ForAnyValue` nella condizione garantisce che almeno una delle chiavi specificate sia presente nella richiesta.    
****  

```
{
   "Version":"2012-10-17",		 	 	 
  "Statement": [
    {"Principal":{"AWS":[
            "arn:aws:iam::111122223333:role/JohnDoe"
         ]
       },
 "Effect": "Allow",
      "Action": [
        "s3:PutObjectTagging"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {"ForAnyValue:StringEquals": {"s3:RequestObjectTagKeys": [
            "Owner",
            "CreationDate"
          ]
        }
      }
    }
  ]
}
```

**Example 3: richiedere una chiave e un valore di tag specifici per consentire agli utenti di aggiungere tag di oggetti**  
Il seguente esempio di policy concede a un utente l'autorizzazione a eseguire l'azione `s3:PutObjectTagging`, che consente di aggiungere tag a un oggetto esistente. La condizione prevede che l'utente includa una chiave di tag specifica (ad esempio, `Project`) con valore impostato su `X`.    
****  

```
{
   "Version":"2012-10-17",		 	 	 
  "Statement": [
    {"Principal":{"AWS":[
       "arn:aws:iam::111122223333:user/JohnDoe"
         ]
       },
      "Effect": "Allow",
      "Action": [
        "s3:PutObjectTagging"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {"StringEquals": {"s3:RequestObjectTag/Project": "X"
        }
      }
    }
  ]
}
```



# Gestione di tag degli oggetti
<a name="tagging-managing"></a>

Questa sezione spiega come gestire i tag degli oggetti utilizzando la console AWS SDKs per Java e.NET o Amazon S3.

Il tagging degli oggetti consente di classificare l’archiviazione in bucket per uso generico. Ciascun tag è una coppia chiave-valore che aderisce alle seguenti regole:
+ Puoi associare fino a 10 tag a un oggetto. I tag associati a un oggetto devono avere chiavi di tag univoche.
+ Una chiave tag può contenere fino a 128 caratteri Unicode e i valori dei tag possono contenere fino a 256 caratteri Unicode. I tag di oggetti Amazon S3 sono rappresentati internamente in UTF-16. I caratteri in UTF-16 usano 1 o 2 posizioni.
+ La chiave e i valori fanno distinzione tra maiuscole e minuscole. 

Per ulteriori informazioni sui tag degli oggetti, consulta [Classificazione degli oggetti utilizzando i tag](object-tagging.md). Per ulteriori informazioni sui limiti dei tag, consulta [Restrizioni sui tag definiti dall'utente](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) nella *Guida per l'utente Gestione dei costi e fatturazione AWS *. 

## Utilizzo della console S3
<a name="add-object-tags"></a>

**Per aggiungere tag a un oggetto**

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

1. Nel riquadro di navigazione sinistro, scegli **Bucket per uso generico**.

1. Nell’elenco dei bucket scegli il nome del bucket contenente l’oggetto.

1. Seleziona la casella di controllo a sinistra dei nomi degli oggetti da modificare.

1. Dal menu **Operazioni**, seleziona **Modifica tag**.

1. Esamina gli oggetti elencati e seleziona **Aggiungi tag**.

1. Ogni tag oggetto è una coppia chiave-valore. Immettere una **chiave** e un **valore**. Per aggiungere un altro tag, scegliere **Add Tag (Aggiungi tag)**. 

   È possibile immettere fino a un massimo di 10 tag per ciascun oggetto.

1. Seleziona **Salva modifiche**.

   Amazon S3 aggiungerà i tag agli oggetti specificati.

Per ulteriori informazioni, vedi anche [Visualizzazione delle proprietà di un oggetto nella console di Amazon S3](view-object-properties.md) e [Caricamento degli oggetti](upload-objects.md) in questa guida. 

## Usando il AWS SDKs
<a name="tagging-manage-sdk"></a>

------
#### [ Java ]

Per gestire i tag degli oggetti utilizzando l' AWS SDK for Java, puoi impostare i tag per un nuovo oggetto e recuperare o sostituire i tag per un oggetto esistente. Per ulteriori informazioni sul tagging dell'oggetto, consulta [Classificazione degli oggetti utilizzando i tag](object-tagging.md).

Caricare un oggetto in un bucket e impostare tag mediante un’interfaccia S3Client. Per esempi, consulta [Caricamento di un oggetto in un bucket](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_PutObject_section.html) nella *Guida di riferimento delle API di Amazon S3*.

------
#### [ .NET ]

L'esempio seguente mostra come utilizzare AWS SDK per .NET per impostare i tag per un nuovo oggetto e recuperare o sostituire i tag per un oggetto esistente. Per ulteriori informazioni sul tagging dell'oggetto, consulta [Classificazione degli oggetti utilizzando i tag](object-tagging.md). 

Per informazioni sulla configurazione e l'esecuzione degli esempi di codice, consulta [Getting Started with the AWS SDK for .NET nella AWS SDK for](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html) .NET *Developer Guide*. 

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    public class ObjectTagsTest
    {
        private const string bucketName = "*** bucket name ***";
        private const string keyName = "*** key name for the new object ***";
        private const string filePath = @"*** file path ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 client;

        public static void Main()
        {
            client = new AmazonS3Client(bucketRegion);
            PutObjectWithTagsTestAsync().Wait();
        }

        static async Task PutObjectWithTagsTestAsync()
        {
            try
            {
                // 1. Put an object with tags.
                var putRequest = new PutObjectRequest
                {
                    BucketName = bucketName,
                    Key = keyName,
                    FilePath = filePath,
                    TagSet = new List<Tag>{
                        new Tag { Key = "Keyx1", Value = "Value1"},
                        new Tag { Key = "Keyx2", Value = "Value2" }
                    }
                };

                PutObjectResponse response = await client.PutObjectAsync(putRequest);
                // 2. Retrieve the object's tags.
                GetObjectTaggingRequest getTagsRequest = new GetObjectTaggingRequest
                {
                    BucketName = bucketName,
                    Key = keyName
                };

                GetObjectTaggingResponse objectTags = await client.GetObjectTaggingAsync(getTagsRequest);
                for (int i = 0; i < objectTags.Tagging.Count; i++)
                    Console.WriteLine("Key: {0}, Value: {1}", objectTags.Tagging[i].Key, objectTags.Tagging[i].Value);


                // 3. Replace the tagset.

                Tagging newTagSet = new Tagging();
                newTagSet.TagSet = new List<Tag>{
                    new Tag { Key = "Key3", Value = "Value3"},
                    new Tag { Key = "Key4", Value = "Value4" }
                };


                PutObjectTaggingRequest putObjTagsRequest = new PutObjectTaggingRequest()
                {
                    BucketName = bucketName,
                    Key = keyName,
                    Tagging = newTagSet
                };
                PutObjectTaggingResponse response2 = await client.PutObjectTaggingAsync(putObjTagsRequest);

                // 4. Retrieve the object's tags.
                GetObjectTaggingRequest getTagsRequest2 = new GetObjectTaggingRequest();
                getTagsRequest2.BucketName = bucketName;
                getTagsRequest2.Key = keyName;
                GetObjectTaggingResponse objectTags2 = await client.GetObjectTaggingAsync(getTagsRequest2);
                for (int i = 0; i < objectTags2.Tagging.Count; i++)
                    Console.WriteLine("Key: {0}, Value: {1}", objectTags2.Tagging[i].Key, objectTags2.Tagging[i].Value);

            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine(
                        "Error encountered ***. Message:'{0}' when writing an object"
                        , e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine(
                    "Encountered an error. Message:'{0}' when writing an object"
                    , e.Message);
            }
        }
    }
}
```

------