Perché non posso avviare le istanze EC2 dall’AMI copiata?

4 minuti di lettura
0

Ho copiato la mia Amazon Machine Image (AMI) su un altro account AWS o in un’altra regione AWS. Tuttavia, non riesco ad avviare istanze Amazon Elastic Compute Cloud (Amazon EC2) dall'AMI copiata.

Breve descrizione

Se non disponi delle seguenti autorizzazioni, non puoi avviare istanze da un'AMI copiata con un Amazon Elastic Block Store (Amazon EBS) crittografato:

  • Nella policy della chiave gestita dal cliente del Servizio di gestione delle chiavi AWS (AWS KMS) mancano i principali corretti che consentono all'account richiedente di accedere all'AMI.
  • L'entità AWS Identity and Access Management (IAM) nell'account richiedente non dispone delle autorizzazioni AWS KMS necessarie per la chiave AWS KMS multi-account per il volume in questione.

Risoluzione

Abilitare l'accesso multi-account alle chiavi AWS KMS personalizzate esistenti nell'AMI copiata

Per istruzioni dettagliate, consulta Share custom encryption keys more securely between accounts by using AWS Key Management Service.

Impostare autorizzazioni che consentano alle istanze EC2 di accedere alla chiave AWS KMS

1.    Apri la console AWS KMS.
Nota: assicurati di essere nella Regione corretta.

2.    Scegli Chiavi gestite dal cliente, quindi seleziona la chiave appropriata.

3.    In Policy della chiave scorri fino a Utenti chiave. Verifica che la sezione Utenti chiave elenchi tutti gli account interni ed esterni e gli utenti che richiedono l’accesso alla chiave.

4.    Se mancano account o utenti nella sezione Utenti chiave, nella sezione Policy della chiave, scegli Passa alla vista policy.
Nota: se hai modificato manualmente la policy della chiave AWS KMS in qualsiasi momento, la policy della chiave è disponibile solo nella vista policy (JSON).

5.    Verifica che l'istruzione Consenti l'uso della chiave nella policy della chiave sia corretta. La dichiarazione deve includere il nome della risorsa ARN di tutti gli account e gli utenti che richiedono l'accesso alla chiave.

Di seguito è riportato un frammento di esempio dell'istruzione Consenti l'uso della chiave nella policy della chiave predefinita. L'esempio include i seguenti ARN:

  • L'account AWS esterno che contiene l'AMI copiata.
  • L'account padre dell'AMI.
  • Un utente nell'account esterno.

Per una panoramica e un esempio dell'intera policy della chiave predefinita, consulta Policy della chiave predefinita.

{
	"Sid": "Allow use of the key",
	"Effect": "Allow",
	"Principal": {
		"AWS": [
			"arn:aws:iam::111122223333:root",
			"arn:aws:iam::444455556666:root",
			"arn:aws:iam::111122223333:user/UserA"
		]
	},
	"Action": [
		"kms:Encrypt",
		"kms:Decrypt",
		"kms:ReEncrypt*",
		"kms:GenerateDataKey*",
		"kms:DescribeKey"
	],
	"Resource": "*"
},   
{
	"Sid": "Allow attachment of persistent resources",
	"Effect": "Allow",
	"Principal": {
		"AWS": [
			"arn:aws:iam::111122223333:root",
			"arn:aws:iam::444455556666:root",
			"arn:aws:iam::111122223333:user/UserA"
		]
	},
	"Action": [
		"kms:CreateGrant",
		"kms:ListGrants",
		"kms:RevokeGrant"
	],
	"Resource": "*",
	"Condition": {
		"Bool": {
			"kms:GrantIsForAWSResource": "true"
		}
	}
}]
}

6.    Crea e assegna una policy IAM.

Creare la policy IAM e collegarla a un utente o gruppo IAM

Per creare una policy IAM e collegarla al tuo utente o gruppo IAM, completa i seguenti passaggi:

Nota: se hai già creato una policy IAM, procedi al passaggio 7 per collegarla. 

1.    Accedi alla console IAM con l’utente che dispone delle autorizzazioni di amministratore.

2.    Scegli Policy.

3.    Scegli Crea policy.

4.    Scegli la scheda JSON. Copia la seguente policy JSON di esempio, quindi immettila nella casella di testo JSON. Sostituisci arn:aws:kms:REGION:MAINACCOUNTNUMBER:key/1a345678-1234-1234-1234-EXAMPLE con l'ARN della tua chiave AWS KMS.

{
	"Version": "2012-10-17",
	"Statement": [{
		"Sid": "AllowUseOfTheKey",
		"Effect": "Allow",
		"Action": ["kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey"],
		"Resource": ["arn:aws:kms:REGION:MAINACCOUNTNUMBER:key/1a345678-1234-1234-1234-EXAMPLE"]
	}, {
		"Sid": "AllowAttachmentOfPersistentResources",
		"Effect": "Allow",
		"Action": ["kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant"],
		"Resource": ["arn:aws:kms:REGION:MAINACCOUNTNUMBER:key/1a345678-1234-1234-1234-EXAMPLE"],
		"Condition": {
			"Bool": {
				"kms:GrantIsForAWSResource": true
			}
		}
	}]
}

5.    Scegli Verifica policy. Il Validatore di policy segnala eventuali errori di sintassi.

6.    Nella pagina Revisione inserisci KmsKeyUsagePolicy come nome della policy. Consulta il Riepilogo della policy per visualizzare le autorizzazioni concesse dalla policy, quindi scegli Crea policy per salvarla. La nuova policy viene visualizzata nell'elenco delle policy gestite ed è pronta per essere collegata a un utente o gruppo IAM.

7.    Nel riquadro di navigazione della console IAM, scegli Policy.

8.    Nella casella di ricerca, inserisci KmsKeyUsagePolicy. Quindi, seleziona la casella accanto a KmsKeyUsagePolicy.

9.    Scegli Operazioni delle policy, quindi scegli Collega.

10.   Per Filtro, scegli Utenti.

11.    Nella casella di ricerca, inserisci il tuo nome utente. Quindi, seleziona la casella accanto al tuo nome utente.

12.    Scegli Collega policy.

Informazioni correlate

Copiare un'AMI

Editing keys

Tutorial: Creazione e collegamento della prima policy gestita dal cliente

Convalida delle policy IAM

AWS UFFICIALE
AWS UFFICIALEAggiornata 9 mesi fa