

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

# AWS KMS tasti di condizione
<a name="conditions-kms"></a>

AWS KMS fornisce un set di chiavi di condizione che è possibile utilizzare nelle politiche chiave e nelle politiche IAM. Queste chiavi di condizione sono specifiche per AWS KMS. Ad esempio, puoi utilizzare la chiave di condizione `kms:EncryptionContext:context-key` per richiedere un [contesto di crittografia](encrypt_context.md) specifico per controllare l'accesso a una chiave KMS di crittografia simmetrica.

**Condizioni per una richiesta di operazione API**

Molte chiavi AWS KMS condizionali controllano l'accesso a una chiave KMS in base al valore di un parametro nella richiesta di un' AWS KMS operazione. Ad esempio, puoi utilizzare la chiave [kms: KeySpec](#conditions-kms-key-spec) condition in una policy IAM per consentire l'uso dell'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operazione solo quando il valore del `KeySpec` parametro nella `CreateKey` richiesta è. `RSA_4096` 

Questo tipo di condizione funziona anche quando il parametro non è presente nella richiesta, ad esempio quando si usa il valore predefinito del parametro. Ad esempio, puoi utilizzare la chiave di condizione [kms:KeySpec](#conditions-kms-key-spec) per consentire agli utenti di usare l'operazione `CreateKey` solo quando il valore del parametro `KeySpec` è `SYMMETRIC_DEFAULT`, che è il valore predefinito. Questa condizione consente le richieste che hanno il parametro `KeySpec` con il valore `SYMMETRIC_DEFAULT` e le richieste che non hanno alcun parametro `KeySpec`.

**Condizioni per le chiavi KMS utilizzate nelle operazioni API**

Alcune chiavi AWS KMS condizionali possono controllare l'accesso alle operazioni in base a una proprietà della chiave KMS utilizzata nell'operazione. Ad esempio, puoi utilizzare la KeyOrigin condizione [kms:](#conditions-kms-key-origin) per consentire ai responsabili di [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)richiamare una chiave KMS solo quando la `Origin` chiave KMS è. `AWS_KMS` Per scoprire se una chiave di condizione può essere utilizzata in questo modo, osserva la descrizione della chiave di condizione.

L'operazione deve essere un'*operazione delle risorse delle chiavi KMS*, ossia un'operazione autorizzata per una determinata chiave KMS. Per identificare le operazioni delle risorse delle chiavi KMS, nella [tabella Azioni e risorse](kms-api-permissions-reference.md#kms-api-permissions-reference-table), cerca un valore della `KMS key` nella colonna `Resources` per l'operazione. Se si utilizza questo tipo di chiave condizionale con un'operazione non autorizzata per una particolare risorsa chiave KMS, ad esempio [ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html), l'autorizzazione non è efficace perché la condizione non può mai essere soddisfatta. Non c'è nessuna risorsa chiave KMS coinvolta nell'autorizzazione dell'operazione `ListKeys` e nessuna proprietà `KeySpec`. 

Gli argomenti seguenti descrivono ogni chiave di AWS KMS condizione e includono esempi di istruzioni sulle politiche che illustrano la sintassi delle politiche.

**Utilizzo di operatori con chiavi di condizione**

Quando una condizione di policy confronta due set di valori, ad esempio il set di tag in una richiesta e il set di tag in una policy, è necessario spiegare AWS come confrontare i set. Per farlo, IAM definisce due operatori, `ForAnyValue` e `ForAllValues`. Utilizza gli operatori solo con le *chiavi di condizione multivalore* che li richiedono. Non utilizzare operatori con *chiavi di condizione a valore singolo*. Testa sempre in modo approfondito le istruzioni di policy prima di avvalertene in un ambiente di produzione.

Le chiavi di condizione sono a valore singolo o multivalore. Per determinare se una chiave di AWS KMS condizione è a valore singolo o multivalore, consultate la colonna **Tipo di valore nella descrizione** della chiave di condizione. 
+ Le chiavi di condizione *a valore singolo* hanno al massimo un valore nel contesto di autorizzazione (la richiesta o la risorsa). Ad esempio, poiché ogni chiamata API può provenire da una sola Account AWS, [kms: CallerAccount](#conditions-kms-caller-account) è una chiave di condizione a valore singolo. Non utilizzare operatori con una chiave di condizione a valore singolo. 
+ Le chiavi di condizione *multivalore* hanno più valori nel contesto di autorizzazione (la richiesta o la risorsa). Ad esempio, poiché ogni chiave KMS può avere più alias, [kms: ResourceAliases](#conditions-kms-resource-aliases) può avere più valori. Le chiavi di condizione multivalore richiedono un operatore. 

Si noti che la differenza tra chiavi di condizione a valore singolo e multivalore dipende dal numero di valori nel contesto di autorizzazione e non dal numero di valori nella condizione di policy.

**avvertimento**  
L'utilizzo di un operatore con una chiave di condizione a valore singolo può creare un'istruzione di policy eccessivamente permissiva (o eccessivamente restrittiva). Utilizza gli operatori solo con le chiavi di condizione multivalore.  
Se si crea o si aggiorna una politica che include un operatore di `ForAllValues` set con le chiavi kms:EncryptionContext: *context key* o `aws:RequestTag/tag-key` condition, AWS KMS restituisce il seguente messaggio di errore:  
`OverlyPermissiveCondition: Using the ForAllValues set operator with a single-valued condition key matches requests without the specified [encryption context or tag] or with an unspecified [encryption context or tag]. To fix, remove ForAllValues.`

Per informazioni dettagliate su `ForAnyValue` e sugli operatori `ForAllValues`, consulta [Utilizzo di più chiavi e valori](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) nella *Guida per l'utente di IAM*. *Per informazioni sul rischio di utilizzare l'operatore `ForAllValues` set con una condizione a valore singolo, consulta [Security Warning — ForAllValues with single valued key](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html#access-analyzer-reference-policy-checks-security-warning-forallvalues-with-single-valued-key) nella IAM User Guide.*

**Topics**
+ [kms:BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [kms:CallerAccount](#conditions-kms-caller-account)
+ [kms: (obsoletoCustomerMasterKeySpec )](#conditions-kms-key-spec-replaced)
+ [kms: CustomerMasterKeyUsage (obsoleto)](#conditions-kms-key-usage-replaced)
+ [kms:DataKeyPairSpec](#conditions-kms-data-key-spec)
+ [kms:EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [*kms:: chiave contestuale EncryptionContext*](#conditions-kms-encryption-context)
+ [kms:EncryptionContextKeys](#conditions-kms-encryption-context-keys)
+ [kms:ExpirationModel](#conditions-kms-expiration-model)
+ [kms:GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [kms:GrantIsForAWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [kms:GrantOperations](#conditions-kms-grant-operations)
+ [kms:GranteePrincipal](#conditions-kms-grantee-principal)
+ [kms:KeyAgreementAlgorithm](#conditions-kms-key-agreement-algorithm)
+ [kms:KeyOrigin](#conditions-kms-key-origin)
+ [kms:KeySpec](#conditions-kms-key-spec)
+ [kms:KeyUsage](#conditions-kms-key-usage)
+ [kms:MacAlgorithm](#conditions-kms-mac-algorithm)
+ [kms:MessageType](#conditions-kms-message-type)
+ [kms:MultiRegion](#conditions-kms-multiregion)
+ [kms:MultiRegionKeyType](#conditions-kms-multiregion-key-type)
+ [kms:PrimaryRegion](#conditions-kms-primary-region)
+ [kms:ReEncryptOnSameKey](#conditions-kms-reencrypt-on-same-key)
+ [kms:RequestAlias](#conditions-kms-request-alias)
+ [kms:ResourceAliases](#conditions-kms-resource-aliases)
+ [kms:ReplicaRegion](#conditions-kms-replica-region)
+ [kms:RetiringPrincipal](#conditions-kms-retiring-principal)
+ [kms:RotationPeriodInDays](#conditions-kms-rotation-period-in-days)
+ [kms:ScheduleKeyDeletionPendingWindowInDays](#conditions-kms-schedule-key-deletion-pending-window-in-days)
+ [kms:SigningAlgorithm](#conditions-kms-signing-algorithm)
+ [kms:ValidTo](#conditions-kms-valid-to)
+ [kms:ViaService](#conditions-kms-via-service)
+ [kms:WrappingAlgorithm](#conditions-kms-wrapping-algorithm)
+ [kms:WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## kms:BypassPolicyLockoutSafetyCheck
<a name="conditions-kms-bypass-policy-lockout-safety-check"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:BypassPolicyLockoutSafetyCheck`  |  Booleano  | A valore singolo |  `CreateKey` `PutKeyPolicy`  |  Solo policy IAM Policy delle chiavi e policy IAM  | 

Il tasto `kms:BypassPolicyLockoutSafetyCheck` condition controlla l'accesso alle [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)operazioni [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)and in base al valore del `BypassPolicyLockoutSafetyCheck` parametro nella richiesta. 

La seguente istruzione di policy IAM di esempio impedisce agli utenti di aggirare il controllo di sicurezza di blocco della policy rifiutando l'autorizzazione a creare le chiavi KMS quando il valore del parametro `BypassPolicyLockoutSafetyCheck` nella richiesta `CreateKey` è `true.` 

```
{
  "Effect": "Deny",
  "Action": [
    "kms:CreateKey",
    "kms:PutKeyPolicy"
  ],
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
```

È inoltre possibile utilizzare la chiave di condizione `kms:BypassPolicyLockoutSafetyCheck` in una policy IAM o della chiave per controllare l'accesso all'operazione `PutKeyPolicy`. La seguente istruzione di policy di esempio da una policy delle chiavi impedisce agli utenti di aggirare il controllo di sicurezza di blocco della policy durante la modifica della policy di una chiave KMS. 

Invece di utilizzare un `Deny` esplicito, questa istruzione di policy utilizza `Allow` con l'[operatore di condizione Null](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) per consentire l'accesso solo quando la richiesta non include il parametro `BypassPolicyLockoutSafetyCheck`. Quando il parametro non viene utilizzato, il valore predefinito è `false`. Questa istruzione di policy leggermente più debole può essere sostituita nel raro caso in cui un bypass sia necessario. 

```
{
  "Effect": "Allow",
  "Action": "kms:PutKeyPolicy",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:BypassPolicyLockoutSafetyCheck": true
    }
  }
}
```

**Consulta anche**
+ [kms:KeySpec](#conditions-kms-key-spec)
+ [kms:KeyOrigin](#conditions-kms-key-origin)
+ [kms:KeyUsage](#conditions-kms-key-usage)

## kms:CallerAccount
<a name="conditions-kms-caller-account"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:CallerAccount`  |  Stringa  | A valore singolo |  Operazioni delle risorse delle chiavi KMS Operazioni dell'archivio delle chiavi personalizzate  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare questa chiave di condizione per consentire o negare l'accesso a tutte le identità (utenti e ruoli) in un Account AWS. Nelle policy delle chiavi, è possibile utilizzare l'elemento `Principal` per specificare le identità per le quali vale l'istruzione di policy. La sintassi per l'elemento `Principal` non fornisce un modo per specificare tutte le identità in un Account AWS. Tuttavia, è possibile ottenere questo effetto combinando questa chiave di condizione con un `Principal` elemento che specifica tutte le AWS identità.

È possibile utilizzarlo per controllare l'accesso a qualsiasi *operazione di risorsa chiave KMS*, ovvero a qualsiasi AWS KMS operazione che utilizza una particolare chiave KMS. Per identificare le operazioni delle risorse delle chiavi KMS, nella [tabella Azioni e risorse](kms-api-permissions-reference.md#kms-api-permissions-reference-table), cerca un valore della `KMS key` nella colonna `Resources` per l'operazione. È valido anche per le operazioni che gestiscono gli [archivi delle chiavi personalizzate](key-store-overview.md#custom-key-store-overview).

Ad esempio, la seguente istruzione di policy chiave dimostra come utilizzare la chiave di condizione `kms:CallerAccount`. Questa dichiarazione rientra nella politica chiave Chiave gestita da AWS per Amazon EBS. Combina un `Principal` elemento che specifica tutte le AWS identità con la chiave di `kms:CallerAccount` condizione per consentire in modo efficace l'accesso a tutte le identità in 111122223333. Account AWS Contiene una chiave di AWS KMS condizione aggiuntiva (`kms:ViaService`) per limitare ulteriormente le autorizzazioni permettendo solo le richieste provenienti da Amazon EBS. Per ulteriori informazioni, consulta [kms:ViaService](#conditions-kms-via-service).

```
{
  "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS",
  "Effect": "Allow",
  "Principal": {"AWS": "*"},
  "Condition": {
    "StringEquals": {
      "kms:CallerAccount": "111122223333",
      "kms:ViaService": "ec2.us-west-2.amazonaws.com"
    }
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*"
}
```

## kms: (obsoletoCustomerMasterKeySpec )
<a name="conditions-kms-key-spec-replaced"></a>

La chiave di condizione `kms:CustomerMasterKeySpec` è obsoleta. Usa invece la chiave [kms](#conditions-kms-key-spec): condition. KeySpec

Le chiavi di condizione `kms:CustomerMasterKeySpec` e `kms:KeySpec` funzionano allo stesso modo. Solo i nomi differiscono. Ti consigliamo di utilizzare `kms:KeySpec`. Tuttavia, per evitare di interrompere le modifiche, AWS KMS supporta entrambe le chiavi di condizione.

## kms: CustomerMasterKeyUsage (obsoleto)
<a name="conditions-kms-key-usage-replaced"></a>

La chiave di condizione `kms:CustomerMasterKeyUsage` è obsoleta. Usa invece la chiave [kms](#conditions-kms-key-usage): condition. KeyUsage

Le chiavi di condizione `kms:CustomerMasterKeyUsage` e `kms:KeyUsage` funzionano allo stesso modo. Solo i nomi differiscono. Ti consigliamo di utilizzare `kms:KeyUsage`. Tuttavia, per evitare di interrompere le modifiche, AWS KMS supporta entrambe le chiavi di condizione.

## kms:DataKeyPairSpec
<a name="conditions-kms-data-key-spec"></a>


| AWS KMS tasti di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:DataKeyPairSpec`  |  Stringa  | A valore singolo |  `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext`  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare questa chiave di condizione per controllare l'accesso alle [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)operazioni [GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)and in base al valore del `KeyPairSpec` parametro nella richiesta. Ad esempio, è possibile consentire agli utenti di generare solo determinati tipi di coppie di chiavi di dati.

La seguente istruzione di policy delle chiavi di esempio utilizza la chiave di condizione `kms:DataKeyPairSpec` per consentire agli utenti di usare la chiave KMS per generare solo coppie di chiavi di dati RSA.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:DataKeyPairSpec": "RSA*"
    }
  }
}
```

**Consulta anche**
+ [kms:KeySpec](#conditions-kms-key-spec)
+ [kms:EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [*kms:: chiave contestuale EncryptionContext*](#conditions-kms-encryption-context)
+ [kms:EncryptionContextKeys](#conditions-kms-encryption-context-keys)

## kms:EncryptionAlgorithm
<a name="conditions-kms-encryption-algorithm"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:EncryptionAlgorithm`  |  Stringa  | A valore singolo |  `Decrypt` `Encrypt` `GenerateDataKey` `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext` `GenerateDataKeyWithoutPlaintext` `ReEncrypt`  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare la chiave di condizione `kms:EncryptionAlgorithm` per controllare l'accesso alle operazioni di crittografia in base all'algoritmo di crittografia usato nell'operazione. Per quanto riguarda [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html), [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) e [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)Operations, controlla l'accesso in base al valore del [EncryptionAlgorithm](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html#KMS-Decrypt-request-EncryptionAlgorithm)parametro nella richiesta. Per le operazioni che generano chiavi di dati e coppie di chiavi di dati, controlla l'accesso in base all'algoritmo di crittografia utilizzato per crittografare la chiave di dati.

Questa chiave condizionale non ha alcun effetto sulle operazioni eseguite all'esterno AWS KMS, come la crittografia con la chiave pubblica in una coppia di chiavi KMS asimmetrica all'esterno di. AWS KMS

**EncryptionAlgorithm parametro in una richiesta**

Per consentire agli utenti di utilizzare solo un particolare algoritmo di crittografia con una chiave KMS, usa un'istruzione di policy con un effetto `Deny` e un operatore di condizione `StringNotEquals`. Ad esempio, la seguente istruzione di policy delle chiavi di esempio impedisce ai principali che possono assumere il ruolo `ExampleRole` di utilizzare questa chiave KMS nelle operazioni di crittografia specificate a meno che l'algoritmo di crittografia nella richiesta non sia `RSAES_OAEP_SHA_256`, un algoritmo di crittografia asimmetrica utilizzato con le chiavi KMS RSA.

A differenza di un'istruzione di policy che consente a un utente di utilizzare un particolare algoritmo di crittografia, un'istruzione di policy con un doppio negativo come questa impedisce ad altre policy e concessioni per questa chiave KMS di autorizzare il ruolo a utilizzare altri algoritmi di crittografia. Il `Deny` in questa istruzione di policy chiave ha la precedenza sulle policy delle chiavi o policy IAM con effetto `Allow`, nonché su tutte le concessioni per questa chiave KMS e i relativi principali.

```
{
  "Sid": "Allow only one encryption algorithm with this asymmetric KMS key",
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "RSAES_OAEP_SHA_256"
    }
  }
}
```

**Algoritmo di crittografia utilizzato per l'operazione**

È possibile utilizzare anche la chiave di condizione `kms:EncryptionAlgorithm` per controllare l'accesso alle operazioni basate sull'algoritmo di crittografia utilizzato nell'operazione, anche quando l'algoritmo non è specificato nella richiesta. Ciò consente di richiedere o vietare l'algoritmo `SYMMETRIC_DEFAULT`, che potrebbe non essere specificato in una richiesta perché è il valore predefinito.

Questa funzione ti consente di usare la chiave di condizione `kms:EncryptionAlgorithm` per controllare l'accesso alle operazioni che generano chiavi di dati e coppie di chiavi di dati. Queste operazioni utilizzano soltanto chiavi KMS di crittografia simmetrica e l'algoritmo `SYMMETRIC_DEFAULT`.

Ad esempio, questa policy IAM limita le sue entità principali alla crittografia simmetrica. Nega l'accesso a qualsiasi chiave KMS nell'account di esempio per le operazioni di crittografia a meno che l'algoritmo di crittografia specificato nella richiesta o utilizzato nell'operazione non sia SYMMETRIC\$1DEFAULT. `GenerateDataKey*`Incluse le aggiunte [GenerateDataKey[GenerateDataKeyWithoutPlaintext[GenerateDataKeyPair](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPair.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html),, e [GenerateDataKeyPairWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyPairWithoutPlaintext.html)alle autorizzazioni. La condizione non ha alcun effetto su queste operazioni perché utilizzano sempre un algoritmo di crittografia simmetrica.

```
{
  "Sid": "AllowOnlySymmetricAlgorithm",
  "Effect": "Deny",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringNotEquals": {
      "kms:EncryptionAlgorithm": "SYMMETRIC_DEFAULT"
    }
  }
}
```

**Consulta anche**
+ [kms:MacAlgorithm](#conditions-kms-mac-algorithm)
+ [kms:SigningAlgorithm](#conditions-kms-signing-algorithm)

## *kms:: chiave contestuale EncryptionContext*
<a name="conditions-kms-encryption-context"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:EncryptionContext:context-key`  |  Stringa  | A valore singolo |  `CreateGrant` `Encrypt` `Decrypt` `GenerateDataKey` `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext` `GenerateDataKeyWithoutPlaintext` `ReEncrypt` `RetireGrant`  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare la chiave di condizione `kms:EncryptionContext:context-key` per controllare l'accesso a una [chiave KMS di crittografia simmetrica](symm-asymm-choose-key-spec.md#symmetric-cmks) in base al [contesto di crittografia](encrypt_context.md) in una richiesta per un'[operazione di crittografia](kms-cryptography.md#cryptographic-operations). Utilizza questa chiave di condizione per valutare sia la chiave sia il valore nella coppia del contesto di crittografia. Per valutare solo le chiavi del contesto di crittografia o richiedere un contesto di crittografia indipendentemente dalle chiavi o dai valori, usa la chiave [kms: EncryptionContextKeys](#conditions-kms-encryption-context-keys) condition.

**Nota**  
I valori delle chiavi di condizione devono rispettare le regole sul numero di caratteri delle policy delle chiavi e delle policy IAM. Alcuni caratteri che sono validi in un contesto di crittografia non sono validi nelle policy. Potrebbe non essere possibile utilizzare questa chiave di condizione per esprimere tutti i valori validi del contesto di crittografia. Per maggiori informazioni sulle regole delineate nel documento delle policy delle chiavi, consulta la sezione [Formato della policy della chiave](key-policy-overview.md#key-policy-format). Per informazioni dettagliate sulle regole delineate nel documento delle policy IAM, consulta la sezione [Requisiti del nome IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-names) nella *Guida per l'utente di IAM*.

Non è possibile specificare un contesto di crittografia in un'operazione di crittografia con una [chiave KMS asimmetrica](symmetric-asymmetric.md) o una [chiave KMS HMAC](hmac.md). Gli algoritmi asimmetrici e gli algoritmi MAC non supportano un contesto di crittografia.

Per utilizzare la chiave di condizione kms:EncryptionContext: *context-key*, sostituisci il *context-key* segnaposto con la chiave di contesto di crittografia. Sostituisci il segnaposto *context-value* con il valore del contesto di crittografia.

```
"kms:EncryptionContext:context-key": "context-value"
```

Ad esempio, la seguente chiave di condizione specifica un contesto di crittografia in cui la chiave è `AppName` e il valore è `ExampleApp` (`AppName = ExampleApp`).

```
"kms:EncryptionContext:AppName": "ExampleApp"
```

Si tratta di una [chiave di condizione a valore singolo](#set-operators). La chiave nella chiave di condizione specifica una particolare chiave di contesto di crittografia (*context-key*). Sebbene sia possibile includere più coppie di contesto di crittografia in ogni richiesta API, la coppia di contesto di crittografia con la *context-key* specificata può avere un solo valore. Ad esempio, la chiave di condizione `kms:EncryptionContext:Department` si applica solo alle coppie di contesto di crittografia con una chiave `Department` e qualsiasi coppia di contesto di crittografia data con la chiave `Department` può avere solo un valore.

Non utilizzare un operatore con la chiave di condizione `kms:EncryptionContext:context-key`. Se crei un'istruzione di policy con un'azione `Allow`, la chiave di condizione `kms:EncryptionContext:context-key` e l'operatore `ForAllValues`, la condizione consente le richieste senza contesto di crittografia e senza le richieste con coppie di contesto di crittografia che non sono specificate nella condizione di policy.

**avvertimento**  
Non utilizzare un operatore `ForAnyValue` or `ForAllValues` con una chiave di condizione a valore singolo. Questi operatori possono creare una condizione di policy che non richiede valori che intendi richiedere e consente valori che intendi vietare.  
Se si crea o si aggiorna una politica che include un operatore `ForAllValues` set con la chiave kms:EncryptionContext: *context-key*, AWS KMS restituisce il seguente messaggio di errore:  
`OverlyPermissiveCondition:EncryptionContext: Using the ForAllValues set operator with a single-valued condition key matches requests without the specified encryption context or with an unspecified encryption context. To fix, remove ForAllValues.`

Per richiedere una particolare coppia di contesto di crittografia, utilizzare la chiave di condizione `kms:EncryptionContext:context-key` con l'operatore `StringEquals`.

La seguente istruzione di policy chiave di esempio consente alle entità principali che possono assumere il ruolo per utilizzare la chiave KMS in una richiesta `GenerateDataKey` solo quando il contesto di crittografia nella richiesta include la coppia `AppName:ExampleApp`. Altre coppie di contesto di crittografia sono consentite.

Il nome della chiave non fa distinzione tra maiuscole e minuscole. La distinzione tra maiuscole e minuscole che fa il valore è determinata dall'operatore della condizione, ad esempio `StringEquals`. Per informazioni dettagliate, vedi [Distinzione tra maiuscole e minuscole della condizione del contesto](#conditions-kms-encryption-context-case).

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
```

Per richiedere una coppia di contesti di crittografia e vietare tutte le altre coppie di contesti di crittografia, utilizza entrambi kms:EncryptionContext: *context-key* e [`kms:EncryptionContextKeys`](#conditions-kms-encryption-context-keys)nell'informativa sulla politica. La seguente istruzione di policy chiave utilizza la chiave di condizione `kms:EncryptionContext:AppName` per richiedere la coppia di contesto di crittografia `AppName=ExampleApp` nella richiesta. Utilizza inoltre una chiave di condizione `kms:EncryptionContextKeys` con l'operatore `ForAllValues` per consentire solo la chiave di contesto di crittografia `AppName`. 

L'operatore `ForAllValues` limita le chiavi di contesto di crittografia nella richiesta a `AppName`. Se la condizione `kms:EncryptionContextKeys` con l'operatore `ForAllValues`e è stata utilizzata da sola in un'istruzione di policy, questo operatore consentirebbe le richieste senza contesto di crittografia. Tuttavia, se la richiesta non avesse un contesto di crittografia, la condizione `kms:EncryptionContext:AppName` avrebbe esito negativo. Per dettagli sull'operatore `ForAllValues`, consulta [Utilizzo di più chiavi e valori](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) nella *Guida per l'utente di IAM*.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/KeyUsers"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "AppName"
      ]
    }
  }
}
```

È inoltre possibile utilizzare questa chiave di condizione per negare l'accesso a una chiave KMS per una determinata operazione. La seguente istruzione di policy della chiave di esempio utilizza un effetto `Deny` per impedire all'entità principale di utilizzare la chiave KMS se il contesto di crittografia nella richiesta include una coppia di contesto di crittografia `Stage=Restricted`. Questa condizione consente una richiesta con altre coppie di contesto di crittografia, incluse le coppie di contesto di crittografia con la chiave `Stage` e altri valori, come `Stage=Test`.

```
{
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Stage": "Restricted"
    }
  }
}
```

### Utilizzo di più coppie di contesto di crittografia
<a name="conditions-kms-encryption-context-many"></a>

È possibile richiedere o vietare più coppie di contesto di crittografia. È inoltre possibile richiedere una delle diverse coppie di contesto di crittografia. Per informazioni dettagliate sulla logica utilizzata per interpretare queste condizioni, consulta [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 di IAM. 

**Nota**  
Le versioni precedenti di questo argomento mostravano dichiarazioni di policy che utilizzavano `ForAnyValue` e `ForAllValues` impostavano gli operatori con la chiave di condizione kms:EncryptionContext: *context-key*. L'utilizzo di un operatore con una [chiave di condizione a valore singolo](#set-operators) può comportare policy che consentono richieste senza contesto di crittografia e coppie di contesto di crittografia non specificate.   
Ad esempio, una condizione di policy con l'effetto `Allow`, l'operatore `ForAllValues` e la chiave di condizione `"kms:EncryptionContext:Department": "IT"` non limita il contesto di crittografia alla coppia "Department=IT". Permette richieste senza contesto di crittografia e richieste con coppie di contesto di crittografia non specificate, come `Stage=Restricted`.  
*Rivedi le tue politiche ed elimina l'operatore set da qualsiasi condizione con kms:EncryptionContext: context-key.* I tentativi di creare o aggiornare una policy con questo formato hanno esito negativo con un'eccezione `OverlyPermissiveCondition`. Per risolvere il problema, è necessario eliminare l'operatore.

Per richiedere più coppie di contesto di crittografia, elenca le coppie nella stessa condizione. La seguente istruzione di policy della chiave di esempio richiede due coppie di contesto di crittografia, `Department=IT` e `Project=Alpha`. Poiché le condizioni hanno chiavi diverse (`kms:EncryptionContext:Department` and `kms:EncryptionContext:Project`), sono implicitamente collegate da un operatore AND. Altre coppie di contesto di crittografia sono consentite, ma non obbligatorie.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Department": "IT",
      "kms:EncryptionContext:Project": "Alpha"
    }
  }
}
```

Per richiedere una coppia di contesto di crittografia OPPURE un'altra coppia, inserire ciascuna chiave di condizione in un'istruzione di policy separata. La seguente policy chiave di esempio richiede coppie `Department=IT` *o* `Project=Alpha`, o entrambe. Altre coppie di contesto di crittografia sono consentite, ma non obbligatorie.

```
{
 "Effect": "Allow",
 "Principal": {
  "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
 },
 "Action": "kms:GenerateDataKey",
 "Resource": "*",
 "Condition": {
  "StringEquals": {
   "kms:EncryptionContext:Department": "IT"
  }
 }
},
{
 "Effect": "Allow",
 "Principal": {
  "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
 },
 "Action": "kms:GenerateDataKey",
 "Resource": "*",
 "Condition": {
  "StringEquals": {
   "kms:EncryptionContext:Project": "Alpha"
  }
 }
}
```

Per richiedere coppie di crittografia particolari ed escludere tutte le altre coppie di contesto di crittografia, utilizza entrambi kms:EncryptionContext: *contesto-chiave* e [`kms:EncryptionContextKeys`](#conditions-kms-encryption-context-keys)nella dichiarazione politica. *La seguente dichiarazione politica chiave utilizza la condizione kms:EncryptionContext: *chiave contestuale* per richiedere un contesto di crittografia con entrambe le coppie. `Department=IT`* `Project=Alpha` Utilizza una chiave di condizione `kms:EncryptionContextKeys` con l'operatore `ForAllValues` per consentire solo le chiavi di contesto di crittografia `Department` e `Project`. 

L'operatore `ForAllValues` limita le chiavi di contesto di crittografia nella richiesta a `Department` e `Project`. Se fosse usato da solo in una condizione, questo operatore di set consentirebbe richieste senza contesto di crittografia, ma in questa configurazione, la *chiave di contesto kms: EncryptionContext*: in questa condizione avrebbe esito negativo.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Department": "IT",
      "kms:EncryptionContext:Project": "Alpha"
    },
    "ForAllValues:StringEquals": {
      "kms:EncryptionContextKeys": [
        "Department",
        "Project"
      ]
    }
  }
}
```

È inoltre possibile vietare più coppie di contesto di crittografia. La seguente istruzione di policy della chiave di esempio utilizza un effetto `Deny` per impedire all'entità principale di utilizzare le chiavi KMS se il contesto di crittografia nella richiesta include una coppia `Stage=Restricted` o `Stage=Production`. 

Valori multipli (`Restricted` e `Production`) per la stessa chiave (`kms:EncryptionContext:Stage`) sono implicitamente collegati da un'OR. Per informazioni dettagliate, consulta [Logica di valutazione per condizioni con più chiavi o valori](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multiple-conditions-eval) nella *Guida per l'utente di IAM*.

```
{
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Stage": [
         "Restricted",
         "Production"
      ] 
    }
  }
}
```

### Distinzione tra maiuscole e minuscole della condizione del contesto
<a name="conditions-kms-encryption-context-case"></a>

Il contesto di crittografia specificato in un'operazione di decrittografia deve essere una corrispondenza esatta, che fa distinzione tra maiuscole e minuscole per il contesto di crittografia specificato nell'operazione di crittografia. Solo l'ordine delle coppie in un contesto di crittografia con più coppie può variare.

Tuttavia, nelle condizioni della policy, la chiave di condizione non fa distinzione tra maiuscole e minuscole. Se il valore della condizione fa distinzione tra minuscole e maiuscole viene determinato dall'[operatore della condizione della policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) che utilizzi, ad esempio `StringEquals` o `StringEqualsIgnoreCase`.

Per questo motivo, la chiave di condizione, che include il prefisso `kms:EncryptionContext:` e la sostituzione *`context-key`*, non fa distinzione tra minuscole e maiuscole. Una policy che utilizza questa condizione non controlla se i caratteri degli elementi della chiave di condizione sono in maiuscolo o minuscolo. Se il valore della condizione fa distinzione tra minuscole e maiuscole, ovvero la sostituzione di *`context-value`*, viene determinato dall'operatore della condizione della policy.

Ad esempio, la seguente istruzione di policy consente l'operazione quando il contesto di crittografia include una chiave `Appname`, senza considerare se i caratteri sono in minuscolo o maiuscolo. La condizione `StringEquals` richiede che `ExampleApp` sia scritto con caratteri maiuscoli come specificato. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:Appname": "ExampleApp"
    }
  }
}
```

Per richiedere una chiave contestuale di crittografia con distinzione tra maiuscole e minuscole, utilizza la condizione di EncryptionContextKeys policy [kms:](#conditions-kms-encryption-context-keys) con un operatore di condizione con distinzione tra maiuscole e minuscole, ad esempio. `StringEquals` In questa condizione della policy, poiché la chiave di contesto di crittografia è il valore della condizione della policy; la distinzione tra minuscole e maiuscole è determinata dall'operatore della condizione. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "AppName"
    }
  }
}
```

Per richiedere una valutazione con distinzione tra maiuscole e minuscole sia della chiave che del valore del contesto di crittografia, utilizzate insieme le condizioni della politica `kms:EncryptionContextKeys` and kms:EncryptionContext: *chiave contestuale* nella stessa dichiarazione di policy. L'operatore condizione con distinzione tra maiuscole e minuscole (come `StringEquals`) si applica sempre al valore della condizione. La chiave di contesto di crittografia (ad esempio `AppName`) è il valore della condizione `kms:EncryptionContextKeys`. *Il valore del contesto di crittografia (ad esempio`ExampleApp`) è il valore della condizione: context-key. kms: EncryptionContext*

Ad esempio, nella seguente istruzione della policy della chiave di esempio, in quanto l'operatore `StringEquals` fa distinzione tra minuscole e maiuscole, sia la chiave del contesto di crittografia sia il valore del contesto di crittografia fanno distinzione tra minuscole e maiuscole.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "AppName"
    },
    "StringEquals": {
      "kms:EncryptionContext:AppName": "ExampleApp"
    }
  }
}
```

### Utilizzo di variabili in una condizione del contesto di crittografia
<a name="conditions-kms-encryption-context-variables"></a>

La chiave e il valore in una coppia del contesto di crittografia devono essere stringhe letterali semplici. Non possono essere integer o oggetti o un qualsiasi tipo non completamente risolto. Se si utilizza un tipo diverso, ad esempio un numero intero o un float, lo AWS KMS interpreta come una stringa letterale.

```
"encryptionContext": {
    "department": "10103.0"
}
```

Tuttavia, il valore della chiave di condizione `kms:EncryptionContext:context-key` può essere una [variabile della policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html). Queste variabili di policy vengono risolte in fase di esecuzione (runtime) in base ai valori nella richiesta. Ad esempio, `aws:CurrentTime ` restituisce l'ora della richiesta e `aws:username` restituisce il nome descrittivo dell'intermediario.

Puoi utilizzare queste variabili di policy per creare un'istruzione di policy con una condizione che richiede informazioni molto specifiche in un contesto di crittografia, ad esempio il nome utente dell'intermediario. Dal momento che contiene una variabile, puoi utilizzare la stessa istruzione di policy per tutti gli utenti che possono assumere il ruolo. Non è necessario scrivere un'istruzione di policy separata per ogni utente.

Considera una situazione in cui desideri che tutti gli utenti che possono assumere un ruolo utilizzino la stessa chiave KMS per crittografare e decrittare i dati. Tuttavia, vuoi consentire loro di decrittografare solo i dati che hanno crittografato. Inizia richiedendo che ogni richiesta AWS KMS includa un contesto di crittografia in cui la chiave è `user` e il valore è il nome AWS utente del chiamante, come il seguente.

```
"encryptionContext": {
    "user": "bob"
}
```

Quindi, per applicare questo requisito, puoi utilizzare un'istruzione di policy come quella nell'esempio seguente. Questa istruzione di policy concede al ruolo `TestTeam` l'autorizzazione per crittografare e decrittare i dati con la chiave KMS. Tuttavia, l'autorizzazione è valida solo quando il contesto di crittografia nella richiesta include una coppia `"user": "<username>"`. Per rappresentare il nome utente, la condizione utilizza la variabile della policy [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infotouse](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infotouse).

Quando la richiesta viene valutata, il nome utente dell'intermediario sostituisce la variabile nella condizione. Pertanto, la condizione richiede un contesto di crittografia `"user": "bob"` per "bob" e `"user": "alice"` per "alice".

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/TestTeam"
  },
  "Action": [
    "kms:Decrypt",
    "kms:Encrypt"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:EncryptionContext:user": "${aws:username}"
    }
  }
}
```

Puoi utilizzare una variabile di policy IAM solo nel valore della coppia di chiavi di condizione `kms:EncryptionContext:context-key`. Non è possibile utilizzare una variabile nella chiave.

Puoi anche utilizzare le [chiavi di contesto specifiche del provider](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_user-id.html) nelle variabili. Queste chiavi di contesto identificano in modo univoco gli utenti che hanno effettuato l'accesso AWS utilizzando la federazione delle identità Web. 

Come tutte le variabili, queste possono essere utilizzate solo nella condizione `kms:EncryptionContext:context-key` della policy, non nel contesto di crittografia effettivo. Inoltre, possono essere utilizzate solo nel valore della condizione, non nella chiave.

Ad esempio, la seguente istruzione della policy delle chiavi è simile a quella precedente. Tuttavia, la condizione richiede un contesto di crittografia in cui la chiave è `sub` e il valore identifica in modo univoco un utente connesso a un pool di utenti Amazon Cognito. Per dettagli sull'identificazione di utenti e ruoli in Amazon Cognito, consulta [Ruoli IAM](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html) nella [Guida per sviluppatori di Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/).

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/TestTeam"
  },
  "Action": [
    "kms:Decrypt",
    "kms:Encrypt"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
       "kms:EncryptionContext:sub": "${cognito-identity.amazonaws.com:sub}"
    }
  }
}
```

**Consulta anche**
+ [kms:EncryptionContextKeys](#conditions-kms-encryption-context-keys)
+ [kms:GrantConstraintType](#conditions-kms-grant-constraint-type)

## kms:EncryptionContextKeys
<a name="conditions-kms-encryption-context-keys"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:EncryptionContextKeys`  |  Stringa (elenco)  | Multivalore |  `CreateGrant` `Decrypt` `Encrypt` `GenerateDataKey` `GenerateDataKeyPair` `GenerateDataKeyPairWithoutPlaintext` `GenerateDataKeyWithoutPlaintext` `ReEncrypt` `RetireGrant`  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare la chiave di condizione `kms:EncryptionContextKeys` per controllare l'accesso a una [chiave KMS di crittografia simmetrica](symm-asymm-choose-key-spec.md#symmetric-cmks) in base al [contesto di crittografia](encrypt_context.md) in una richiesta per un'operazione di crittografia. Utilizza questa chiave di condizione per valutare solo la chiave in ciascuna coppia del contesto di crittografia. Per valutare sia la chiave sia il valore nel contesto di crittografia, usa la chiave di condizione `kms:EncryptionContext:context-key`.

Non è possibile specificare un contesto di crittografia in un'operazione di crittografia con una [chiave KMS asimmetrica](symmetric-asymmetric.md) o una [chiave KMS HMAC](hmac.md). Gli algoritmi asimmetrici e gli algoritmi MAC non supportano un contesto di crittografia.

**Nota**  
I valori delle chiavi condizionali, inclusa una chiave di contesto di crittografia, devono essere conformi ai caratteri e alle regole di codifica delle politiche AWS KMS chiave. Potrebbe non essere possibile utilizzare questa chiave di condizione per esprimere tutte le chiavi valide nel contesto di crittografia. Per maggiori informazioni sulle regole delineate nel documento delle policy delle chiavi, consulta la sezione [Formato della policy della chiave](key-policy-overview.md#key-policy-format). Per informazioni dettagliate sulle regole delineate nel documento delle policy IAM, consulta la sezione [Requisiti del nome IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-names) nella *Guida per l'utente di IAM*.

Si tratta di una [chiave di condizione multivalore](#set-operators). È possibile specificare più coppie di contesto di crittografia in ogni richiesta API. `kms:EncryptionContextKeys` confronta le chiavi del contesto di crittografia nella richiesta con il set di chiavi del contesto di crittografia nella policy. Per determinare il modo in cui questi set vengono confrontati, devi fornire un operatore `ForAnyValue` o `ForAllValues` nella condizione di policy. Per dettagli sugli operatori, consulta [Utilizzo di più chiavi e valori](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) nella Guida per l'utente di IAM.
+ `ForAnyValue`: almeno una chiave di contesto di crittografia nella richiesta deve corrispondere a una chiave di contesto di crittografia nella condizione della policy. Sono consentite altre chiavi di contesto di crittografia. Se la richiesta non dispone di contesto di crittografia, la condizione non viene soddisfatta.
+ `ForAllValues`: ogni chiave di contesto di crittografia nella richiesta deve corrispondere a una chiave di contesto di crittografia nella condizione della policy. Questo operatore limita le chiavi di contesto di crittografia a quelle nella condizione della policy. Non richiede alcuna chiave di contesto di crittografia, ma vieta le chiavi di contesto di crittografia non specificate.

La seguente istruzione di policy della chiave di esempio utilizza la chiave di condizione `kms:EncryptionContextKeys`con l'operatore `ForAnyValue`. Questa istruzione di policy utilizza una chiave KMS per le operazioni specificate, ma solo quando almeno una delle coppie del contesto di crittografia nella richiesta include la chiave `AppName`, indipendentemente dal suo valore. 

Ad esempio, questa istruzione di policy chiave consente una richiesta `GenerateDataKey` con due coppie di contesto di crittografia, `AppName=Helper` e `Project=Alpha`, perché la prima coppia di contesto di crittografia soddisfa la condizione. Una richiesta con solo `Project=Alpha` o senza contesto di crittografia avrebbe esito negativo.

Poiché l'operazione di [StringEquals](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)condizione fa distinzione tra maiuscole e minuscole, questa dichiarazione di policy richiede l'ortografia e la minuscola della chiave di contesto di crittografia. Tuttavia, è possibile utilizzare un operatore della condizione che ignora se la chiave ha caratteri in minuscolo o maiuscolo, ad esempio `StringEqualsIgnoreCase`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": [
    "kms:Encrypt",
    "kms:GenerateDataKey*"
  ],
  "Resource": "*",
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "AppName"
    }
  }
}
```

Inoltre, è possibile utilizzare la chiave di condizione `kms:EncryptionContextKeys` per richiedere un qualsiasi contesto di crittografia nelle operazioni di crittografia che utilizzano la chiave KMS. 

La seguente istruzione di policy della chiave di esempio utilizza la chiave di condizione `kms:EncryptionContextKeys` con [Null condition operator](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) per consentire l'accesso alla chiave KMS solo quando il contesto di crittografia nella richiesta dell'API è diverso da null. Questa condizione non verifica le chiavi o i valori del contesto di crittografia. Verifica solo che il contesto di crittografia esista. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": [
    "kms:Encrypt",
    "kms:GenerateDataKey*"
  ],
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:EncryptionContextKeys": false
    }
  }
}
```

**Consulta anche**
+ [*kms:: chiave contestuale EncryptionContext*](#conditions-kms-encryption-context)
+ [kms:GrantConstraintType](#conditions-kms-grant-constraint-type)

## kms:ExpirationModel
<a name="conditions-kms-expiration-model"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:ExpirationModel`  |  Stringa  | A valore singolo |  `ImportKeyMaterial`  |  Policy delle chiavi e policy IAM  | 

Il tasto `kms:ExpirationModel` condition controlla l'accesso all'[ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)operazione in base al valore del [ExpirationModel](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ExpirationModel)parametro nella richiesta. 

`ExpirationModel` è un parametro opzionale che determina se il materiale della chiave importato scade. I valori validi sono `KEY_MATERIAL_EXPIRES` e `KEY_MATERIAL_DOES_NOT_EXPIRE`. Il valore predefinito è `KEY_MATERIAL_EXPIRES`. 

La data e l'ora di scadenza sono determinate dal valore del [ValidTo](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ValidTo)parametro. Il parametro `ValidTo` è obbligatorio a meno che il valore del parametro `ExpirationModel` non sia `KEY_MATERIAL_DOES_NOT_EXPIRE`. Puoi anche utilizzare la chiave [kms: ValidTo](#conditions-kms-valid-to) condition per richiedere una data di scadenza particolare come condizione per l'accesso.

La seguente istruzione di policy di esempio utilizza la chiave di condizione `kms:ExpirationModel` per consentire agli utenti di importare materiale della chiave in una chiave KMS solo quando la richiesta include il parametro `ExpirationModel` e il suo valore è `KEY_MATERIAL_DOES_NOT_EXPIRE`. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:ImportKeyMaterial",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ExpirationModel": "KEY_MATERIAL_DOES_NOT_EXPIRE"
    }
  }
}
```

È inoltre possibile utilizzare la chiave di condizione `kms:ExpirationModel` per consentire agli utenti di importare il materiale chiave solo quando il materiale della chiave scade. La seguente istruzione di policy di esempio utilizza la chiave di condizione `kms:ExpirationModel` con [Null condition operator](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Null) per consentire agli utenti di importare materiale chiave solo quando la richiesta non include il parametro `ExpirationModel`. Il valore predefinito per ExpirationModel è`KEY_MATERIAL_EXPIRES`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:ImportKeyMaterial",
  "Resource": "*",
  "Condition": {
    "Null": {
      "kms:ExpirationModel": true
    }
  }
}
```

**Consulta anche**
+ [kms:ValidTo](#conditions-kms-valid-to)
+ [kms:WrappingAlgorithm](#conditions-kms-wrapping-algorithm)
+ [kms:WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## kms:GrantConstraintType
<a name="conditions-kms-grant-constraint-type"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:GrantConstraintType`  |  Stringa  | A valore singolo |  `CreateGrant` `RetireGrant`  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare questa chiave di condizione per controllare l'accesso all'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operazione in base al tipo di [vincolo di concessione](create-grant-overview.md#grant-constraints) contenuto nella richiesta. 

Quando crei una concessione, opzionalmente è possibile specificare un vincolo di concessione per consentire le operazioni che la concessione consente solo quando è presente un determinato [contesto di crittografia](encrypt_context.md). Il vincolo di concessione può essere di due tipi: `EncryptionContextEquals` o `EncryptionContextSubset`. È possibile utilizzare questa chiave di condizione per controllare che la richiesta contenga uno dei due tipi.

**Importante**  
Non includere informazioni riservate o sensibili in questo campo. Questo campo può essere visualizzato in testo semplice nei CloudTrail log e in altri output.

La seguente istruzione di policy delle chiavi di esempio utilizza la chiave di condizione `kms:GrantConstraintType` per consentire agli utenti di creare concessioni solo quando la richiesta include un vincolo di concessione `EncryptionContextEquals`. L'esempio illustra un'istruzione di policy in una policy delle chiavi.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:GrantConstraintType": "EncryptionContextEquals"
    }
  }
}
```

**Consulta anche**
+ [*kms:: chiave contestuale EncryptionContext*](#conditions-kms-encryption-context)
+ [kms:EncryptionContextKeys](#conditions-kms-encryption-context-keys)
+ [kms:GrantIsForAWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [kms:GrantOperations](#conditions-kms-grant-operations)
+ [kms:GranteePrincipal](#conditions-kms-grantee-principal)
+ [kms:RetiringPrincipal](#conditions-kms-retiring-principal)

## kms:GrantIsForAWSResource
<a name="conditions-kms-grant-is-for-aws-resource"></a>


| AWS KMS tasti di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:GrantIsForAWSResource`  |  Booleano  | A valore singolo |  `CreateGrant` `ListGrants` `RevokeGrant`  |  Policy delle chiavi e policy IAM  | 

Consente o nega l'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)autorizzazione per [RevokeGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)le operazioni solo quando un [AWS servizio integrato con AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration) richiama l'operazione per conto dell'utente. [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html) Questa condizione di policy non consente all'utente di chiamare direttamente queste operazioni di concessione.

La seguente istruzione di policy della chiave di esempio utilizza la chiave di condizione `kms:GrantIsForAWSResource`. Consente AWS ai servizi integrati con AWS KMS, come Amazon EBS, di creare sovvenzioni su questa chiave KMS per conto del committente specificato. 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:GrantIsForAWSResource": true
    }
  }
}
```

**Consulta anche**
+ [kms:GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [kms:GrantOperations](#conditions-kms-grant-operations)
+ [kms:GranteePrincipal](#conditions-kms-grantee-principal)
+ [kms:RetiringPrincipal](#conditions-kms-retiring-principal)

## kms:GrantOperations
<a name="conditions-kms-grant-operations"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:GrantOperations`  |  Stringa  | Multivalore |  `CreateGrant`  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare questa chiave di condizione per controllare l'accesso all'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operazione in base alle [operazioni di concessione](grants.md#terms-grant-operations) contenute nella richiesta. Ad esempio, è possibile consentire agli utenti di creare concessioni che delegano l'autorizzazione di crittografare ma non decrittografare. Per ulteriori informazioni sulle autorizzazioni, consulta [Utilizzo di concessioni](grants.md)

Questa è una [chiave di condizione multivalore](#set-operators). `kms:GrantOperations` confronta l'insieme delle operazioni di concessione nella richiesta `CreateGrant` all'insieme di operazioni di concessione nella policy. Per determinare il modo in cui questi set vengono confrontati, devi fornire un operatore `ForAnyValue` o `ForAllValues` nella condizione di policy. Per dettagli sugli operatori, consulta [Utilizzo di più chiavi e valori](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) nella Guida per l'utente di IAM.
+ `ForAnyValue`: almeno un'operazione di concessione nella richiesta deve corrispondere a una delle operazioni di concessione nella condizione di policy. Sono ammesse altre operazioni di concessione.
+ ForAllValues: Ogni operazione di concessione nella richiesta deve corrispondere a un'operazione di concessione nella condizione della politica. Questo operatore limita le operazioni di concessione a quelle specificate nella condizione della policy. Non richiede alcuna operazione di concessione, ma vieta le operazioni di concessione non specificate.

  ForAllValues restituisce true anche quando non ci sono operazioni di concessione nella richiesta, ma `CreateGrant` non le consente. Se il parametro `Operations` è mancante o ha un valore nullo, la richiesta `CreateGrant` ha esito negativo.

La seguente istruzione di policy delle chiavi di esempio utilizza la chiave di condizione `kms:GrantOperations` per creare concessioni solo quando le operazioni di concessione sono `Encrypt`, `ReEncryptTo` o entrambi. Se la concessione include altre operazioni, la richiesta `CreateGrant` ha esito negativo.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "ForAllValues:StringEquals": {
      "kms:GrantOperations": [
        "Encrypt",
        "ReEncryptTo"
      ]
    }
  }
}
```

Se si modifica l'operatore nella condizione di policy in `ForAnyValue`, l'istruzione di policy richiederebbe che almeno una delle operazioni di concessione nella concessione sia `Encrypt` o `ReEncryptTo`, ma consentirebbe altre operazioni di concessione, come `Decrypt` o `ReEncryptFrom`.

**Consulta anche**
+ [kms:GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [kms:GrantIsForAWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [kms:GranteePrincipal](#conditions-kms-grantee-principal)
+ [kms:RetiringPrincipal](#conditions-kms-retiring-principal)

## kms:GranteePrincipal
<a name="conditions-kms-grantee-principal"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:GranteePrincipal`  |  Stringa  | A valore singolo |  `CreateGrant`  |  Policy IAM e della chiave  | 

È possibile utilizzare questa chiave di condizione per controllare l'accesso all'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operazione in base al valore del [GranteePrincipal](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-GranteePrincipal)parametro nella richiesta. Ad esempio, è possibile creare autorizzazioni per utilizzare una chiave KMS solo quando il principale assegnatario nella richiesta `CreateGrant` corrisponde al principale specificato nell'istruzione della condizione.

Per specificare il principale beneficiario, utilizza l'Amazon Resource Name (ARN) di un principale. AWS I principali validi includono utenti IAM Account AWS, ruoli IAM, utenti federati e utenti assunti. *Per informazioni sulla sintassi ARN per un principale, consulta [IAM ARNs nella IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) User Guide.*

La seguente istruzione di policy delle chiavi di esempio utilizza la chiave di condizione `kms:GranteePrincipal` per creare autorizzazioni per una chiave KMS solo quando il principale assegnatario nella concessione è `LimitedAdminRole`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:GranteePrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole"
    }
  }
}
```

**Consulta anche**
+ [kms:GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [kms:GrantIsForAWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [kms:GrantOperations](#conditions-kms-grant-operations)
+ [kms:RetiringPrincipal](#conditions-kms-retiring-principal)

## kms:KeyAgreementAlgorithm
<a name="conditions-kms-key-agreement-algorithm"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:KeyAgreementAlgorithm`  |  Stringa  | A valore singolo | `DeriveSharedSecret` |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare il tasto `kms:KeyAgreementAlgorithm` condition per controllare l'accesso all'[DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)operazione in base al valore del `KeyAgreementAlgorithm` parametro nella richiesta. L'unico valore valido per `KeyAgreementAlgorithm` è`ECDH`.

Ad esempio, la seguente dichiarazione di politica chiave utilizza la chiave `kms:KeyAgreementAlgorithm` condition per negare qualsiasi accesso a DeriveSharedSecret meno che non lo `KeyAgreementAlgorithm` sia`ECDH`.

```
{
       "Effect": "Deny",
       "Principal": {
         "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
       },
       "Action": "kms:DeriveSharedSecret",
       "Resource": "*",
       "Condition": {
            "StringNotEquals": {
               "kms:KeyAgreementAlgorithm": "ECDH"
         }
       }
}
```

**Consulta anche**
+ [kms:KeyUsage](#conditions-kms-key-usage)

## kms:KeyOrigin
<a name="conditions-kms-key-origin"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:KeyOrigin`  |  Stringa  | A valore singolo |  `CreateKey` Operazioni delle risorse delle chiavi KMS  |  Policy IAM Policy delle chiavi e policy IAM  | 

La chiave di condizione `kms:KeyOrigin` controlla l'accesso alle operazioni in base al valore della proprietà `Origin` della chiave KMS creata o utilizzata nell'operazione. Funziona come una condizione di risorsa o una condizione di richiesta.

È possibile utilizzare questa chiave di condizione per controllare l'accesso all'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operazione in base al valore del parametro [Origin](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-Origin) nella richiesta. I valori validi per `Origin` sono `AWS_KMS``AWS_CLOUDHSM`,`EXTERNAL_KEY_STORE`, e`EXTERNAL`. 

Ad esempio, puoi creare una chiave KMS solo quando il materiale chiave viene generato in AWS KMS (`AWS_KMS`), solo quando il materiale chiave viene generato in un AWS CloudHSM cluster associato a un key store [personalizzato di CloudHSM](key-store-overview.md#custom-key-store-overview) `AWS_CLOUDHSM` (), solo quando il materiale chiave viene generato in [un key store esterno](key-store-overview.md#custom-key-store-overview) `EXTERNAL_KEY_STORE` () o solo quando [il materiale chiave viene](importing-keys.md) importato da una fonte esterna (). `EXTERNAL` 

L'esempio seguente di dichiarazione sulla politica chiave utilizza la chiave `kms:KeyOrigin` condition per creare una chiave KMS solo quando AWS KMS crea il materiale chiave.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
      },
      "Action": "kms:CreateKey",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:KeyOrigin": "AWS_KMS"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
      },
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:GenerateDataKeyPair",
        "kms:GenerateDataKeyPairWithoutPlaintext",
        "kms:ReEncrypt*"
      ],
      "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
      "Condition": {
        "StringEquals": {
          "kms:KeyOrigin": "AWS_CLOUDHSM"
        }
      }
    }
  ]
}
```

------

La chiave di condizione `kms:KeyOrigin` può essere utilizzata anche per controllare l'accesso alle operazioni che utilizzano o gestiscono una chiave KMS in base alla proprietà `Origin` della chiave KMS utilizzata per l'operazione. L'operazione deve essere un'*operazione delle risorse delle chiavi KMS*, ossia un'operazione autorizzata per una determinata chiave KMS. Per identificare le operazioni delle risorse delle chiavi KMS, nella [tabella Azioni e risorse](kms-api-permissions-reference.md#kms-api-permissions-reference-table), cerca un valore della `KMS key` nella colonna `Resources` per l'operazione.

Ad esempio, la policy IAM seguente consente ai principali di eseguire le operazioni specificate sulle risorse chiave KMS, ma solo con le chiavi KMS nell'account che sono state create in un archivio chiavi personalizzato.

```
{
  "Effect": "Allow",  
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:GenerateDataKey",
    "kms:GenerateDataKeyWithoutPlaintext",
    "kms:GenerateDataKeyPair",
    "kms:GenerateDataKeyPairWithoutPlaintext",
    "kms:ReEncrypt*"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:KeyOrigin": "AWS_CLOUDHSM"
    }
  }
}
```

**Consulta anche**
+ [kms:BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [kms:KeySpec](#conditions-kms-key-spec)
+ [kms:KeyUsage](#conditions-kms-key-usage)

## kms:KeySpec
<a name="conditions-kms-key-spec"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:KeySpec`  |  Stringa  | A valore singolo |  `CreateKey` Operazioni delle risorse delle chiavi KMS |  Policy IAM Policy delle chiavi e policy IAM  | 

La chiave di condizione `kms:KeySpec` controlla l'accesso alle operazioni in base al valore della proprietà `KeySpec` della chiave KMS creata o utilizzata nell'operazione. 

Puoi utilizzare questa chiave di condizione in una policy IAM per controllare l'accesso all'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operazione in base al valore del [KeySpec](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-KeySpec)parametro in una `CreateKey` richiesta. Ad esempio, puoi utilizzare questa condizione per permettere agli utenti di creare solo chiavi KMS di crittografia simmetrica o solo chiavi KMS HMAC.

La seguente istruzione di policy IAM di esempio utilizza la chiave di condizione `kms:KeySpec` per permettere ai principali di creare solo chiavi KMS asimmetriche RSA. L'autorizzazione è valida solo quando `KeySpec` nella richiesta inizia con `RSA_`.

```
{
  "Effect": "Allow",
  "Action": "kms:CreateKey",
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:KeySpec": "RSA_*"
    }
  }
}
```

La chiave di condizione `kms:KeySpec` può essere utilizzata anche per controllare l'accesso alle operazioni che utilizzano o gestiscono una chiave KMS in base alla proprietà `KeySpec` della chiave KMS utilizzata per l'operazione. L'operazione deve essere un'*operazione delle risorse delle chiavi KMS*, ossia un'operazione autorizzata per una determinata chiave KMS. Per identificare le operazioni delle risorse delle chiavi KMS, nella [tabella Azioni e risorse](kms-api-permissions-reference.md#kms-api-permissions-reference-table), cerca un valore della `KMS key` nella colonna `Resources` per l'operazione. 

Ad esempio, la policy IAM seguente permette ai principali di eseguire le operazioni specificate sulle risorse chiave KMS, ma solo con le chiavi KMS di crittografia simmetrica presenti nell'account. 

```
{
  "Effect": "Allow",
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:DescribeKey"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:KeySpec": "SYMMETRIC_DEFAULT"
    }
  }
}
```

**Consulta anche**
+ [kms:BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [kms: (obsoletoCustomerMasterKeySpec )](#conditions-kms-key-spec-replaced)
+ [kms:DataKeyPairSpec](#conditions-kms-data-key-spec)
+ [kms:KeyOrigin](#conditions-kms-key-origin)
+ [kms:KeyUsage](#conditions-kms-key-usage)

## kms:KeyUsage
<a name="conditions-kms-key-usage"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:KeyUsage`  |  Stringa  | A valore singolo |  `CreateKey` Operazioni delle risorse delle chiavi KMS  |  Policy IAM Policy delle chiavi e policy IAM  | 

La chiave di condizione `kms:KeyUsage` controlla l'accesso alle operazioni in base al valore della proprietà `KeyUsage` della chiave KMS creata o utilizzata nell'operazione. 

È possibile utilizzare questa chiave di condizione per controllare l'accesso all'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operazione in base al valore del [KeyUsage](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html#KMS-CreateKey-request-KeyUsage)parametro nella richiesta. I valori validi per `KeyUsage` sono `ENCRYPT_DECRYPT``SIGN_VERIFY`,`GENERATE_VERIFY_MAC`, e`KEY_AGREEMENT`.

Ad esempio, puoi creare una chiave KMS solo quando `KeyUsage` è `ENCRYPT_DECRYPT` o negare l'autorizzazione a un utente quando `KeyUsage` è `SIGN_VERIFY`. 

La seguente istruzione di policy IAM di esempio utilizza la chiave di condizione `kms:KeyUsage` per creare una chiave KMS solo quando `KeyUsage` è `ENCRYPT_DECRYPT`.

```
{
  "Effect": "Allow",  
  "Action": "kms:CreateKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:KeyUsage": "ENCRYPT_DECRYPT"
    }
  }
}
```

La chiave di condizione `kms:KeyUsage` può essere utilizzata anche per controllare l'accesso alle operazioni che utilizzano o gestiscono una chiave KMS in base alla proprietà `KeyUsage` della chiave KMS nell'operazione. L'operazione deve essere un'*operazione delle risorse delle chiavi KMS*, ossia un'operazione autorizzata per una determinata chiave KMS. Per identificare le operazioni delle risorse delle chiavi KMS, nella [tabella Azioni e risorse](kms-api-permissions-reference.md#kms-api-permissions-reference-table), cerca un valore della `KMS key` nella colonna `Resources` per l'operazione.

Ad esempio, la policy IAM seguente consente ai principali di eseguire le operazioni specificate sulle risorse chiave KMS, ma solo con le chiavi KMS nell'account che vengono utilizzate per la firma e la verifica.

```
{
  "Effect": "Allow",
  "Action": [
    "kms:CreateGrant",
    "kms:DescribeKey",
    "kms:GetPublicKey",
    "kms:ScheduleKeyDeletion"
  ],
  "Resource": "arn:aws:kms:us-west-2:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:KeyUsage": "SIGN_VERIFY"
    }
  }
}
```

**Consulta anche**
+ [kms:BypassPolicyLockoutSafetyCheck](#conditions-kms-bypass-policy-lockout-safety-check)
+ [kms: CustomerMasterKeyUsage (obsoleto)](#conditions-kms-key-usage-replaced)
+ [kms:KeyOrigin](#conditions-kms-key-origin)
+ [kms:KeySpec](#conditions-kms-key-spec)

## kms:MacAlgorithm
<a name="conditions-kms-mac-algorithm"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:MacAlgorithm`  |  Stringa  | A valore singolo | `GenerateMac``VerifyMac` |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare il tasto `kms:MacAlgorithm` condition per controllare l'accesso alle [VerifyMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html)operazioni [GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)and in base al valore del `MacAlgorithm` parametro nella richiesta. 

La seguente policy della chiave di esempio permette agli utenti che possono assumere il ruolo `testers` di utilizzare la chiave KMS HMAC per generare e verificare i tag HMAC solo quando l'algoritmo MAC nella richiesta è `HMAC_SHA_384` o `HMAC_SHA_512`. Questa policy utilizza due istruzioni della policy separate, ciascuna con una propria condizione. Se si specificano più algoritmi MAC in una singola istruzione di condizione, la condizione richiede entrambi gli algoritmi anziché l'uno o l'altro.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/testers"
      },
      "Action": [
        "kms:GenerateMac",
        "kms:VerifyMac"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:MacAlgorithm": "HMAC_SHA_384"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/testers"
      },
      "Action": [
        "kms:GenerateMac",
        "kms:VerifyMac"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:MacAlgorithm": "HMAC_SHA_512"
        }
      }
    }
  ]
}
```

------

**Consulta anche**
+ [kms:EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [kms:SigningAlgorithm](#conditions-kms-signing-algorithm)

## kms:MessageType
<a name="conditions-kms-message-type"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:MessageType`  |  Stringa  | A valore singolo |  `Sign` `Verify`  | Policy delle chiavi e policy IAM | 

La chiave di condizione `kms:MessageType` controlla l'accesso alle operazioni [Sign](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html) e [Verify](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html) in base al valore del parametro `MessageType` nella richiesta. I valori validi di `MessageType` sono `RAW` e `DIGEST`. 

Ad esempio, la seguente istruzione di policy delle chiavi utilizza la chiave di condizione `kms:MessageType` per utilizzare una chiave KMS asimmetrica per firmare un messaggio, ma non un digest di messaggi.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:Sign",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:MessageType": "RAW"
    }
  }
}
```

**Consulta anche**
+ [kms:SigningAlgorithm](#conditions-kms-signing-algorithm)

## kms:MultiRegion
<a name="conditions-kms-multiregion"></a>


| AWS KMS tasti di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:MultiRegion`  |  Booleano  | A valore singolo |  `CreateKey` Operazioni delle risorse delle chiavi KMS  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare questa chiave di condizione per consentire operazioni solo su chiavi di regione singola o solo su [chiavi multiregione](multi-region-keys-overview.md). Il tasto `kms:MultiRegion` condition controlla l'accesso alle AWS KMS operazioni sulle chiavi KMS e all'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operazione in base al valore della `MultiRegion` proprietà della chiave KMS. I valori validi sono `true` (multiregione) e `false` (singola Regione). Tutte le chiavi KMS hanno una proprietà `MultiRegion`.

Ad esempio, la seguente istruzione di policy IAM usa la chiave di condizione `kms:MultiRegion` per consentire ai principali di creare solo chiavi a singola Regione. 

```
{
  "Effect": "Allow",
  "Action": "kms:CreateKey",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:MultiRegion": false
    }
  }
}
```

## kms:MultiRegionKeyType
<a name="conditions-kms-multiregion-key-type"></a>


| AWS KMS tasti di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:MultiRegionKeyType`  |  Stringa  | A valore singolo |  `CreateKey` Operazioni delle risorse delle chiavi KMS  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare questa chiave di condizione per consentire operazioni solo su [chiavi multiregione primarie](multi-region-keys-overview.md#mrk-primary-key) o solo su [chiavi multiregione di replica](multi-region-keys-overview.md#mrk-replica-key). Il tasto `kms:MultiRegionKeyType` condition controlla l'accesso alle AWS KMS operazioni sulle chiavi KMS e l'[CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)operazione in base alla `MultiRegionKeyType` proprietà della chiave KMS. I valori validi sono `PRIMARY` e `REPLICA`. Solo le chiavi multiregione hanno una proprietà `MultiRegionKeyType`.

In genere si utilizza la chiave di condizione `kms:MultiRegionKeyType` in una policy di IAM per controllare l'accesso a più chiavi KMS. Tuttavia, poiché una determinata chiave multiregione può diventare primaria o di replica, è possibile utilizzare questa condizione in una policy chiave per consentire un'operazione solo quando la chiave multiregione specifica è una chiave primaria o di replica.

Ad esempio, la seguente istruzione di policy IAM utilizza la chiave di condizione `kms:MultiRegionKeyType` per consentire ai principali di pianificare e annullare l'eliminazione delle chiavi solo su chiavi di replica multiregione nell' Account AWS specificato. 

```
{
  "Effect": "Allow",
  "Action": [
    "kms:ScheduleKeyDeletion",
    "kms:CancelKeyDeletion"
  ],
  "Resource": "arn:aws:kms:*:111122223333:key/*",
  "Condition": {
    "StringEquals": {
      "kms:MultiRegionKeyType": "REPLICA"
    }
  }
}
```

Per consentire o negare l'accesso a tutte le chiavi multiregione, è possibile utilizzare entrambi i valori o un valore null con `kms:MultiRegionKeyType`. Tuttavia, la chiave [kms: MultiRegion](#conditions-kms-multiregion) condition è consigliata a tale scopo.

## kms:PrimaryRegion
<a name="conditions-kms-primary-region"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:PrimaryRegion`  |  Stringa (elenco)  | A valore singolo |  `UpdatePrimaryRegion`  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare questa chiave di condizione per limitare le regioni di destinazione in un'[UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)operazione. Queste sono quelle Regioni AWS che possono ospitare le tue chiavi primarie multiregionali. 

Il tasto `kms:PrimaryRegion` condition controlla l'accesso all'[UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)operazione in base al valore del `PrimaryRegion` parametro. Il `PrimaryRegion` parametro specifica la [chiave Regione AWS di replica multiregionale](multi-region-keys-overview.md#mrk-replica-key) che viene promossa a primaria. Il valore della condizione è costituito da uno o più Regione AWS nomi, ad esempio or, `us-east-1` o da schemi di denominazione delle regioni`ap-southeast-2`, ad esempio `eu-*`

Ad esempio, la seguente istruzione di policy chiave utilizza la chiave di condizione `kms:PrimaryRegion` per consentire ai principali di aggiornare la Regione primaria di una chiave multiregione in una delle quattro Regioni specificate.

```
{
  "Effect": "Allow",
  "Action": "kms:UpdatePrimaryRegion",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/Developer"
  },
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:PrimaryRegion": [ 
         "us-east-1",
         "us-west-2",
         "eu-west-3",
         "ap-southeast-2"
      ]
    }
  }
}
```

## kms:ReEncryptOnSameKey
<a name="conditions-kms-reencrypt-on-same-key"></a>


| AWS KMS tasti di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:ReEncryptOnSameKey`  |  Booleano  | A valore singolo |  `ReEncrypt`  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare questa chiave di condizione per controllare l'accesso all'[ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)operazione a seconda che la richiesta specifichi una chiave KMS di destinazione che sia la stessa utilizzata per la crittografia originale. 

Ad esempio, la seguente istruzione di policy delle chiavi utilizza la chiave di condizione `kms:ReEncryptOnSameKey` per ricrittografare solo quando la chiave KMS di destinazione corrisponde alla chiave utilizzata per la crittografia originale.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:ReEncrypt*",
  "Resource": "*",
  "Condition": {
    "Bool": {
      "kms:ReEncryptOnSameKey": true
    }
  }
}
```

## kms:RequestAlias
<a name="conditions-kms-request-alias"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:RequestAlias`  |  Stringa (elenco)  | A valore singolo |  [Operazioni di crittografia](kms-cryptography.md#cryptographic-operations) [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) [GetPublicKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetPublicKey.html)  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare questa chiave di condizione per consentire un'operazione solo quando la richiesta utilizza un determinato alias per identificare la chiave KMS. La chiave di condizione `kms:RequestAlias` controlla l'accesso a una chiave KMS utilizzata in un'operazione di crittografia, `GetPublicKey` oppure una `DescribeKey` basata sull'[alias](kms-alias.md) che identifichi la chiave KMS nella richiesta. (Questa condizione politica non ha alcun effetto sull'[GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)operazione perché l'operazione non utilizza una chiave o un alias KMS.) 

Questa condizione supporta il [controllo degli accessi basato sugli attributi](abac.md) (ABAC) in AWS KMS, che consente di controllare l'accesso alle chiavi KMS in base ai tag e agli alias di una chiave KMS. È possibile utilizzare tag e alias per consentire o negare l'accesso a una chiave KMS senza modificare policy o concessioni. Per informazioni dettagliate, vedi [ABAC per AWS KMS](abac.md).

Per specificare l'alias in questa condizione di policy, utilizza un [nome alias](concepts.md#key-id-alias-name), ad esempio `alias/project-alpha`, o un modello di nome alias, ad esempio `alias/*test*`. Non è possibile specificare un [ARN alias](concepts.md#key-id-alias-ARN) nel valore di questa chiave di condizione.

Per soddisfare questa condizione, il valore del parametro `KeyId` nella richiesta deve corrispondere a un nome alias o un ARN alias. Se la richiesta utilizza un [identificatore chiave](concepts.md#key-id), non soddisfa la condizione, anche se identifica la stessa chiave KMS.

Ad esempio, la seguente dichiarazione di politica chiave consente al principale di richiamare l'operazione sulla chiave KMS. [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) Tuttavia questo è consentito solo quando il valore del parametro `KeyId` nella richiesta è `alias/finance-key` o un ARN alias con quel nome alias, ad esempio `arn:aws:kms:us-west-2:111122223333:alias/finance-key`.

```
{
  "Sid": "Key policy using a request alias condition",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/developer"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:RequestAlias": "alias/finance-key"
    }
  }
}
```

Non è possibile utilizzare questa chiave di condizione per controllare l'accesso alle operazioni di alias, come [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html)o. [DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html) Per informazioni sul controllo dell'accesso a tutte le operazioni alias, consulta [Controllo dell'accesso agli alias](alias-access.md).

## kms:ResourceAliases
<a name="conditions-kms-resource-aliases"></a>


| AWS KMS tasti di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:ResourceAliases`  |  Stringa (elenco)  | Multivalore | Operazioni delle risorse delle chiavi KMS |  Solo policy IAM  | 

Utilizza questa chiave di condizione per controllare l'accesso a una chiave KMS in base agli [alias](kms-alias.md) associati alla chiave KMS. L'operazione deve essere un'*operazione delle risorse delle chiavi KMS*, ossia un'operazione autorizzata per una determinata chiave KMS. Per identificare le operazioni delle risorse delle chiavi KMS, nella [tabella Azioni e risorse](kms-api-permissions-reference.md#kms-api-permissions-reference-table), cerca un valore della `KMS key` nella colonna `Resources` per l'operazione.

Questa condizione supporta il controllo degli accessi basato su attributi (ABAC) in AWS KMS. Con ABAC è possibile controllare l'accesso alle chiavi KMS in base ai tag assegnati a una chiaveKMS e agli alias associati a una chiave KMS. È possibile utilizzare tag e alias per consentire o negare l'accesso a una chiave KMS senza modificare policy o concessioni. Per informazioni dettagliate, vedi [ABAC per AWS KMS](abac.md).

Un alias deve essere univoco in una regione Account AWS and, ma questa condizione consente di controllare l'accesso a più chiavi KMS nella stessa regione (utilizzando l'operatore Regioni AWS di `StringLike` confronto) o a più chiavi KMS in diversi account.

**Nota**  
[La ResourceAliases condizione [kms:](#conditions-kms-resource-aliases) è efficace solo quando la chiave KMS è conforme agli alias per quota di chiavi KMS.](resource-limits.md#aliases-per-key) Se una chiave KMS supera questa quota, alle entità principali autorizzate a usare la chiave KMS tramite la condizione `kms:ResourceAliases` viene negato l'accesso alla chiave KMS.

Per specificare l'alias in questa condizione di policy, utilizza un [nome alias](concepts.md#key-id-alias-name), ad esempio `alias/project-alpha`, o un modello di nome alias, ad esempio `alias/*test*`. Non è possibile specificare un [ARN alias](concepts.md#key-id-alias-ARN) nel valore di questa chiave di condizione. Per soddisfare la condizione, la chiave KMS utilizzata nell'operazione deve avere l'alias specificato. Non importa se o come la chiave KMS viene identificata nella richiesta per l'operazione.

Si tratta di una chiave di condizione multivalore che confronta il set di alias associato a una chiave KMS con il set di alias nella policy. Per determinare il modo in cui questi set vengono confrontati, devi fornire un operatore `ForAnyValue` o `ForAllValues` nella condizione di policy. Per dettagli sugli operatori, consulta [Utilizzo di più chiavi e valori](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_multi-value-conditions.html#reference_policies_multi-key-or-value-conditions) nella Guida per l'utente di IAM.
+ ForAnyValue: Almeno un alias associato alla chiave KMS deve corrispondere a un alias nella condizione della politica. Sono consentiti altri alias. Se la chiave KMS non dispone di alias, la condizione non viene soddisfatta.
+ ForAllValues: Ogni alias associato alla chiave KMS deve corrispondere a un alias nella politica. Questo operatore limita gli alias associati alla chiave KMS a quelli nella condizione della policy. Non richiede alcun alias, ma vieta alias non specificati.

Ad esempio, la seguente dichiarazione di policy IAM consente al principale di richiamare l'[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)operazione su qualsiasi chiave KMS specificata Account AWS associata all'alias. `finance-key` (Le policy chiave delle chiavi KMS interessate devono inoltre consentire all'account del principale di utilizzarle per questa operazione.) Per indicare che la condizione è soddisfatta quando uno dei molti alias che potrebbero essere associati alla chiave KMS è `alias/finance-key`, la condizione utilizza il set di operatori `ForAnyValue`. 

Poiché la condizione `kms:ResourceAliases` si basa sulla risorsa, non sulla richiesta, una chiamata a `GenerateDataKey` ha esito positivo per qualsiasi chiave KMS associata all'alias `finance-key`, anche se la richiesta utilizza un [ID chiave](concepts.md#key-id-key-id) o un [ARN della chiave](concepts.md#key-id-key-ARN) per identificare la chiave KMS. 

```
{
  "Sid": "AliasBasedIAMPolicy",
  "Effect": "Allow",
  "Action": "kms:GenerateDataKey",
  "Resource": [
    "arn:aws:kms:*:111122223333:key/*",
    "arn:aws:kms:*:444455556666:key/*"
  ],
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:ResourceAliases": "alias/finance-key"
    }
  }
}
```

L'istruzione della policy IAM di esempio seguente consente all'entità principale di abilitare e disabilitare le chiavi KMS, ma solo quando tutti gli alias delle chiavi KMS includono "`Test`"». Questa istruzione di policy utilizza due condizioni. La condizione con l'operatore `ForAllValues` richiede che tutti gli alias associati alla chiave KMS includano "Test". La condizione con l'operatore `ForAnyValue` richiede che la chiave KMS abbia almeno un alias con "Test". Senza la condizione `ForAnyValue`, questa istruzione di policy consentirebbe all'entità principaledi utilizzare chiavi KMS prive di alias.

```
{
  "Sid": "AliasBasedIAMPolicy",
  "Effect": "Allow",
  "Action": [
    "kms:EnableKey",
    "kms:DisableKey"
  ],
  "Resource": "arn:aws:kms:*:111122223333:key/*",
  "Condition": {
    "ForAllValues:StringLike": {
      "kms:ResourceAliases": [
        "alias/*Test*"
      ]
    },
    "ForAnyValue:StringLike": {
      "kms:ResourceAliases": [
        "alias/*Test*"
      ]
    }
  }
}
```

## kms:ReplicaRegion
<a name="conditions-kms-replica-region"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:ReplicaRegion`  |  Stringa (elenco)  | A valore singolo |  `ReplicateKey`  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare questa chiave di condizione per limitare i limiti Regioni AWS in cui un principale può replicare una chiave [multiregionale](multi-region-keys-overview.md). La chiave `kms:ReplicaRegion` condizionale controlla l'accesso all'[ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operazione in base al valore del [ReplicaRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-RetiringPrincipal)parametro nella richiesta. Questo parametro specifica la Regione AWS per la nuova [Chiave di replica](multi-region-keys-overview.md#mrk-replica-key). 

Il valore della condizione è costituito da uno o più Regione AWS nomi, ad esempio `us-east-1` or`ap-southeast-2`, o da modelli di nomi, ad esempio`eu-*`. Per un elenco dei nomi di tali Regioni AWS AWS KMS supporti, consulta [AWS Key Management Service endpoints e quote](https://docs.aws.amazon.com/general/latest/gr/kms.html) in. Riferimenti generali di AWS

Ad esempio, la seguente dichiarazione di politica chiave utilizza la chiave `kms:ReplicaRegion` condition per consentire ai principali di richiamare l'[ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)operazione solo quando il valore del `ReplicaRegion` parametro è una delle regioni specificate.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/Administrator"
  },
  "Action": "kms:ReplicateKey"
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ReplicaRegion": [ 
         "us-east-1",
         "eu-west-3",
         "ap-southeast-2"
      ]
    }
  }
}
```

Questa chiave condizionale controlla l'accesso solo all'[ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html)operazione. Per controllare l'accesso all'[UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)operazione, usa il tasto [kms: PrimaryRegion](#conditions-kms-primary-region) condition.

## kms:RetiringPrincipal
<a name="conditions-kms-retiring-principal"></a>


| AWS KMS tasti di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:RetiringPrincipal`  |  Stringa (elenco)  | A valore singolo |  `CreateGrant`  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare questa chiave di condizione per controllare l'accesso all'[CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)operazione in base al valore del [RetiringPrincipal](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html#KMS-CreateGrant-request-RetiringPrincipal)parametro nella richiesta. Ad esempio, puoi creare autorizzazioni per utilizzare una chiave KMS solo quando `RetiringPrincipal` nella richiesta `CreateGrant` corrisponde a `RetiringPrincipal` nell'istruzione della condizione.

Per specificare il principale che va in pensione, utilizza l'Amazon Resource Name (ARN) di AWS un principale. I principali validi includono utenti IAM Account AWS, ruoli IAM, utenti federati e utenti assunti. *Per informazioni sulla sintassi ARN per un principale, consulta [IAM ARNs nella IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) User Guide.*

L'esempio seguente di dichiarazione politica chiave consente a un utente di creare concessioni per la chiave KMS. La chiave `kms:RetiringPrincipal` condizionale limita l'autorizzazione alle `CreateGrant` richieste in cui il principale beneficiario della concessione ritirante è il. `LimitedAdminRole`

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:RetiringPrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole"
    }
  }
}
```

**Consulta anche**
+ [kms:GrantConstraintType](#conditions-kms-grant-constraint-type)
+ [kms:GrantIsForAWSResource](#conditions-kms-grant-is-for-aws-resource)
+ [kms:GrantOperations](#conditions-kms-grant-operations)
+ [kms:GranteePrincipal](#conditions-kms-grantee-principal)

## kms:RotationPeriodInDays
<a name="conditions-kms-rotation-period-in-days"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:RotationPeriodInDays`  |  Numerico  | A valore singolo |  `EnableKeyRotation`  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare questa chiave di condizione per limitare i valori che i responsabili possono specificare nel `RotationPeriodInDays` parametro di una [EnableKeyRotation](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKeyRotation.html)richiesta.

`RotationPeriodInDays`specifica il numero di giorni tra ogni data di rotazione automatica dei tasti. AWS KMS consente di specificare un periodo di rotazione compreso tra 90 e 2560 giorni, ma è possibile utilizzare il tasto `kms:RotationPeriodInDays` condition per limitare ulteriormente il periodo di rotazione, ad esempio imporre un periodo di rotazione minimo entro l'intervallo valido.

Ad esempio, la seguente dichiarazione politica chiave utilizza la chiave `kms:RotationPeriodInDays` condition per impedire ai principali di abilitare la rotazione dei tasti se il periodo di rotazione è inferiore o uguale a 180 giorni.

```
{
  "Effect": "Deny",
  "Action": "kms:EnableKeyRotation",
  "Principal": "*",
  "Resource": "*",
  "Condition" : {
      "NumericLessThanEquals" : {
        "kms:RotationPeriodInDays" : "180"
      }
  }
}
```

## kms:ScheduleKeyDeletionPendingWindowInDays
<a name="conditions-kms-schedule-key-deletion-pending-window-in-days"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:ScheduleKeyDeletionPendingWindowInDays`  |  Numerico  | A valore singolo |  `ScheduleKeyDeletion`  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare questa chiave di condizione per limitare i valori che i responsabili possono specificare nel `PendingWindowInDays` parametro di una [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html)richiesta.

`PendingWindowInDays`Speciifica il numero di giorni che AWS KMS attendono prima di eliminare una chiave. AWS KMS consente di specificare un periodo di attesa compreso tra 7 e 30 giorni, ma è possibile utilizzare la chiave di `kms:ScheduleKeyDeletionPendingWindowInDays` condizione per limitare ulteriormente il periodo di attesa, ad esempio imporre un periodo di attesa minimo entro l'intervallo valido.

Ad esempio, la seguente istruzione della policy della chiave utilizza la chiave di condizione `kms:ScheduleKeyDeletionPendingWindowInDays` per impedire ai principali di pianificare l'eliminazione della chiave se il periodo di attesa è minore o uguale a 21 giorni.

```
{
  "Effect": "Deny",
  "Action": "kms:ScheduleKeyDeletion",
  "Principal": "*",
  "Resource": "*",
  "Condition" : {
      "NumericLessThanEquals" : {
        "kms:ScheduleKeyDeletionPendingWindowInDays" : "21"
      }
  }
}
```

## kms:SigningAlgorithm
<a name="conditions-kms-signing-algorithm"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:SigningAlgorithm`  |  Stringa  | A valore singolo |  `Sign`  `Verify`  |  Policy delle chiavi e policy IAM  | 

È possibile utilizzare il tasto `kms:SigningAlgorithm` condition per controllare l'accesso alle operazioni di [firma](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html) e [verifica](https://docs.aws.amazon.com/kms/latest/APIReference/API_Verify.html) in base al valore del [SigningAlgorithm](https://docs.aws.amazon.com/kms/latest/APIReference/API_Sign.html#KMS-Sign-request-SigningAlgorithm)parametro nella richiesta. Questa chiave condizionale non ha effetto sulle operazioni eseguite all'esterno AWS KMS, come la verifica delle firme con la chiave pubblica in una coppia di chiavi KMS asimmetrica all'esterno di. AWS KMS

La seguente policy delle chiavi di esempio consente agli utenti che possono assumere il ruolo `testers` di utilizzare la chiave KMS per firmare i messaggi solo quando l'algoritmo di firma utilizzato per la richiesta è un algoritmo RSASSA\$1PSS, ad esempio `RSASSA_PSS_SHA512`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/testers"
  },
  "Action": "kms:Sign",
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:SigningAlgorithm": "RSASSA_PSS*"
    }
  }
}
```

**Consulta anche**
+ [kms:EncryptionAlgorithm](#conditions-kms-encryption-algorithm)
+ [kms:MacAlgorithm](#conditions-kms-mac-algorithm)
+ [kms:MessageType](#conditions-kms-message-type)

## kms:ValidTo
<a name="conditions-kms-valid-to"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:ValidTo`  |  Time stamp  | A valore singolo |  `ImportKeyMaterial`  |  Policy delle chiavi e policy IAM  | 

Il tasto `kms:ValidTo` condition controlla l'accesso all'[ImportKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html)operazione in base al valore del [ValidTo](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ValidTo)parametro nella richiesta, che determina la scadenza del materiale chiave importato. Il valore viene espresso in formato [Unix](https://en.wikipedia.org/wiki/Unix_time).

Come impostazione predefinita, il parametro `ValidTo` è obbligatorio in una richiesta `ImportKeyMaterial`. Tuttavia, se il valore del [ExpirationModel](https://docs.aws.amazon.com/kms/latest/APIReference/API_ImportKeyMaterial.html#KMS-ImportKeyMaterial-request-ExpirationModel)parametro è`KEY_MATERIAL_DOES_NOT_EXPIRE`, il `ValidTo` parametro non è valido. Puoi anche usare la chiave [kms: ExpirationModel](#conditions-kms-expiration-model) condition per richiedere il `ExpirationModel` parametro o un valore di parametro specifico.

La seguente istruzione di policy di esempio consente a un utente di importare il materiale della chiave in una chiave KMS. La chiave di condizione `kms:ValidTo` limita l'autorizzazione alle richieste `ImportKeyMaterial` nelle quali il valore `ValidTo` è minore o uguale a `1546257599.0` (31 dicembre 2018, 23:59:59). 

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:ImportKeyMaterial",
  "Resource": "*",
  "Condition": {
    "NumericLessThanEquals": {
      "kms:ValidTo": "1546257599.0"
    }
  }
}
```

**Consulta anche**
+ [kms:ExpirationModel](#conditions-kms-expiration-model) 
+ [kms:WrappingAlgorithm](#conditions-kms-wrapping-algorithm)
+ [kms:WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## kms:ViaService
<a name="conditions-kms-via-service"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:ViaService`  |  Stringa  | A valore singolo |  Operazioni delle risorse delle chiavi KMS  |  Policy delle chiavi e policy IAM  | 

La chiave di `kms:ViaService` condizione limita l'uso di una chiave KMS alle richieste provenienti da specifiche Servizi AWS. Questa chiave condizionale si applica solo [alle sessioni di accesso diretto](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). È possibile specificare uno o più servizi in ciascuna chiave di condizione `kms:ViaService`. L'operazione deve essere un'*operazione delle risorse delle chiavi KMS*, ossia un'operazione autorizzata per una determinata chiave KMS. Per identificare le operazioni delle risorse delle chiavi KMS, nella [tabella Azioni e risorse](kms-api-permissions-reference.md#kms-api-permissions-reference-table), cerca un valore della `KMS key` nella colonna `Resources` per l'operazione.

Ad esempio, la seguente istruzione di una policy chiave utilizza la chiave di condizione `kms:ViaService` per consentire l'utilizzo di una [chiave gestita dal cliente](concepts.md#customer-mgn-key) per le azioni specificate solo quando la richiesta proviene da Amazon EC2 o Amazon RDS nella Regione Stati Uniti occidentali (Oregon) per conto di `ExampleRole`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:ListGrants",
    "kms:DescribeKey"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": [
        "ec2.us-west-2.amazonaws.com",
        "rds.us-west-2.amazonaws.com"
      ]
    }
  }
}
```

Puoi inoltre utilizzare una chiave di condizione `kms:ViaService` per negare l'autorizzazione a utilizzare una chiave KMS quando la richiesta proviene da determinati servizi. Ad esempio, la seguente istruzione di policy da una policy delle chiavi utilizza una chiave di condizione `kms:ViaService` per evitare che una chiave gestita dal cliente venga utilizzata per le operazioni `Encrypt` quando la richiesta proviene da AWS Lambda per conto di `ExampleRole`.

```
{
  "Effect": "Deny",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": [
    "kms:Encrypt"    
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": [
          "lambda.us-west-2.amazonaws.com"
      ]
    }
  }
}
```

**Importante**  
Quando si utilizza la chiave di condizione `kms:ViaService`, il servizio effettua la richiesta per conto di un principale in Account AWS. Questi principali devono disporre delle autorizzazioni seguenti:  
Autorizzazione a utilizzare la chiave KMS. Il principale deve concedere le autorizzazioni al servizio integrato in modo che il servizio possa utilizzare la chiave gestita dal cliente per conto del principale. Per ulteriori informazioni, consulta [Utilizzo della AWS KMS crittografia con AWS i servizi](service-integration.md).
Autorizzazione a utilizzare il servizio integrato. Per informazioni dettagliate su come concedere agli utenti l'accesso a un AWS servizio che si integra con AWS KMS, consulta la documentazione relativa al servizio integrato.

Tutte le [Chiavi gestite da AWS](concepts.md#aws-managed-key) utilizzano una chiave di condizione `kms:ViaService` nel documento della policy delle chiavi. Questa condizione consente alla chiave KMS di essere utilizzata solo per le richieste che provengono dal servizio che ha creato la chiave KMS. Per vedere la politica chiave di an Chiave gestita da AWS, usa l'[GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)operazione. 

La chiave di condizione `kms:ViaService` è valida nelle istruzioni IAM e della policy delle chiavi. I servizi specificati devono essere [integrati con AWS KMS](https://aws.amazon.com/kms/features/#AWS_Service_Integration) e supportare la chiave di condizione `kms:ViaService`.

### I servizi che supportano la chiave di condizione `kms:ViaService`
<a name="viaService_table"></a>

La tabella seguente elenca AWS i servizi che sono integrati AWS KMS e supportano l'uso della chiave di `kms:ViaService` condizione nelle chiavi gestite dal cliente. I servizi in questa tabella potrebbero non essere disponibili in tutte le aree. Utilizza il `.amazonaws.com` suffisso del AWS KMS ViaService nome in tutte le AWS partizioni.

**Nota**  
Potrebbe essere necessario scorrere orizzontalmente o verticalmente per visualizzare tutti i dati di questa tabella.


| Nome del servizio | AWS KMS ViaService nome | 
| --- | --- | 
| Operazioni Amazon AI | aiops.AWS\$1region.amazonaws.com | 
| AWS App Runner | apprunner.AWS\$1region.amazonaws.com | 
| AWS AppFabric | appfabric.AWS\$1region.amazonaws.com | 
| Amazon AppFlow | appflow.AWS\$1region.amazonaws.com | 
| AWS Application Migration Service | mgn.AWS\$1region.amazonaws.com | 
| Amazon Athena | athena.AWS\$1region.amazonaws.com | 
| AWS Audit Manager | auditmanager.AWS\$1region.amazonaws.com | 
| Amazon Aurora | rds.AWS\$1region.amazonaws.com | 
| AWS Backup | backup.AWS\$1region.amazonaws.com | 
| AWS Backup Gateway | backup-gateway.AWS\$1region.amazonaws.com | 
| Copia del modello Amazon Bedrock | bedrock.AWS\$1region.amazonaws.com | 
| SDK Amazon Chime | chimevoiceconnector.AWS\$1region.amazonaws.com | 
| AWS Clean Rooms ML | cleanrooms-ml.AWS\$1region.amazonaws.com | 
| AWS CodeArtifact | codeartifact.AWS\$1region.amazonaws.com | 
|  CodeGuru Revisore Amazon | codeguru-reviewer.AWS\$1region.amazonaws.com | 
| Amazon Comprehend | comprehend.AWS\$1region.amazonaws.com | 
| Amazon Connect | connect.AWS\$1region.amazonaws.com | 
| Amazon Connect Customer Profiles | profile.AWS\$1region.amazonaws.com | 
| Amazon Q in Connect | wisdom.AWS\$1region.amazonaws.com | 
| AWS Database Migration Service (AWS DMS) | dms.AWS\$1region.amazonaws.com | 
| AWS DeepRacer | deepracer.AWS\$1region.amazonaws.com | 
| AWS Directory Service | directoryservice.AWS\$1region.amazonaws.com | 
| Amazon DocumentDB | docdb-elastic.AWS\$1region.amazonaws.com | 
| Amazon DynamoDB | dynamodb.AWS\$1region.amazonaws.com | 
| Amazon EC2 Systems Manager (SSM) | ssm.AWS\$1region.amazonaws.com | 
| Amazon Elastic Block Store (Amazon EBS) | ec2.AWS\$1region.amazonaws.com (solo EBS) | 
| Amazon Elastic Container Registry (Amazon ECR) | ecr.AWS\$1region.amazonaws.com | 
| Amazon Elastic File System (Amazon EFS) | elasticfilesystem.AWS\$1region.amazonaws.com | 
| Amazon ElastiCache |  Includi entrambi ViaService i nomi nel valore della chiave condizionale: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/kms/latest/developerguide/conditions-kms.html)  | 
| AWS Elemental MediaTailor | mediatailor.AWS\$1region.amazonaws.com | 
| AWS Risoluzione dell'entità | entityresolution.AWS\$1region.amazonaws.com | 
| Amazon EventBridge | events.AWS\$1region.amazonaws.com | 
| Amazon FinSpace | finspace.AWS\$1region.amazonaws.com | 
| Amazon Forecast | forecast.AWS\$1region.amazonaws.com | 
| Amazon FSx | fsx.AWS\$1region.amazonaws.com | 
| AWS Glue | glue.AWS\$1region.amazonaws.com | 
| AWS Ground Station | groundstation.AWS\$1region.amazonaws.com | 
| Amazon GuardDuty | malware-protection.AWS\$1region.amazonaws.com | 
| AWS HealthLake | healthlake.AWS\$1region.amazonaws.com | 
| AWS IoT SiteWise | iotsitewise.AWS\$1region.amazonaws.com | 
| Amazon Kendra | kendra.AWS\$1region.amazonaws.com | 
| Amazon Keyspaces (per Apache Cassandra) | cassandra.AWS\$1region.amazonaws.com | 
| Amazon Kinesis | kinesis.AWS\$1region.amazonaws.com | 
| Amazon Data Firehose | firehose.AWS\$1region.amazonaws.com | 
| Amazon Kinesis Video Streams | kinesisvideo.AWS\$1region.amazonaws.com | 
| AWS Lambda | lambda.AWS\$1region.amazonaws.com | 
| Amazon Lex | lex.AWS\$1region.amazonaws.com | 
| AWS License Manager | license-manager.AWS\$1region.amazonaws.com | 
| Servizio di posizione Amazon | geo.AWS\$1region.amazonaws.com | 
| Amazon Lookout per le apparecchiature | lookoutequipment.AWS\$1region.amazonaws.com | 
| Amazon Lookout per le metriche | lookoutmetrics.AWS\$1region.amazonaws.com | 
| Amazon Lookout per Vision | lookoutvision.AWS\$1region.amazonaws.com | 
| Amazon Macie | macie.AWS\$1region.amazonaws.com | 
| Modernizzazione del mainframe AWS | m2.AWS\$1region.amazonaws.com | 
| Modernizzazione del mainframe AWS Test delle applicazioni | apptest.AWS\$1region.amazonaws.com | 
| Blockchain gestita da Amazon | managedblockchain.AWS\$1region.amazonaws.com | 
| Amazon Managed Streaming for Apache Kafka (Amazon MSK) | kafka.AWS\$1region.amazonaws.com | 
| Amazon Managed Workflows for Apache Airflow (MWAA) | airflow.AWS\$1region.amazonaws.com | 
| Amazon MemoryDB | memorydb.AWS\$1region.amazonaws.com | 
| Amazon Monitron | monitron.AWS\$1region.amazonaws.com | 
| Amazon MQ | mq.AWS\$1region.amazonaws.com | 
| Amazon Neptune | rds.AWS\$1region.amazonaws.com | 
| Amazon Nimble Studio | nimble.AWS\$1region.amazonaws.com | 
| AWS HealthOmics | omics.AWS\$1region.amazonaws.com | 
|  OpenSearch Servizio Amazon | es.AWS\$1region.amazonaws.com, aoss.AWS\$1region.amazonaws.com | 
| Pacchetti OpenSearch personalizzati Amazon | custom-packages.AWS\$1region.amazonaws.com | 
| AWS Proton | proton.AWS\$1region.amazonaws.com | 
| Database Amazon Quantum Ledger (Amazon QLDB) | qldb.AWS\$1region.amazonaws.com | 
| Approfondimenti sulle prestazioni di Amazon RDS | rds.AWS\$1region.amazonaws.com | 
| Amazon Redshift | redshift.AWS\$1region.amazonaws.com | 
| Editor di query Amazon Redshift V2 | sqlworkbench.AWS\$1region.amazonaws.com | 
| Amazon Redshift Serverless | redshift-serverless.AWS\$1region.amazonaws.com | 
| Amazon Rekognition | rekognition.AWS\$1region.amazonaws.com | 
| Amazon Relational Database Service (Amazon RDS) | rds.AWS\$1region.amazonaws.com | 
| Datastore replicato di Amazon | ards.AWS\$1region.amazonaws.com | 
| Amazon SageMaker AI | sagemaker.AWS\$1region.amazonaws.com | 
| Gestione dei segreti AWS | secretsmanager.AWS\$1region.amazonaws.com | 
| Amazon Security Lake | securitylake.AWS\$1region.amazonaws.com | 
| Amazon Simple Email Service (Amazon SES) | ses.AWS\$1region.amazonaws.com | 
| Servizio di notifica semplice Amazon (Amazon Simple Notification Service (Amazon SNS)) | sns.AWS\$1region.amazonaws.com | 
| Amazon Simple Queue Service (Amazon SQS) | sqs.AWS\$1region.amazonaws.com | 
| Amazon Simple Storage Service (Amazon S3) | s3.AWS\$1region.amazonaws.com | 
| Tabelle di Amazon S3 | s3tables.AWS\$1region.amazonaws.com | 
| AWS Snowball Edge | importexport.AWS\$1region.amazonaws.com | 
| AWS Step Functions | states.AWS\$1region.amazonaws.com | 
| Gateway di archiviazione AWS | storagegateway.AWS\$1region.amazonaws.com | 
| Strumento di gestione degli incidenti AWS Systems Manager | ssm-incidents.AWS\$1region.amazonaws.com | 
| Strumento di gestione degli incidenti AWS Systems Manager Contatti | ssm-contacts.AWS\$1region.amazonaws.com | 
| Amazon Timestream | timestream.AWS\$1region.amazonaws.com | 
| Amazon Translate | translate.AWS\$1region.amazonaws.com | 
| Accesso verificato da AWS | verified-access.AWS\$1region.amazonaws.com | 
| Amazon WorkMail | workmail.AWS\$1region.amazonaws.com | 
| Amazon WorkSpaces | workspaces.AWS\$1region.amazonaws.com | 
| Amazon WorkSpaces Thin Client | thinclient.AWS\$1region.amazonaws.com | 
| Amazon WorkSpaces Web | workspaces-web.AWS\$1region.amazonaws.com | 
| AWS X-Ray | xray.AWS\$1region.amazonaws.com | 

## kms:WrappingAlgorithm
<a name="conditions-kms-wrapping-algorithm"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:WrappingAlgorithm`  |  Stringa  | A valore singolo |  `GetParametersForImport`  |  Policy delle chiavi e policy IAM  | 

Questa chiave di condizione controlla l'accesso all'[GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html)operazione in base al valore del [WrappingAlgorithm](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html#KMS-GetParametersForImport-request-WrappingAlgorithm)parametro nella richiesta. È possibile utilizzare questa condizione per richiedere che i principali utilizzino un determinato algoritmo per crittografare il materiale chiave durante il processo di importazione. Le richieste della chiave pubblica e del token di importazione non riescono se viene specificato un diverso algoritmo di wrapping.

La seguente istruzione di policy chiave di esempio utilizza la chiave di condizione `kms:WrappingAlgorithm` per fornire all'utente l'autorizzazione a richiamare l'operazione `GetParametersForImport`, ma gli impedisce di utilizzare l'algoritmo di wrapping `RSAES_OAEP_SHA_1`. Quando `WrappingAlgorithm` nella richiesta `GetParametersForImport` è`RSAES_OAEP_SHA_1`, l'operazione non riesce.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:GetParametersForImport",
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "kms:WrappingAlgorithm": "RSAES_OAEP_SHA_1"
    }
  }
}
```

**Consulta anche**
+ [kms:ExpirationModel](#conditions-kms-expiration-model)
+ [kms:ValidTo](#conditions-kms-valid-to)
+ [kms:WrappingKeySpec](#conditions-kms-wrapping-key-spec)

## kms:WrappingKeySpec
<a name="conditions-kms-wrapping-key-spec"></a>


| AWS KMS chiavi di condizione | Tipo di condizioni | Value type (Tipo di valore) | operazioni API | Tipo di politica | 
| --- | --- | --- | --- | --- | 
|  `kms:WrappingKeySpec`  |  Stringa  | A valore singolo |  `GetParametersForImport`  |  Policy delle chiavi e policy IAM  | 

Questa chiave di condizione controlla l'accesso all'[GetParametersForImport](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html)operazione in base al valore del [WrappingKeySpec](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetParametersForImport.html#KMS-GetParametersForImport-request-WrappingKeySpec)parametro nella richiesta. È possibile utilizzare questa condizione per richiedere che i principali utilizzino un determinato tipo di chiave pubblica durante il processo di importazione. Se la richiesta specifica un tipo di chiave diversa, ha esito negativo.

Poiché l'unico valore valido per il valore del parametro `WrappingKeySpec` è `RSA_2048`, impedendo agli utenti di utilizzare questo valore efficacemente, si impedisce loro di utilizzare l'operazione `GetParametersForImport`. 

La seguente istruzione di policy di esempio utilizza la chiave di condizione `kms:WrappingAlgorithm` per richiedere che `WrappingKeySpec` nella richiesta sia `RSA_4096`.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:GetParametersForImport",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:WrappingKeySpec": "RSA_4096"
    }
  }
}
```

**Consulta anche**
+ [kms:ExpirationModel](#conditions-kms-expiration-model)
+ [kms:ValidTo](#conditions-kms-valid-to)
+ [kms:WrappingAlgorithm](#conditions-kms-wrapping-algorithm)