Warum kann ich EC2-Instances nicht von meinem kopierten AMI aus starten?

Lesedauer: 4 Minute
0

Ich habe mein Amazon Machine Image (AMI) in ein anderes Amazon-Konto oder eine andere Amazon-Region kopiert. Ich kann jedoch keine Instance der Amazon Elastic Compute Cloud (Amazon EC2) vom kopierten AMI aus starten.

Kurzbeschreibung

Wenn Sie nicht über die folgenden Berechtigungen verfügen, können Sie keine Instances von einem kopierten AMI mit einem verschlüsselten Amazon Elastic Block Store (Amazon EBS) starten:

  • In der vom Kunden verwalteten Schlüsselrichtlinie des AWS Key Management Service (AWS KMS) fehlen die richtigen Prinzipals, die dem anfragenden Konto den Zugriff auf das AMI ermöglichen.
  • Die Entität des AWS Identity and Access Management (IAM) im anfragenden Konto verfügt nicht über die erforderlichen KMS-Berechtigungen für den kontoübergreifenden KMS-Schlüssel des Volumes.

Behebung

Aktivieren Sie den kontoübergreifenden Zugriff auf vorhandene benutzerdefinierte KMS-Schlüssel auf dem kopierten AMI

Eine ausführliche Anleitung finden Sie unter Sicheres Teilen von benutzerdefinierten Verschlüsselungsschlüsseln zwischen Konten mithilfe des AWS Key Management Service.

Einrichten der Berechtigungen für EC2-Instances für den Zugriff auf den AWS-KMS-Schlüssel

1.Öffnen Sie die AWS KMS-Konsole.
**Hinweis:**Vergewissern Sie sich, dass Sie sich in der richtigen Region befinden.

2.Wählen Sie Vom Kunden verwaltete Schlüssel und dann den entsprechenden Schlüssel aus.

3.Scrollen Sie unter Schlüsselrichtlinie zu Schlüsselbenutzer. Stellen Sie sicher, dass im Abschnitt Schlüsselbenutzer alle internen und externen Konten und Benutzer aufgeführt sind, die Zugriff auf den Schlüssel benötigen.

4.Wenn Konten oder Benutzer im Abschnitt Hauptbenutzer fehlen, wählen Sie unter Schlüsselrichtlinie die Option Zur Richtlinienansicht wechseln aus.
Hinweis: Wenn Sie die AWS KMS-Schlüsselrichtlinie zu einem beliebigen Zeitpunkt manuell bearbeitet haben, ist die Schlüsselrichtlinie nur in der Richtlinienansicht (JSON) verfügbar.

5.Stellen Sie sicher, dass die Anweisung Verwendung des Schlüssels zulassen in der Schlüsselrichtlinie korrekt ist. Die Anweisung muss den ARN aller Konten und Benutzer enthalten, die Zugriff auf den Schlüssel benötigen.

Im Folgenden finden Sie ein Beispiel für die Anweisung Verwendung des Schlüssels zulassen in der Standard-Schlüsselrichtlinie. Das Beispiel umfasst die folgenden ARNs:

  • Das externe AWS-Konto, das das kopierte AMI enthält.
  • Das übergeordnete Konto des AMI.
  • Einen Benutzer innerhalb des externen Kontos.

Eine Übersicht und ein Beispiel für die gesamte Standard-Schlüsselrichtlinie finden Sie unter Standard-Schlüsselrichtlinie.

{
	"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.Erstellen Sie eine IAM-Richtlinie und weisen Sie sie zu.

Erstellen Sie die IAM-Richtlinie und fügen Sie diese Ihrem IAM-Benutzer oder Ihrer IAM-Gruppe hinzu

Gehen Sie wie folgt vor, um eine IAM-Richtlinie zu erstellen und sie an Ihren IAM-Benutzer oder Ihre IAM-Gruppe anzuhängen:

Hinweis: Wenn Sie bereits eine IAM-Richtlinie erstellt haben, fahren Sie mit Schritt 7 fort, um die Richtlinie anzuhängen.

1.Melden Sie sich mit Ihrem Benutzer, der über Administratorrechte verfügt, bei der IAM-Konsole an.

2.Wählen Sie Richtlinien aus.

3.Wählen Sie Richtlinie erstellen.

4.Wählen Sie die Registerkarte JSON. Kopieren Sie die folgende beispielhafte JSON-Richtlinie und fügen Sie diese dann in das JSON-Textfeld ein. Ersetzen Sie arn:aws:kms:REGION:MAINACCOUNTNUMBER:key/1a345678-1234-1234-1234-EXAMPLE mit dem ARN Ihres AWS-KMS-Schlüssels.

{
	"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.Wählen Sie Richtlinie überprüfen aus. Der Richtlinien-Validator meldet alle Syntaxfehler.

6.Geben Sie auf der Seite zur Überprüfung KmsKeyUsagePolicy als Namen der Richtlinie ein. Sehen Sie sich die Richtlinienübersicht an, um die durch Ihre Richtlinie gewährten Berechtigungen zu sehen, und wählen Sie dann Richtlinie erstellen, um die Richtlinie zu speichern. Die neue Richtlinie wird in der Liste der verwalteten Richtlinien angezeigt und kann jetzt an Ihren IAM-Benutzer oder Ihre IAM-Gruppe angehängt werden.

7.Wählen Sie im Navigationsbereich der IAM-Konsole Richtlinien aus.

8.Geben Sie in das Suchfeld KmsKeyUsagePolicy ein. Markieren Sie dann das Kästchen neben KmsKeyUsagePolicy.

9.Wählen Sie Richtlinienaktionen und dann Anhängen aus.

10.Wählen Sie als Filter die Option Benutzer aus.

11.Geben Sie in das Suchfeld Ihren Benutzernamen ein. Markiere dann das Kästchen neben Ihrem Benutzernamen.

12.Wählen Sie Richtlinie anhängen aus.

Verwandte Informationen

Ein AMI kopieren

Schlüssel bearbeiten

Tutorial: Erstellen Sie Ihre erste vom Kunden verwaltete Richtlinie und hängen Sie diese an

Überprüfen von IAM-Richtlinien

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 9 Monaten