View a markdown version of this page

Verschlüsselung im Ruhezustand - Amazon ECR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verschlüsselung im Ruhezustand

Wichtig

Dual-layer Die serverseitige Verschlüsselung mit AWS KMS (DSSE-KMS) ist nur in den AWS GovCloud (US) Regionen verfügbar.

Amazon ECR speichert Images in Amazon-S3-Buckets, die Amazon ECR verwaltet. Standardmäßig verwendet Amazon ECR serverseitige Verschlüsselung mit S3-managed Amazon-Verschlüsselungsschlüsseln, wodurch Ihre Daten im Ruhezustand mithilfe eines Verschlüsselungsalgorithmus verschlüsselt werden. AES-256 Dies erfordert kein Handeln Ihrerseits und wird ohne zusätzliche Kosten angeboten. Weitere Informationen finden Sie unter Schützen von Daten mithilfe von Server-Side Verschlüsselung mit Amazon S3-Managed Encryption Keys (SSE-S3) im Amazon Simple Storage Service-Benutzerhandbuch.

Für mehr Kontrolle über die Verschlüsselung Ihrer Amazon ECR-Repositorys können Sie die serverseitige Verschlüsselung mit in AWS Key Management Service () gespeicherten KMS-Schlüsseln verwenden.AWS KMS Wenn Sie Ihre Daten verschlüsseln, können Sie entweder den Standardschlüssel verwenden, der von Amazon ECR verwaltet wird Von AWS verwalteter Schlüssel, oder Ihren eigenen KMS-Schlüssel angeben (der als vom Kunden verwalteter Schlüssel bezeichnet wird). AWS KMS Weitere Informationen finden Sie unter Schützen von Daten mithilfe von Server-Side Verschlüsselung mit KMS-Schlüsseln, die in AWS KMS (SSE-KMS) gespeichert sind, im Amazon Simple Storage Service-Benutzerhandbuch.

Sie können wählen, ob Sie Ihre Amazon ECR-Bilder mit zweistufiger serverseitiger Verschlüsselung mit AWS KMS () verschlüsseln möchten. DSSE-KMS DSSE-KMSDie Option ist ähnlich wieSSE-KMS, wendet jedoch zwei einzelne Verschlüsselungsebenen anstelle einer Ebene an. Weitere Informationen finden Sie unter Verwenden der dualen serverseitigen Verschlüsselung mit AWS KMS Schlüsseln ()DSSE-KMS.

Jedes Amazon ECR-Repository hat eine Verschlüsselungskonfiguration, die bei der Erstellung des Repositorys festgelegt wird. Sie können für jedes Repository unterschiedliche Verschlüsselungskonfigurationen verwenden. Weitere Informationen finden Sie unter Erstellen eines privaten Amazon ECR-Repositorys zum Speichern von Bildern.

Wenn ein Repository mit aktivierter AWS KMS Verschlüsselung erstellt wird, wird ein KMS-Schlüssel verwendet, um den Inhalt des Repositorys zu verschlüsseln. Darüber hinaus fügt Amazon ECR dem KMS-Schlüssel einen AWS KMS Zuschuss hinzu, wobei das Amazon ECR-Repository der Hauptempfänger ist.

Im Folgenden erfahren Sie, wie Amazon ECR mit AWS KMS integriert ist, um Ihre Repositories zu verschlüsseln und zu entschlüsseln:

  1. Beim Erstellen eines Repositorys sendet Amazon ECR einen DescribeKey Aufruf an, AWS KMS um den Amazon-Ressourcennamen (ARN) des in der Verschlüsselungskonfiguration angegebenen KMS-Schlüssels zu validieren und abzurufen.

  2. Amazon ECR sendet zwei CreateGrant Anfragen AWS KMS zur Gewährung von Zuschüssen für den KMS-Schlüssel, damit Amazon ECR Daten mithilfe des Datenschlüssels verschlüsseln und entschlüsseln kann.

  3. Beim Push eines Images wird eine GenerateDataKey Anfrage an gestellt, die den KMS-Schlüssel AWS KMS angibt, der für die Verschlüsselung der Image-Ebene und des Manifests verwendet werden soll.

  4. AWS KMS generiert einen neuen Datenschlüssel, verschlüsselt ihn unter dem angegebenen KMS-Schlüssel und sendet den verschlüsselten Datenschlüssel, der zusammen mit den Metadaten der Bildebene und dem Image-Manifest gespeichert wird.

  5. Beim Abrufen eines Images wird eine https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html Entschlüsselungsanforderung an gestellt AWS KMS, in der der verschlüsselte Datenschlüssel angegeben wird.

  6. AWS KMS entschlüsselt den verschlüsselten Datenschlüssel und sendet den entschlüsselten Datenschlüssel an Amazon S3.

  7. Der Datenschlüssel wird zur Entschlüsselung der Image-Ebene verwendet, bevor die Image-Ebene abgerufen wird.

  8. Wenn ein Repository gelöscht wird, sendet Amazon ECR zwei RetireGrant Anfragen, AWS KMS um die für das Repository erstellten Zuschüsse zurückzuziehen.

Überlegungen

Die folgenden Punkte sollten bei der Verwendung der AWS KMS basierten Verschlüsselung (SSE-KMSoderDSSE-KMS) mit Amazon ECR berücksichtigt werden.

  • Wenn Sie Ihr Amazon ECR-Repository mit KMS-Verschlüsselung erstellen und keinen KMS-Schlüssel angeben, verwendet Amazon ECR standardmäßig einen Von AWS verwalteter Schlüssel mit dem Aliasaws/ecr. Dieser KMS-Schlüssel wird in Ihrem Konto erstellt, wenn Sie zum ersten Mal ein Repository mit aktivierter KMS-Verschlüsselung erstellen.

  • Die Konfiguration der Repository-Verschlüsselung kann nach der Erstellung eines Repositorys nicht geändert werden.

  • Wenn Sie die KMS-Verschlüsselung mit Ihrem eigenen KMS-Schlüssel verwenden, muss sich dieser Schlüssel in derselben Region wie Ihr Repository befinden.

  • Die Bewilligungen, die Amazon ECR in Ihrem Namen erstellt, sollten nicht widerrufen werden. Wenn Sie die Genehmigung widerrufen, die Amazon ECR die Erlaubnis erteilt, die AWS KMS Schlüssel in Ihrem Konto zu verwenden, kann Amazon ECR nicht auf diese Daten zugreifen, neue Bilder, die in das Repository übertragen werden, nicht verschlüsseln oder sie entschlüsseln, wenn sie abgerufen werden. Wenn Sie eine Förderung für Amazon ECR widerrufen, tritt die Änderung sofort in Kraft. Um Zugriffsrechte zu widerrufen, sollten Sie das Repository löschen, anstatt die Gewährung zu widerrufen. Wenn ein Repository gelöscht wird, hebt Amazon ECR die Förderungen in Ihrem Namen auf.

  • Die Verwendung von Schlüsseln ist mit Kosten verbunden. AWS KMS Weitere Informationen finden Sie unter AWS Key Management Service Preise.

  • Die Verwendung der dualen serverseitigen Verschlüsselung ist mit Kosten verbunden. Weitere Informationen finden Sie unter Amazon ECR-Preise

Erforderliche IAM-Berechtigungen

Wenn Sie ein Amazon ECR-Repository mit serverseitiger Verschlüsselung unter Verwendung von AWS KMS erstellen oder löschen, hängen die erforderlichen Berechtigungen von dem spezifischen KMS-Schlüssel ab, den Sie verwenden.

Erforderliche IAM-Berechtigungen bei Verwendung von Von AWS verwalteter Schlüssel für Amazon ECR

Wenn die AWS KMS Verschlüsselung für ein Amazon ECR-Repository aktiviert ist, aber kein KMS-Schlüssel angegeben ist, wird standardmäßig der Von AWS verwalteter Schlüssel für Amazon ECR verwendet. Wenn der AWS verwaltete KMS-Schlüssel für Amazon ECR zum Verschlüsseln eines Repositorys verwendet wird, kann jeder Principal, der die Berechtigung hat, ein Repository zu erstellen, auch die Verschlüsselung für das Repository aktivieren AWS KMS . Der IAM-Prinzipal, der das Repository löscht, muss jedoch die kms:RetireGrant-Berechtigung haben. Dadurch können die Zuschüsse, die dem AWS KMS Schlüssel bei der Erstellung des Repositorys hinzugefügt wurden, zurückgezogen werden.

Die folgende Beispiel-IAM-Richtlinie kann als Inline-Richtlinie zu einem Benutzer hinzugefügt werden, um sicherzustellen, dass er über die Mindestberechtigungen verfügt, die zum Löschen eines Repositorys mit aktivierter Verschlüsselung erforderlich sind. Der KMS-Schlüssel, der zur Verschlüsselung des Repositorys verwendet wird, kann über den Parameter resource angegeben werden.

JSON
{ "Version":"2012-10-17", "Id": "ecr-kms-permissions", "Statement": [ { "Sid": "AllowAccessToRetireTheGrantsAssociatedWithTheKey", "Effect": "Allow", "Action": [ "kms:RetireGrant" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/b8d9ae76-080c-4043-92EXAMPLE" } ] }

Erforderliche IAM-Berechtigungen bei Verwendung eines vom Kunden verwalteten Schlüssels

Beim Erstellen eines Repositorys mit aktivierter AWS KMS Verschlüsselung mithilfe eines vom Kunden verwalteten Schlüssels sind für den Benutzer oder die Rolle, der das Repository erstellt, Berechtigungen sowohl für die KMS-Schlüsselrichtlinie als auch für die IAM-Richtlinie erforderlich.

Bei der Erstellung Ihres eigenen KMS-Schlüssels können Sie entweder die von AWS KMS erstellte Standard-Schlüsselrichtlinie verwenden oder Ihre eigene angeben. Um sicherzustellen, dass der vom Kunden verwaltete Schlüssel vom Kontoinhaber verwaltet werden kann, sollte die Schlüsselrichtlinie für den KMS-Schlüssel alle AWS KMS Aktionen für den Root-Benutzer des Kontos zulassen. Die Schlüsselrichtlinie kann um zusätzliche Berechtigungen erweitert werden, doch sollte zumindest der Root-Benutzer die Berechtigung erhalten, den KMS-Schlüssel zu verwalten. Damit der KMS-Schlüssel nur für Anfragen verwendet werden kann, die von Amazon ECR stammen, können Sie den ViaService Bedingungsschlüssel kms: mit dem ecr.<region>.amazonaws.com Wert verwenden.

Das folgende Beispiel für eine Schlüsselrichtlinie gewährt dem AWS Konto (Root-Benutzer), dem der KMS-Schlüssel gehört, vollen Zugriff auf den KMS-Schlüssel. Weitere Informationen zu dieser Beispiel-Schlüsselrichtlinie finden Sie unter Erlaubt den Zugriff auf das AWS Konto und aktiviert IAM-Richtlinien im AWS Key Management Service Entwicklerhandbuch.

JSON
{ "Version":"2012-10-17", "Id": "ecr-key-policy", "Statement": [ { "Sid": "EnableIAMUserPermissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" } ] }

Der IAM-Benutzer, die IAM-Rolle oder das AWS Konto, das Ihre Repositorys erstellt kms:CreateGrantkms:RetireGrant, muss zusätzlich zu den erforderlichen Amazon ECR-Berechtigungen über die kms:DescribeKey Berechtigung, und verfügen.

Anmerkung

Die kms:RetireGrant-Berechtigung muss der IAM-Richtlinie des Benutzers oder der Rolle hinzugefügt werden, der/die das Repository erstellt. Die Berechtigungen kms:CreateGrant und kms:DescribeKey können entweder der Schlüsselrichtlinie für den KMS-Schlüssel oder der IAM-Richtlinie des Benutzers oder der Rolle, die das Repository erstellt, hinzugefügt werden. Weitere Informationen zur Funktionsweise von AWS KMS Berechtigungen finden Sie unter AWS KMS API-Berechtigungen: Referenz zu Aktionen und Ressourcen im Entwicklerhandbuch. AWS Key Management Service

Die folgende Beispiel-IAM-Richtlinie kann als Inline-Richtlinie zu einem Benutzer hinzugefügt werden, um sicherzustellen, dass er über die Mindestberechtigungen verfügt, die erforderlich sind, um ein Repository mit aktivierter Verschlüsselung zu erstellen und das Repository zu löschen, wenn er es nicht mehr benötigt. Der zur Verschlüsselung des Repositorys verwendete AWS KMS key -Schlüssel kann mit dem Ressourcen-Parameter angegeben werden.

JSON
{ "Version":"2012-10-17", "Id": "ecr-kms-permissions", "Statement": [ { "Sid": "AllowAccessToCreateAndRetireTheGrantsAssociatedWithTheKeyAsWellAsDescribeTheKey", "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:RetireGrant", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/b8d9ae76-080c-4043-92EXAMPLE" } ] }

Erlauben Sie einem Benutzer, KMS-Schlüssel in der Konsole aufzulisten, wenn er ein Repository erstellt

Wenn Sie die Amazon ECR-Konsole zum Erstellen eines Repositorys verwenden, können Sie einem Benutzer die Berechtigung erteilen, die vom Kunden verwalteten KMS-Schlüssel in der Region aufzulisten, wenn Sie die Verschlüsselung für das Repository aktivieren. Das folgende Beispiel für eine IAM-Richtlinie zeigt die Berechtigungen, die für die Auflistung Ihrer KMS-Schlüssel und -Aliase bei Verwendung der Konsole erforderlich sind.

JSON
{ "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:ListKeys", "kms:ListAliases", "kms:DescribeKey" ], "Resource": "*" } }

Überwachung der Amazon ECR-Interaktion mit AWS KMS

Sie können AWS CloudTrail es verwenden, um die Anfragen zu verfolgen, an die Amazon ECR in AWS KMS Ihrem Namen sendet. Die Protokolleinträge im CloudTrail Protokoll enthalten einen Verschlüsselungskontextschlüssel, um sie leichter identifizierbar zu machen.

Amazon ECR-Verschlüsselungskontext

Ein Verschlüsselungskontext ist ein Satz von Schlüssel-Wert-Paaren, der beliebige nicht geheime Daten enthält. Wenn Sie einen Verschlüsselungskontext in eine Anforderung zum Verschlüsseln von Daten einbeziehen, wird der Verschlüsselungskontext AWS KMS kryptografisch an die verschlüsselten Daten gebunden. Zur Entschlüsselung der Daten müssen Sie denselben Verschlüsselungskontext übergeben.

In seinen GenerateDataKey und https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html Decrypt-Anfragen an AWS KMS verwendet Amazon ECR einen Verschlüsselungskontext mit zwei Name-Wert-Paaren, die das verwendete Repository und den Amazon S3-Bucket identifizieren. Dies wird im folgenden Beispiel veranschaulicht. Die Namen variieren nicht, aber die kombinierten Verschlüsselungskontextwerte sind für jeden Wert unterschiedlich.

"encryptionContext": { "aws:s3:arn": "arn:aws:s3:::us-west-2-starport-manifest-bucket/EXAMPLE1-90ab-cdef-fedc-ba987BUCKET1/sha256:a7766145a775d39e53a713c75b6fd6d318740e70327aaa3ed5d09e0ef33fc3df", "aws:ecr:arn": "arn:aws:ecr:us-west-2:111122223333:repository/repository-name" }

Sie können den Verschlüsselungskontext verwenden, um diese kryptografischen Vorgänge in Auditaufzeichnungen und Protokollen, wie z. B. Amazon CloudWatch Logs, zu identifizieren, AWS CloudTrail und als Bedingung für die Autorisierung in Richtlinien und Zuweisungen.

Der Amazon ECR-Verschlüsselungskontext besteht aus zwei Name-Wert-Paaren.

  • aws:s3:arn - Das erste Name-Wert-Paar identifiziert den Bucket. Der Schlüssel lautet aws:s3:arn. Der Wert ist der Amazon Resource Name (ARN) des Amazon S3-Buckets.

    "aws:s3:arn": "ARN of an Amazon S3 bucket"

    Wenn die ARN des Buckets z. B. arn:aws:s3:::us-west-2-starport-manifest-bucket/EXAMPLE1-90ab-cdef-fedc-ba987BUCKET1/sha256:a7766145a775d39e53a713c75b6fd6d318740e70327aaa3ed5d09e0ef33fc3df ist, würde der Verschlüsselungskontext das folgende Paar enthalten.

    "arn:aws:s3:::us-west-2-starport-manifest-bucket/EXAMPLE1-90ab-cdef-fedc-ba987BUCKET1/sha256:a7766145a775d39e53a713c75b6fd6d318740e70327aaa3ed5d09e0ef33fc3df"
  • aws:ecr:arn – Das zweite Name-Wert-Paar identifiziert den Amazon Resource Name (ARN) des Repositorys. Der Schlüssel lautet aws:ecr:arn. Der Wert ist der ARN des Repositorys.

    "aws:ecr:arn": "ARN of an Amazon ECR repository"

    Wenn der ARN des Repository beispielsweise arn:aws:ecr:us-west-2:111122223333:repository/repository-name lautet, würde der Verschlüsselungskontext das folgende Paar enthalten.

    "aws:ecr:arn": "arn:aws:ecr:us-west-2:111122223333:repository/repository-name"

Fehlerbehebung

Wenn Sie ein Amazon ECR-Repository mit der Konsole löschen und das Repository erfolgreich gelöscht wurde, Amazon ECR aber nicht in der Lage ist, die zu Ihrem KMS-Schlüssel für Ihr Repository hinzugefügten Grants zurückzuziehen, erhalten Sie die folgende Fehlermeldung.

The repository [{repository-name}] has been deleted successfully but the grants created by the kmsKey [{kms_key}] failed to be retired

In diesem Fall können Sie die AWS KMS Zuschüsse für das Repository selbst zurückziehen.

Um in Rente zu gehen AWS KMS Zuschüsse für ein Repositorium manuell
  1. Listet die Zuschüsse für den AWS KMS Schlüssel auf, der für das Repository verwendet wird. Der key-id-Wert ist in der Fehlermeldung enthalten, die Sie von der Konsole erhalten. Sie können den list-keys Befehl auch verwenden, um Von AWS verwaltete Schlüssel sowohl die als auch die vom Kunden verwalteten KMS-Schlüssel in einer bestimmten Region in Ihrem Konto aufzulisten.

    aws kms list-grants \ --key-id b8d9ae76-080c-4043-9237-c815bfc21dfc --region us-west-2

    Die Ausgabe enthält einen EncryptionContextSubset mit dem Amazon Resource Name (ARN) Ihres Repositorys. Auf diese Weise können Sie feststellen, welche der zum Schlüssel hinzugefügten Förderungen diejenige ist, die Sie aufheben möchten. Der GrantId-Wert wird verwendet, wenn die Förderung im nächsten Schritt aufgehoben wird.

  2. Alle Zuschüsse für den AWS KMS Schlüssel, der für das Repository hinzugefügt wurde, werden zurückgezogen. Ersetzen Sie den Wert für GrantId durch die ID des Zuschusses aus der Ausgabe des vorherigen Schritts.

    aws kms retire-grant \ --key-id b8d9ae76-080c-4043-9237-c815bfc21dfc \ --grant-id GrantId \ --region us-west-2