Konfigurieren der Codesignatur für AWS Lambda - AWS Lambda

Konfigurieren der Codesignatur für AWS Lambda

Codesignatur für AWS Lambda hilft sicherzustellen, dass nur vertrauenswürdiger Code in Ihren Lambda-Funktionen ausgeführt wird. Wenn Sie die Codesignatur für eine Funktion aktivieren, überprüft Lambda jede Codebereitstellung und überprüft, ob das Codepaket von einer vertrauenswürdigen Quelle signiert wurde.

Anmerkung

Funktionen, die als Container-Images definiert sind, unterstützen keine Codesignatur.

Um die Codeintegrität zu überprüfen, erstellen Sie mit AWS Signer digital signierte Code-Pakete für Funktionen und Ebenen. Wenn ein Benutzer versucht, ein Code-Paket bereitzustellen, führt Lambda Validierungsprüfungen für das Codepaket durch, bevor es die Bereitstellung akzeptiert. Da die Validierungsprüfungen von Codesignatur zum Zeitpunkt der Bereitstellung ausgeführt werden, gibt es keine Auswirkungen auf die Ausführung der Funktion.

Sie verwenden AWS Signer auch, um Signaturprofile zu erstellen. Sie verwenden ein Signaturprofil, um das signierte Codepaket zu erstellen. Verwenden Sie AWS Identity and Access Management (IAM), um zu steuern, wer Codepakete signieren und Signaturprofile erstellen kann. Weitere Informationen finden Sie unter Authentication and Access Control im AWS-Entwicklerhandbuch.

Um die Codesignatur für eine Funktion zu aktivieren, erstellen Sie eine Codesignatur-Konfiguration und hängen sie an die Funktion an. Eine Codesignatur-Konfiguration definiert eine Liste der zulässigen Signaturprofile und die Richtlinienaktion, die durchgeführt werden soll, wenn eine der Validierungsprüfungen fehlschlägt.

Lambda-Ebenen folgen demselben signierten Code-Paketformat wie Funktionscode-Pakete. Wenn Sie einer Funktion, für die die Codesignatur von Code aktiviert ist, überprüft Lambda, ob die Ebene von einem zulässigen Signaturprofil signiert wurde. Wenn Sie die Codesignatur für eine Funktion aktivieren, müssen alle Ebenen, die der Funktion hinzugefügt werden, auch von einem der zulässigen Signaturprofile signiert werden.

Verwenden Sie IAM, um zu steuern, wer Codesignatur-Konfigurationen erstellen kann. In der Regel erlauben Sie nur bestimmten administrativen Benutzern, diese Fähigkeit zu nutzen. Darüber hinaus können Sie IAM-Richtlinien einrichten, die durchsetzen, dass Entwickler nur Funktionen erstellen, für die die Codesignatur aktiviert ist.

Sie können die Codesignatur so konfigurieren, dass Änderungen in aufgezeichnet werde AWS CloudTrail. Erfolgreiche und blockierte Bereitstellungen für Funktionen werden in CloudTrail mit Informationen über die Signatur- und Validierungsprüfungen aufgezeichnet.

Sie können die Codesignatur für Ihre Funktionen mit der Lambda-Konsole, dem AWS CLI (AWS Command Line Interface), AWS CloudFormation und dem AWS Serverless Application Model (AWS SAM) konfigurieren.

Für die Verwendung von AWS Signer oder Codesignatur für AWS Lambda fallen keine zusätzlichen Gebühren an.

Signaturvalidierung

Lambda führt die folgenden Validierungsprüfungen durch, wenn Sie ein signiertes Codepaket für Ihre Funktion bereitstellen:

  1. Integrität – Überprüft, dass das Codepaket seit seiner Unterzeichnung nicht geändert wurde. Lambda vergleicht den Hash des Pakets mit dem Hash aus der Signatur.

  2. Ablauf – Bestätigt, dass die Signatur des Codepakets nicht abgelaufen ist.

  3. Diskrepanz – Bestätigt, dass das Codepaket mit einem der zulässigen Signaturprofile für die Lambda-Funktion signiert ist. Eine Diskrepanz tritt auch auf, wenn keine Signatur vorhanden ist.

  4. Widerruf – Bestätigt, dass die Signatur des Codepakets nicht widerrufen wurde.

Die in der Codesignatur-Konfiguration definierte Richtlinie zur Signaturüberprüfung legt fest, welche der folgenden Aktionen Lambda durchführt, wenn eine der Validierungsprüfungen fehlschlägt:

  • Warnung – Lambda ermöglicht die Bereitstellung des Codepakets, gibt jedoch eine Warnung aus. Lambda gibt eine neue Amazon-CloudWatch-Metrik aus und speichert die Warnung auch im CloudTrail-Protokoll.

  • Durchsetzung – Lambda gibt eine Warnung aus (wie bei der Warn-Aktion) und blockiert die Bereitstellung des Codepakets.

Sie können die Richtlinie für Ablauf-, Diskrepanz- und Widerrufsvalidierung konfigurieren. Beachten Sie, dass Sie eine Richtlinie für die Integritätsvalidierung nicht konfigurieren können. Schlägt die Integritätsvalidierung fehl, blockiert Lambda die Bereitstellung.

Voraussetzungen für die Konfiguration

Bevor Sie die Codesignatur für eine Lambda-Funktion konfigurieren können, verwenden Sie AWS Signer, um Folgendes zu tun:

  • Erstellen Sie ein oder mehrere Signaturprofile.

  • Verwenden Sie ein Signaturprofil, um ein signiertes Codepaket für Ihre Funktion zu erstellen.

Weitere Informationen finden Sie unter Creating Signing Profiles (Console) im AWS Signer-Entwicklerhandbuch.

Erstellen von Codesignatur-Konfigurationen

Mit einer Codesignatur-Konfiguration wird eine Liste der zulässigen Signaturprofile und die Richtlinie für Signaturvalidierung definiert.

So erstellen Sie eine Codesignatur-Konfiguration (Konsole)
  1. Öffnen Sie die Seite Codesignatur-Konfigurationen der Lambda-Konsole.

  2. Wählen Sie Create configuration (Konfiguration erstellen).

  3. Geben Sie unter Description (Beschreibung) einen aussagekräftigen Namen für die Konfiguration ein.

  4. Fügen Sie der Konfiguration unter Signaturprofile bis zu 20 Signaturprofile hinzu.

    1. Wählen Sie für ARN der Signaturprofilversion den Amazon-Ressourcennamen (ARN) einer Profilversion aus oder geben Sie den ARN ein.

    2. Um ein zusätzliches Signaturprofil hinzuzufügen, wählen Sie Signaturprofil hinzufügen aus.

  5. Wählen Sie unter Richtlinie zur Signaturvalidierung die Option Warnen oder Durchsetzen aus.

  6. Wählen Sie Create configuration (Konfiguration erstellen).

Aktualisieren der Codesignatur-Konfiguration

Wenn Sie eine Codesignatur-Konfiguration aktualisieren, wirken sich die Änderungen auf die zukünftigen Bereitstellungen von Funktionen aus, an die die Codesignatur-Konfiguration angehängt ist.

So aktualisieren Sie eine Codesignatur-Konfiguration (Konsole)
  1. Öffnen Sie die Seite Codesignatur-Konfigurationen der Lambda-Konsole.

  2. Wählen Sie eine zu aktualisierende Codesignatur-Konfiguration aus und klicken Sie dann auf Bearbeiten.

  3. Geben Sie unter Description (Beschreibung) einen aussagekräftigen Namen für die Konfiguration ein.

  4. Fügen Sie der Konfiguration unter Signaturprofile bis zu 20 Signaturprofile hinzu.

    1. Wählen Sie für ARN der Signaturprofilversion den Amazon-Ressourcennamen (ARN) einer Profilversion aus oder geben Sie den ARN ein.

    2. Um ein zusätzliches Signaturprofil hinzuzufügen, wählen Sie Signaturprofil hinzufügen aus.

  5. Wählen Sie unter Richtlinie zur Signaturvalidierung die Option Warnen oder Durchsetzen aus.

  6. Wählen Sie Save Changes.

Löschen einer Codesignatur-Konfiguration

Sie können eine Codesignatur-Konfiguration nur löschen, wenn sie keine Funktionen verwenden.

So löschen Sie eine Codesignaturigning-Konfiguration (Konsole)
  1. Öffnen Sie die Seite Codesignatur-Konfigurationen der Lambda-Konsole.

  2. Wählen Sie eine zu löschende Codesignatur-Konfiguration aus und klicken Sie dann auf Löschen.

  3. Um dies zu bestätigen, wählen Sie erneut Löschen .

Aktivieren der Codesignatur für eine Funktion

Um die Codesignatur für eine Funktion zu aktivieren, verknüpfen Sie eine Codesignatur-Konfiguration mit der Funktion.

So verknüpfen Sie eine Codesignatur-Konfiguration mit einer Funktion (Konsole)
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie die Funktion aus, für die Sie die Codesignatur aktivieren möchten.

  3. Wählen Sie unter Codesignatur-Konfiguration die Option Bearbeiten aus.

  4. Wählen Sie i n Codesignatur bearbeiten eine Codesignatur-Konfiguration für diese Funktion aus.

  5. Wählen Sie Save aus.

Konfigurieren von IAM-Richtlinien

Um einem Benutzer die Berechtigung zum Zugriff auf die Codesignatur-API-Vorgänge zu erteilen, fügen Sie der Benutzerrichtlinie eine oder mehrere Richtlinienanweisungen bei. Weitere Informationen zu Benutzerrichtlinien finden Sie unter Identitätsbasierte IAM-Richtlinien für Lambda.

Die folgende Beispiel-Richtlinienanweisung gewährt die Berechtigung zum Erstellen, Aktualisieren und Abrufen von Codesignatur-Konfigurationen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:CreateCodeSigningConfig", "lambda:UpdateCodeSigningConfig", "lambda:GetCodeSigningConfig" ], "Resource": "*" } ] }

Administratoren können den CodeSigningConfigArn-Bedingungsschlüssel verwenden, um die Codesignatur-Konfigurationen anzugeben, mit denen Entwickler Ihre Funktionen erstellen oder aktualisieren müssen.

Die folgende Beispielrichtlinienanweisung gewährt die Berechtigung zum Erstellen einer Funktion. Die Richtlinienanweisung enthält eine lambda:CodeSigningConfigArn-Bedingung, um die zulässige Konfiguration für die Codesignierung anzugeben. Lambda blockiert alle CreateFunction-API-Anfrage, wenn der CodeSigningConfigArn-Paramter fehlt oder nicht mit dem Wert in der Bedingung übereinstimmt.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowReferencingCodeSigningConfig", "Effect": "Allow", "Action": [ "lambda:CreateFunction", ], "Resource": "*", "Condition": { "StringEquals": { "lambda:CodeSigningConfigArn": “arn:aws:lambda:us-west-2:123456789012:code-signing-config:csc-0d4518bd353a0a7c6” } } } ] }

Konfigurieren der Codesignatur mit der Lambda API

Um Codesignatur-Konfigurationen mit AWS CLI oder AWS SDK zu verwalten, verwenden Sie die folgenden API-Vorgänge:

Um die Codesignatur-Konfiguration für eine Funktion zu verwalten, verwenden Sie die folgenden API-Vorgänge: