

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

# Risoluzione dei problemi ABAC per AWS KMS
<a name="troubleshooting-tags-aliases"></a>

Controllare l'accesso alle chiavi KMS in base ai tag e agli alias è comodo e potente. Tuttavia, è incline a alcuni errori prevedibili che vorrai prevenire.

## Accesso modificato a causa della modifica dei tag
<a name="access-denied-tag"></a>

Se un tag viene eliminato o il relativo valore viene modificato, ai principali che hanno accesso a una chiave KMS basata solo su tale tag verrà negato l'accesso alla chiave KMS. Ciò può verificarsi anche quando un tag incluso in un'istruzione di policy di negazione viene aggiunto a una chiave KMS. L'aggiunta di un tag relativo alla policy a una chiave KMS può consentire l'accesso a principali a cui è necessario negare l'accesso a una chiave KMS.

Si supponga, ad esempio, che un principale abbia accesso a una chiave KMS in base al tag `Project=Alpha`, ad esempio l'autorizzazione fornita dalla seguente istruzione della policy IAM di esempio. 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "IAMPolicyWithResourceTag",
      "Effect": "Allow",
      "Action": [
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:Decrypt"
      ],
      "Resource": "arn:aws:kms:ap-southeast-1:111122223333:key/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Project": "Alpha"
        }
      }
    }
  ]
}
```

------

Se il tag viene eliminato dalla chiave KMS o il valore del tag viene modificato, l'entità principale non dispone più dell'autorizzazione per utilizzare la chiave KMS per le operazioni specificate. [Ciò potrebbe diventare evidente quando il responsabile tenta di leggere o scrivere dati in un AWS servizio che utilizza una chiave gestita dal cliente. Per tracciare la modifica del tag, controlla CloudTrail i log [TagResource](ct-tagresource.md)o UntagResource le immissioni.](ct-untagresource.md)

Per ripristinare l'accesso senza aggiornare la policy, modifica i tag sulla chiave KMS. Questa azione ha un impatto minimo diverso dal breve periodo in cui sta entrando in vigore AWS KMS. Per evitare un errore come questo, dai le autorizzazioni per l'assegnazione e l'eliminazione di tag solo ai principali che ne hanno bisogno e [limita le autorizzazioni per l'assegnazione di tag](tag-permissions.md#tag-permissions-conditions) ai tag che devono gestire. Prima di modificare un tag, cerca le policy per rilevare l'accesso che dipende dal tag e ottenere le chiavi KMS in tutte le Regioni che dispongono del tag. Potresti prendere in considerazione la creazione di un CloudWatch allarme Amazon quando vengono modificati determinati tag.

## Modifica dell'accesso a causa della modifica degli alias
<a name="access-denied-alias"></a>

Se un alias viene eliminato o associato a una chiave KMS diversa, ai principali che hanno accesso alla chiave KMS basata solo su tale alias verrà negato l'accesso alla chiave KMS. Ciò può verificarsi anche quando un alias associato a una chiave KMS è incluso in un'istruzione della policy di negazione. L'aggiunta di un alias relativo alla policy a una chiave KMS può inoltre consentire l'accesso a principali a cui è necessario negare l'accesso a una chiave KMS.

Ad esempio, la seguente dichiarazione politica IAM utilizza la chiave [kms: ResourceAliases](conditions-kms.md#conditions-kms-resource-aliases) condition per consentire l'accesso alle chiavi KMS in diverse regioni dell'account con uno qualsiasi degli alias specificati.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AliasBasedIAMPolicy",
      "Effect": "Allow",
      "Action": [
        "kms:List*",
        "kms:Describe*",
        "kms:Decrypt"
      ],
      "Resource": "arn:aws:kms:*:111122223333:key/*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "kms:ResourceAliases": [
            "alias/ProjectAlpha",
            "alias/ProjectAlpha_Test",
            "alias/ProjectAlpha_Dev"
          ]
        }
      }
    }
  ]
}
```

------

Per tracciare la modifica dell'alias, esamina i CloudTrail log e le [CreateAlias](ct-createalias.md)immissioni. [UpdateAlias[DeleteAlias](ct-deletealias.md)](ct-updatealias.md)

Per ripristinare l'accesso senza aggiornare la policy, modifica gli alias associati alla chiave KMS. Poiché ogni alias può essere associato a una sola chiave KMS in un account e in una Regione, la gestione degli alias è un po' più difficile della gestione dei tag. Il ripristino dell'accesso ad alcune entità principali a una chiave KMS può negare l'accesso alla stessa o ad altre entità principali a una chiave KMS diversa. 

Per evitare questo errore, assegna autorizzazioni di gestione degli alias solo alle entità principali che ne hanno bisogno e [limita le autorizzazioni per la gestione degli alias](alias-access.md#alias-access-limiting) agli alias che devono gestire. Prima di aggiornare o eliminare un alias, cerca le policy per rilevare l'accesso che dipende dall'alias e trova le chiavi KMS in tutte le Regioni associate all'alias.

## Accesso negato a causa di quota alias
<a name="access-denied-alias-quota"></a>

Gli utenti autorizzati a utilizzare una chiave KMS entro una ResourceAliases condizione [kms:](conditions-kms.md#conditions-kms-resource-aliases) riceveranno un'`AccessDenied`eccezione se la chiave KMS supera gli [alias predefiniti per quota di chiavi KMS per quell'account e quella regione](resource-limits.md#aliases-per-key). 

Per ripristinare l'accesso, elimina gli alias associati alla chiave KMS in modo da rispettare la quota. In alternativa, utilizza un meccanismo alternativo per consentire agli utenti di accedere alla chiave KMS. 

## Modifica dell'autorizzazione ritardata
<a name="tag-alias-auth-delay"></a>

Le modifiche apportate a tag e alias possono richiedere fino a cinque minuti per influenzare l'autorizzazione delle chiavi KMS. Di conseguenza, una modifica di tag o alias potrebbe riflettersi nelle risposte delle operazioni API prima che influiscano sull'autorizzazione. È probabile che questo ritardo sia più lungo dell'eventuale breve ritardo di coerenza che influisce sulla maggior parte delle operazioni. AWS KMS 

Ad esempio, potrebbe esserci una policy IAM che consente a determinate entità principali di utilizzare una chiave KMS con un tag `"Purpose"="Test"`. Quindi aggiungi il tag `"Purpose"="Test"` su una chiave KMS. Sebbene l'[TagResource](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html)operazione sia stata completata e la [ListResourceTags](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListResourceTags.html)risposta confermi che il tag è stato assegnato alla chiave KMS, i responsabili potrebbero non avere accesso alla chiave KMS per un massimo di cinque minuti.

Per evitare errori, inserisci questo ritardo previsto nel tuo codice. 

## Richieste non riuscite a causa di aggiornamenti alias
<a name="failed-requests"></a>

Quando aggiorni un alias, associ un alias esistente a una chiave KMS diversa. 

La [decrittografia](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) e [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)le richieste che specificano il [nome alias](concepts.md#key-id-alias-name) o l'alias [ARN](concepts.md#key-id-alias-ARN) potrebbero non riuscire perché l'alias è ora associato a una chiave KMS che non crittografava il testo cifrato. Questa situazione in genere restituisce `IncorrectKeyException` o `NotFoundException`. O se la richiesta non ha un parametro `KeyId` o `DestinationKeyId`, l'operazione potrebbe avere esito negativo con l'eccezione `AccessDenied` perché il chiamante non ha più accesso alla chiave KMS che ha crittografato il testo cifrato. 

È possibile tracciare la modifica esaminando i log e le voci di registro. CloudTrail [CreateAlias[UpdateAlias[DeleteAlias](ct-deletealias.md)](ct-updatealias.md)](ct-createalias.md) È inoltre possibile utilizzare il valore del `LastUpdatedDate` campo nella [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)risposta per rilevare una modifica. 

Ad esempio, la seguente risposta di [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)esempio mostra che l'`ProjectAlpha_Test`alias nella `kms:ResourceAliases` condizione è stato aggiornato. Di conseguenza, le entità principali che hanno un accesso basato sugli alias perdono l'accesso alla chiave KMS associata in precedenza. Al contrario, hanno accesso alla nuova chiave KMS associata. 

```
$ aws kms list-aliases --query 'Aliases[?starts_with(AliasName, `alias/ProjectAlpha`)]'

{
    "Aliases": [
        {
            "AliasName": "alias/ProjectAlpha_Test",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ProjectAlpha_Test",
            "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
            "CreationDate": 1566518783.394,
            "LastUpdatedDate": 1605308931.903
        },
        {
            "AliasName": "alias/ProjectAlpha_Restricted",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ProjectAlpha_Restricted",
            "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1553410800.010,
            "LastUpdatedDate": 1553410800.010
        }
    ]
}
```

Non è semplice rimediare a questa modifica. È possibile aggiornare nuovamente l'alias per associarlo alla chiave KMS originale. Tuttavia, prima di agire, è necessario considerare l'effetto di tale modifica sulla chiave KMS attualmente associata. Se le entità utilizzavano quest'ultima chiave KMS nelle operazioni di crittografia, potrebbe essere necessario continuare ad accedervi. In questo caso, è possibile aggiornare la policy per assicurarsi che le entità principali dispongano dell'autorizzazione per utilizzare entrambe le chiavi KMS. 

È possibile evitare un errore come questo: prima di aggiornare un alias, cerca le policy per rilevare l'accesso che dipende dall'alias. Quindi ottieni le chiavi KMS in tutte le Regioni associate all'alias. Assegna autorizzazioni di gestione degli alias solo alle entità principali che ne hanno bisogno e [limita le autorizzazioni per la gestione degli alias](alias-access.md#alias-access-limiting) agli alias che devono gestire.