

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

# Chiave KMS \| Crea
<a name="deployment-advanced-kms-key-create"></a>

Crea una AWS KMS Customer Master Key (CMK) utilizzando un documento di automazione SSM con convalida delle policy.

**Classificazione completa:** Distribuzione \| Componenti dello stack avanzati \| Chiave KMS \| Create

## Dettagli del tipo di modifica
<a name="ct-1d84keiri1jhg-DAKc-table"></a>


****  

|  |  | 
| --- |--- |
| Modifica tipo ID | ct-1d84keiri1jhg | 
| Versione corrente | 2.0 | 
| Durata prevista dell'esecuzione | 30 minuti | 
| Approvazione AWS | Richiesto | 
| Approvazione del cliente | Campo non obbligatorio | 
| Modalità di esecuzione | Automatizzata | 

## Informazioni aggiuntive
<a name="deployment-advanced-kms-key-create-info"></a>

### Crea chiave KMS
<a name="ex-kms-key-create-col"></a>

#### Creazione di una chiave AWS KMS con la console
<a name="kms-key-create-con"></a>

Schermata di questo tipo di modifica nella console AMS:

![](http://docs.aws.amazon.com/it_it/managedservices/latest/ctref/images/guiKmsKeyCreateCT.png)


Come funziona:

1. Vai alla pagina **Crea RFC**: nel riquadro di navigazione a sinistra della console AMS, fai clic **RFCs**per aprire la pagina di RFCs elenco, quindi fai clic su **Crea** RFC.

1. Scegli un tipo di modifica (CT) popolare nella visualizzazione predefinita **Sfoglia i tipi di modifica** o seleziona un CT nella visualizzazione **Scegli per categoria**.
   + **Naviga per tipo di modifica**: puoi fare clic su un CT popolare nell'area di **creazione rapida** per aprire immediatamente la pagina **Run RFC**. Nota che non puoi scegliere una versione CT precedente con creazione rapida.

     Per ordinare CTs, utilizzate l'area **Tutti i tipi di modifica** nella vista a **scheda** o **tabella**. In entrambe le visualizzazioni, selezionate un CT, quindi fate clic su **Crea RFC** per aprire la pagina **Esegui RFC**. Se applicabile, accanto al **pulsante Crea **RFC viene visualizzata l'opzione Crea** con una versione precedente**.
   + **Scegli per categoria**: seleziona una categoria, sottocategoria, articolo e operazione e la casella dei dettagli CT si apre con l'opzione **Crea con una versione precedente, se applicabile**. Fai clic su **Crea RFC** per aprire la pagina **Esegui RFC**.

1. Nella pagina **Run RFC**, apri l'area del nome CT per visualizzare la casella dei dettagli CT. È richiesto un **Oggetto** (questo campo viene compilato automaticamente se si sceglie il CT nella visualizzazione **Sfoglia i tipi di modifica**). Apri l'area **di configurazione aggiuntiva** per aggiungere informazioni sull'RFC.

   Nell'area di **configurazione dell'esecuzione**, utilizza gli elenchi a discesa disponibili o inserisci i valori per i parametri richiesti. Per configurare i parametri di esecuzione opzionali, aprite l'area di **configurazione aggiuntiva**.

1. Al termine, fate clic su **Esegui**. Se non sono presenti errori, viene visualizzata la pagina **RFC creata correttamente** con i dettagli RFC inviati e l'output iniziale di **Run**. 

1. Apri l'area dei **parametri di esecuzione** per visualizzare le configurazioni inviate. Aggiorna la pagina per aggiornare lo stato di esecuzione RFC. Facoltativamente, annulla la RFC o creane una copia con le opzioni nella parte superiore della pagina.

#### Creazione di una chiave AWS KMS con la CLI
<a name="kms-key-create-cli"></a>

Come funziona:

1. Usa Inline Create (immetti un `create-rfc` comando con tutti i parametri RFC e di esecuzione inclusi) o Template Create (crei due file JSON, uno per i parametri RFC e uno per i parametri di esecuzione) ed emetti il `create-rfc` comando con i due file come input. Entrambi i metodi sono descritti qui.

1. Invia il `aws amscm submit-rfc --rfc-id {{ID}}` comando RFC: con l'ID RFC restituito.

   Monitora il comando RFC:. `aws amscm get-rfc --rfc-id {{ID}}`

Per verificare la versione del tipo di modifica, usa questo comando:

```
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value={{CT_ID}}
```
**Nota**  
È possibile utilizzare qualsiasi `CreateRfc` parametro con qualsiasi RFC, indipendentemente dal fatto che faccia parte o meno dello schema per il tipo di modifica. Ad esempio, per ricevere notifiche quando lo stato RFC cambia, aggiungi questa riga `--notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}"` alla parte dei parametri RFC della richiesta (non ai parametri di esecuzione). Per un elenco di tutti i CreateRfc parametri, consulta l'[AMS Change Management API](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_CreateRfc.html) Reference.

*CREAZIONE IN LINEA*:

Esegui il comando create RFC con i parametri di esecuzione forniti in linea (evita le virgolette quando fornisci i parametri di esecuzione in linea), quindi invia l'ID RFC restituito. Ad esempio, puoi sostituire il contenuto con qualcosa del genere:

Solo parametri richiesti:

```
aws amscm create-rfc --title {{my-app-key}} --change-type-id ct-1d84keiri1jhg --change-type-version {{1.0}} --execution-parameters '{"Description":"{{KMS key for my-app}}","VpcId":"{{VPC_ID}}","Name":"{{my-app-key}}","StackTemplateId":"stm-enf1j068fhg34vugt","TimeoutInMinutes":60,"Parameters":{"Description":"{{KMS key for my-app}}"}}'
```

*CREAZIONE DEL MODELLO*:

1. Invia lo schema JSON dei parametri di esecuzione per questo tipo di modifica in un file; questo esempio lo chiama CreateKmsKeyAutoParams .json.

   ```
   aws amscm get-change-type-version --change-type-id "ct-1d84keiri1jhg" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateKmsKeyAutoParams.json
   ```

1. Modificate e salvate il file. CreateKmsKeyAutoParams Seguono degli esempi.

   **Concedi a un utente o a un ruolo il permesso di decrittografare la CMK creata**. Parametri di esecuzione di esempio:

   ```
   {
     "Description": "{{KMS key for my-app}}",
     "VpcId": "{{VPC_ID}}”,
     "Name": "{{my-app-key-decrypt}}",
     "StackTemplateId": "stm-enf1j068fhg34vugt",
     "TimeoutInMinutes": 60,
     "Parameters": {
       "IAMPrincipalsRequiringDecryptPermissions": [
         "{{ARN:role/roleA}}",
         "{{ARN:user/userB}}",
         "{{ARN:role/instanceProfileA}}"
       ],
       "Description": "{{KMS key for my-app}}"
     }
   }
   ```

   Per la politica risultante, vedere[Concede le autorizzazioni per la decrittografia con il CML per un utente o un ruolo IAM](#kms-key-grant-cmk-decrypt-for-user-or-role).

   **Concedi a un utente o a un ruolo l'autorizzazione a crittografare utilizzando la CMK creata**. Parametri di esecuzione di esempio:

   ```
   {
     "Description": "{{KMS key for my-app}}",
     "VpcId": "{{VPC_ID}}",
     "Name": "{{my-app-key-encrypt}}",
     "Tags": [
       {
         "Key": "Name",
         "Value": "{{my-app-key}}"
       }
     ],
     "StackTemplateId": "stm-enf1j068fhg34vugt",
     "TimeoutInMinutes": 60,
     "Parameters": {
       "IAMPrincipalsRequiringEncryptPermissions": [
         "{{ARN:role/roleA}}",
         "{{ARN:user/userB}}",
         "{{ARN:role/instanceProfileA}}"
       ],
       "Description": "KMS key for my-app"
     }
   }
   ```

   Per la politica risultante, vedere[Concede le autorizzazioni per crittografare con il CML a un utente o un ruolo IAM](#kms-key-grant-cmk-encrypt-for-user-or-role).

   **Concedi a un utente, ruolo o account l'autorizzazione a creare sovvenzioni utilizzando la CMK creata**. Parametri di esecuzione di esempio:

   ```
   {
     "Description": "{{KMS key for my-app}}",
     "VpcId": "{{VPC_ID}}",
     "Name": "{{my-app-key-create-grants}}",
     "StackTemplateId": "stm-enf1j068fhg34vugt",
     "TimeoutInMinutes": 60,
     "Parameters": {
       "IAMPrincipalsRequiringGrantsPermissions": [
         "{{arn:aws:iam::999999999999:role/roleA}}",
         "{{888888888888}}"
       ],
       "Description": "{{KMS key for my-app}}"
     }
   }
   ```

   Per la politica risultante, vedere[Concede le autorizzazioni per creare sovvenzioni con la CMK per un utente, un ruolo o un account IAM](#kms-key-create-cmk-grants-for-user-role-or-account).

   **Consenti solo ai servizi AWS integrati con AWS KMS di eseguire l'operazione GRANT**. Parametri di esecuzione di esempio:

   ```
   {
     "Description": "{{KMS key for my-app}}",
     "VpcId": "{{VPC_ID}}",
     "Name": "{{my-app-key-limit-to-services}}",
     "StackTemplateId": "stm-enf1j068fhg34vugt",
     "TimeoutInMinutes": 60,
     "Parameters": {
       "IAMPrincipalsRequiringGrantsPermissions": [
         "{{arn:aws:iam::999999999999:role/roleA}}"
       ],
       "LimitGrantsToAWSResources": "true",
       "Description": "{{KMS key for my-app}}"
     }
   }
   ```

   Per la politica risultante, vedere[Consenti solo ai servizi AWS integrati con AWS KMS di eseguire l'operazione GRANT](#kms-key-limit-grants-to-aws-services).

   **Imporre l'uso delle chiavi contestuali di crittografia nelle operazioni crittografiche**. Parametri di esecuzione di esempio:

   ```
   {
     "Description": "{{KMS key for my-app}}",
     "VpcId": "{{VPC_ID}}",
     "Name": "{{my-app-key-encryption-keys}}",
     "StackTemplateId": "stm-enf1j068fhg34vugt",
     "TimeoutInMinutes": 60,
     "Parameters": {
       "EnforceEncryptionContextKeys": "true",
       "Description": "{{KMS key for my-app}}"
     }
   }
   ```

   Per la politica risultante, vedere[Imporre l'uso delle chiavi contestuali di crittografia nelle operazioni crittografiche](#kms-key-enforce-encryption-context-keys).

   **Applica un elenco specifico di chiavi contestuali di crittografia nelle operazioni crittografiche**. Parametri di esecuzione di esempio:

   ```
   {
     "Description": "{{KMS key for my-app}}",
     "VpcId": "{{VPC_ID}}",
     "Name": "{{my-app-key-encryption-list}}",
     "StackTemplateId": "stm-enf1j068fhg34vugt",
     "TimeoutInMinutes": 60,
     "Parameters": {
       "AllowedEncryptionContextKeys": [
         "{{Name}}",
         "{{Application}}"
       ],
       "Description": "{{KMS key for my-app}}"
     }
   }
   ```

   Per la politica risultante, vedere[Applica un elenco specifico di chiavi contestuali di crittografia nelle operazioni crittografiche](#kms-key-enforce-encryption-context-keys-list).

   **Consenti ai servizi AWS di accedere alla CMK creata**. Parametri di esecuzione di esempio:

   ```
   {
     "Description" : "KMS key for my-app",
     "VpcId" : "VPC_ID",
     "Name" : "my-app-key-allow-aws-service-access",
     "StackTemplateId" : "stm-enf1j068fhg34vugt",
     "TimeoutInMinutes" : 60,
     "Parameters" : {
         "AllowServiceRolesAccessKMSKeys": [
             "ec2.us-east-1.amazonaws.com",
             "ecr.us-east-1.amazonaws.com"
       ],
       "Description": "KMS key for my-app"
     }
   }
   ```

   Per la politica risultante, vedere[Consenti ai servizi AWS di accedere alla CMK creata](#kms-key-allow-services).

1. Esporta il file JSON del modello RFC in un file; questo esempio lo CreateKmsKeyAutoRfc chiama .json:

   ```
   aws amscm create-rfc --generate-cli-skeleton > CreateKmsKeyAutoRfc.json
   ```

1. Modifica e salva il file.json. CreateKmsKeyAutoRfc Ad esempio, puoi sostituire il contenuto con qualcosa del genere:

   ```
   {
       "ChangeTypeId": "ct-1d84keiri1jhg",
       "ChangeTypeVersion": "1.0",
       "Title": "{{Create KMS Key}}"
   }
   ```

1. Crea la RFC, specificando il file CreateKmsKeyAuto Rfc e il file: CreateKmsKeyAutoParams 

   ```
   aws amscm create-rfc --cli-input-json file://CreateKmsKeyAutoRfc.json  --execution-parameters file://CreateKmsKeyAutoParams.json
   ```

   Nella risposta ricevi l'ID della nuova RFC e puoi utilizzarlo per inviare e monitorare la RFC. Finché non la invii, la RFC rimane nello stato di modifica e non si avvia.

#### Suggerimenti
<a name="ex-kms-key-create-tip"></a>
+ Questo CT crea uno CloudFormation stack con cui crea una chiave KMS. `DeletionPolicy: Retain` In base alla progettazione, la chiave KMS creata persisterà anche dopo l'eliminazione dello stack. Se sei sicuro di voler eliminare la chiave KMS, crea una RFC con Change Type [ct-2zxya20wmf5bf](schemas.md#ct-2zxya20wmf5bf-schema-section), Management \| Advanced stack components \| KMS key \| Delete (automazione gestita).
+ Questo tipo di modifica è ExecutionMode =Automatizzato, quindi non richiede la revisione manuale da parte delle operazioni AMS e dovrebbe essere eseguito più rapidamente di KMS Key: Create (automazione gestita); tuttavia, se hai una situazione insolita, la versione manuale potrebbe funzionare meglio per te. Vedi [KMS Key \| Create (automazione gestita)](https://docs.aws.amazon.com/managedservices/latest/ctref/deployment-advanced-kms-key-create-review-required.html).
+ Questo CT ha un nuovo parametro, AllowServiceRolesAccess KMSKeys, che fornisce ai servizi AWS specificati l'accesso alla chiave KMS. La modifica è stata apportata perché il ruolo del servizio di gruppo Autoscaling non è stato in grado di avviare le istanze EC2 con volumi EBS crittografati a causa della mancanza di autorizzazioni per la chiave KMS.
+ Per ulteriori informazioni sulle chiavi AWS KMS, consulta [AWS Key Management Service (](https://aws.amazon.com/kms/)KMS), AWS Key Management [Service e AWS Key Management FAQs](https://aws.amazon.com/kms/faqs/) [Service](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html) Concepts.

#### KMS Key Create le politiche risultanti
<a name="ex-kms-key-create-policies"></a>

A seconda di come hai creato la tua chiave KMS, hai creato delle politiche. Queste politiche di esempio corrispondono a vari scenari di creazione di chiavi KMS forniti in. [Crea chiave KMS](#ex-kms-key-create-col)

##### Concede le autorizzazioni per la decrittografia con il CML per un utente o un ruolo IAM
<a name="kms-key-grant-cmk-decrypt-for-user-or-role"></a>

La politica di esempio risultante concede agli utenti, ai ruoli o ai profili di istanza IAM il permesso di decrittografare utilizzando la CMK:

```
{
          "Sid": "Allow decrypt using the key",
          "Effect": "Allow",
          "Principal": {
              "AWS": [
                "arn:aws:iam::999999999999:role/roleA",
                "arn:aws:iam::999999999999:user/userB",
                "arn:aws:iam::999999999999:role/instanceProfileA"
              ]
          },
          "Action": [
              "kms:DescribeKey",
              "kms:Decrypt"
          ],
          "Resource": "*"
}
```

Per i parametri di esecuzione per creare questa policy con la chiave KMS Create change type, vedi [Crea chiave KMS](#ex-kms-key-create-col)

##### Concede le autorizzazioni per crittografare con il CML a un utente o un ruolo IAM
<a name="kms-key-grant-cmk-encrypt-for-user-or-role"></a>

La policy di esempio risultante concede agli utenti, ai ruoli o ai profili di istanza IAM il permesso di crittografare utilizzando il CMK:

```
{
          "Sid": "Allow encrypt using the key",
          "Effect": "Allow",
          "Principal": {
              "AWS": [
                "arn:aws:iam::999999999999:role/roleA",
                "arn:aws:iam::999999999999:user/userB",
                "arn:aws:iam::999999999999:role/instanceProfileA"
              ]
          },
          "Action": [
              "kms:DescribeKey",
              "kms:Encrypt",
              "kms:ReEncrypt*",
              "kms:GenerateDataKey",
              "kms:GenerateDataKeyWithoutPlaintext"
          ],
          "Resource": "*"
}
```

Per i parametri di esecuzione per creare questa policy con la chiave KMS Create change type, vedi [Crea chiave KMS](#ex-kms-key-create-col)

##### Concede le autorizzazioni per creare sovvenzioni con la CMK per un utente, un ruolo o un account IAM
<a name="kms-key-create-cmk-grants-for-user-role-or-account"></a>

Esempio di policy risultante:

```
{
          "Sid": "Allow grants",
          "Effect": "Allow",
          "Principal": {
              "AWS": [
                  "arn:aws:iam::999999999999:role/roleA",
                  "arn:aws:iam::888888888888:root"
              ]
          },
          "Action": [
              "kms:CreateGrant",
              "kms:ListGrants",
              "kms:RevokeGrant"
          ],
          "Resource": "*"
}
```

Per i parametri di esecuzione per creare questa politica con la chiave KMS Create change type, vedere [Crea chiave KMS](#ex-kms-key-create-col)

##### Consenti solo ai servizi AWS integrati con AWS KMS di eseguire l'operazione GRANT
<a name="kms-key-limit-grants-to-aws-services"></a>

Esempio di policy risultante:

```
{
          "Sid": "Allow grants",
          "Effect": "Allow",
          "Principal": {
              "AWS": "arn:aws:iam::999999999999:role/roleA"
          },
          "Action": [
              "kms:CreateGrant",
              "kms:ListGrants",
              "kms:RevokeGrant"
          ],
          "Resource": "*"
      },
      {
          "Sid": "Deny if grant is not for AWS resource",
          "Effect": "Deny",
          "Principal": {
              "AWS": "*"
          },
          "Action": [
              "kms:CreateGrant",
              "kms:ListGrants",
              "kms:RevokeGrant"
          ],
          "Resource": "*",
          "Condition": {
              "Bool": {
                  "kms:GrantIsForAWSResource": "false"
              }
          }
      } }
}
```

Per i parametri di esecuzione per creare questa politica con la chiave KMS Create change type, vedere [Crea chiave KMS](#ex-kms-key-create-col)

##### Imporre l'uso delle chiavi contestuali di crittografia nelle operazioni crittografiche
<a name="kms-key-enforce-encryption-context-keys"></a>

Politica di esempio risultante:

```
{
          "Effect": "Deny",
          "Principal": {
              "AWS": "*"
          },
          "Action": [
              "kms:CreateGrant",
              "kms:Decrypt",
              "kms:Encrypt",
              "kms:GenerateDataKey*",
              "kms:ReEncrypt"
          ],
          "Resource": "*",
          "Condition": {
              "Null": {
                  "kms:EncryptionContextKeys": "true"
              }
          }
}
```

Per i parametri di esecuzione per creare questa politica con la chiave KMS Create change type, vedere [Crea chiave KMS](#ex-kms-key-create-col)

##### Applica un elenco specifico di chiavi contestuali di crittografia nelle operazioni crittografiche
<a name="kms-key-enforce-encryption-context-keys-list"></a>

Politica di esempio risultante:

```
{
          "Effect": "Deny",
          "Principal": {
              "AWS": "*"
          },
          "Action": [
              "kms:CreateGrant",
              "kms:Decrypt",
              "kms:Encrypt",
              "kms:GenerateDataKey*",
              "kms:ReEncrypt"
          ],
          "Resource": "*",
          "Condition": {
              "StringEquals": {
                  "kms:EncryptionContextKeys": [
                    "Name",
                    "Application"
                  ]
              }
          }
      }
```

Per i parametri di esecuzione per creare questa politica con la chiave KMS Create change type, vedere [Crea chiave KMS](#ex-kms-key-create-col)

##### Consenti ai servizi AWS di accedere alla CMK creata
<a name="kms-key-allow-services"></a>

Esempio di policy risultante:

```
{
    "Effect": "Allow",
    "Principal": {
        "AWS": "*"
    },
    "Action": [
        "kms:ListGrants",
        "kms:CreateGrant",
        "kms:DescribeKey",
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "kms:ViaService":  [
              "ec2.us-west-2.amazonaws.com",
              "ecr.us-east-1.amazonaws.com"
            ],
            "kms:CallerAccount": "111122223333"
        }
    }
}
```

Per i parametri di esecuzione per creare questa politica con la chiave KMS Create change type, vedere [Crea chiave KMS](#ex-kms-key-create-col)

## Parametri di input di esecuzione
<a name="deployment-advanced-kms-key-create-input"></a>

Per informazioni dettagliate sui parametri di input di esecuzione, vedere[Schema per il tipo di modifica ct-1d84keiri1jhg](schemas.md#ct-1d84keiri1jhg-schema-section).

## Esempio: parametri obbligatori
<a name="deployment-advanced-kms-key-create-ex-min"></a>

```
{
  "DocumentName": "AWSManagedServices-CreateKMSKey",
  "Region": "us-east-1",
  "Parameters": {
    "Description": "Test key"
  }
}
```

## Esempio: tutti i parametri
<a name="deployment-advanced-kms-key-create-ex-max"></a>

```
{
  "DocumentName": "AWSManagedServices-CreateKMSKey",
  "Region": "us-west-2",
  "Parameters": {
    "Alias": "testkey",
    "EnableKeyRotation": true,
    "Description": "Test key for validation",
    "PendingWindow": 30,
    "IAMPrincipalsRequiringDecryptPermissions": [
      "arn:aws:iam::123456789012:user/myuser",
      "arn:aws:iam::123456789012:role/myrole"
    ],
    "IAMPrincipalsRequiringEncryptPermissions": [
      "arn:aws:iam::123456789012:user/myuser",
      "arn:aws:iam::123456789012:role/myrole"
    ],
    "IAMPrincipalsRequiringGrantsPermissions": [
      "arn:aws:iam::123456789012:user/myuser",
      "arn:aws:iam::123456789012:role/myrole",
      "987654321098"
    ],
    "LimitGrantsToAWSResources": true,
    "EnforceEncryptionContextKeys": true,
    "AllowedEncryptionContextKeys": [
      "App",
      "Environment"
    ],
    "AllowServiceRolesAccessKMSKeys": [
      "ec2.us-west-2.amazonaws.com",
      "s3.us-west-2.amazonaws.com"
    ],
    "Tags": [
      {
        "Key": "foo",
        "Value": "bar"
      }
    ]
  }
}
```