Chiave KMS | Crea - Riferimento al tipo di modifica avanzata AMS

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

Richiedi una chiave KMS con una politica di chiave predefinita.

Classificazione completa: Distribuzione | Componenti dello stack avanzati | Chiave KMS | Creazione

Dettagli del tipo di modifica

Cambia tipo ID

ct-1d84keiri1jhg

Versione corrente

1.0

Durata prevista dell'esecuzione

60 minuti

Approvazione AWS

Richiesto

Approvazione del cliente

Campo non obbligatorio

Modalità di esecuzione

Automatizzata

Informazioni aggiuntive

Crea una chiave KMS

Schermata di questo tipo di modifica nella console AMS:

Create KMS key change type with description, ID, version, and execution mode details.

Come funziona:

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

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

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

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

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

Come funziona:

  1. Usa Inline Create (esegui 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 esegui il create-rfc comando con i due file come input. Entrambi i metodi sono descritti qui.

  2. 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 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 obbligatori:

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
  2. 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, vedereConcede le autorizzazioni per la decrittografia con il CML per un utente o un ruolo IAM.

    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, vedereConcede le autorizzazioni per crittografare con il CML a un utente o un ruolo IAM.

    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, vedereConcede le autorizzazioni per creare sovvenzioni con la CMK per un utente, un ruolo o un account IAM.

    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, vedereConsenti solo ai servizi AWS integrati con AWS KMS di eseguire l'operazione GRANT.

    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, vedereImporre l'uso delle chiavi contestuali di crittografia nelle operazioni crittografiche.

    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, vedereApplica un elenco specifico di chiavi contestuali di crittografia nelle operazioni crittografiche.

    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, vedereConsenti ai servizi AWS di accedere alla CMK creata.

  3. 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
  4. 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" }
  5. 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.

  • 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, Management | Advanced stack components | KMS key | Elimina (è richiesta la revisione).

  • Questo tipo di modifica è ExecutionMode =Automatico, quindi non richiede la revisione manuale da parte delle operazioni AMS e dovrebbe essere eseguito più rapidamente di KMS Key: Create (revisione richiesta); tuttavia, se hai una situazione insolita, la versione manuale potrebbe funzionare meglio per te. Vedi KMS Key | Create (revisione richiesta).

  • Questo CT ha un nuovo parametro che fornisce ai servizi AWS specificati l'accesso alla chiave KMS. AllowServiceRolesAccess KMSKeys La modifica è stata apportata perché il ruolo del servizio di gruppo Autoscaling non è stato in grado di avviare le EC2 istanze 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 (KMS), AWS Key Management Service e AWS Key Management FAQs Service Concepts.

KMS Key Create le politiche risultanti

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 una chiave KMS

Concede le autorizzazioni per la decrittografia con il CML per un utente o un ruolo IAM

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 una chiave KMS

Concede le autorizzazioni per crittografare con il CML a un utente o un ruolo IAM

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 una chiave KMS

Concede le autorizzazioni per creare sovvenzioni con la CMK per un utente, un ruolo o un account IAM

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 una chiave KMS

Consenti solo ai servizi AWS integrati con AWS KMS di eseguire l'operazione GRANT

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 una chiave KMS

Imporre l'uso delle chiavi contestuali di crittografia nelle operazioni crittografiche

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 una chiave KMS

Applica un elenco specifico di chiavi contestuali di crittografia nelle operazioni crittografiche

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 una chiave KMS

Consenti ai servizi AWS di accedere alla CMK creata

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 una chiave KMS

Parametri di input di esecuzione

Per informazioni dettagliate sui parametri di input di esecuzione, vedereSchema per il tipo di modifica ct-1d84keiri1jhg.

Esempio: parametri obbligatori

{ "Description" : "Test description", "VpcId" : "vpc-12345678901234567", "Name" : "TestStack", "StackTemplateId" : "stm-enf1j068fhg34vugt", "TimeoutInMinutes" : 60, "Parameters" : { "Description" : "Test key" } }

Esempio: tutti i parametri

{ "Description" : "Test description", "VpcId" : "vpc-12345678", "Name" : "TestStack", "Tags" : [ { "Key" : "foo", "Value" : "bar" } ], "StackTemplateId" : "stm-enf1j068fhg34vugt", "TimeoutInMinutes" : 60, "Parameters" : { "Alias" : "testkey", "EnableKeyRotation" : "true", "Description" : "Test key", "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" ], "AllowServiceRolesAccessKMSKeys": [ "ec2.us-east-1.amazonaws.com" ] } }