

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.

# Berechtigungen mit den geringsten Rechten
<a name="least-privilege"></a>

Da Ihre KMS-Schlüssel vertrauliche Informationen schützen, empfehlen wir, dem Prinzip des Zugriffs mit den geringsten Rechten zu folgen. Delegieren Sie die für die Ausführung einer Aufgabe erforderlichen Mindestberechtigungen, wenn Sie Ihre wichtigsten Richtlinien definieren. Lassen Sie alle Aktionen (`kms:*`) für eine KMS-Schlüsselrichtlinie nur zu, wenn Sie beabsichtigen, die Berechtigungen mit zusätzlichen IAM-Richtlinien weiter einzuschränken. [Wenn Sie beabsichtigen, Berechtigungen mit IAM-Richtlinien zu verwalten, schränken Sie ein, wer IAM-Richtlinien erstellen und an IAM-Prinzipale anhängen darf, und achten Sie auf Richtlinienänderungen.](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudwatch-alarms-for-cloudtrail.html#cloudwatch-alarms-for-cloudtrail-iam-policy-changes)

Wenn Sie alle Aktionen (`kms:*`) sowohl in der Schlüsselrichtlinie als auch in der IAM-Richtlinie zulassen, verfügt der Prinzipal sowohl über Administratorrechte als auch über Nutzungsberechtigungen für den KMS-Schlüssel. Aus Sicherheitsgründen empfehlen wir, diese Berechtigungen nur an bestimmte Prinzipale zu delegieren. Sie können dies tun, indem Sie den Prinzipal in der Schlüsselrichtlinie explizit benennen oder indem Sie einschränken, an welche Prinzipale die IAM-Richtlinie angehängt ist. Sie können auch [Bedingungsschlüssel verwenden, um Berechtigungen](policy-conditions.md) einzuschränken. Beispielsweise können Sie die verwenden, [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag)um alle Aktionen zuzulassen, wenn der Principal, der den API-Aufruf durchführt, das in der Bedingungsregel angegebene Tag hat.

Weitere Informationen darüber, wie Richtlinienaussagen bewertet werden AWS, finden Sie unter [Bewertungslogik für Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) im *IAM-Benutzerhandbuch*. Wir empfehlen, dieses Thema zu lesen, bevor Sie Richtlinien verfassen, um die Wahrscheinlichkeit zu verringern, dass Ihre Richtlinie unbeabsichtigte Auswirkungen hat, wie z. B. die Gewährung von Zugriff für Prinzipale, die keinen Zugriff haben sollten.

**Tipp**  
Wenn Sie eine Anwendung in einer Umgebung außerhalb der Produktionsumgebung testen, verwenden Sie [IAM Access Analyzer, um Ihren IAM-Richtlinien die geringsten Rechte](https://aws.amazon.com/iam/features/analyze-access/) zuzuweisen.

Wenn Sie IAM-Benutzer anstelle von IAM-Rollen verwenden, empfehlen wir dringend, die AWS [Multi-Faktor-Authentifizierung](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html) (MFA) zu aktivieren, um die Sicherheitsanfälligkeit langfristiger Anmeldeinformationen zu verringern. Über MFA können Sie die folgenden Aktionen ausführen: 
+ Erfordern Sie, dass Benutzer ihre Anmeldeinformationen mit MFA validieren, bevor sie privilegierte Aktionen ausführen, z. B. das Löschen von Schlüsseln planen.
+ Teilen Sie den Besitz eines Administratorkontokennworts und eines MFA-Geräts auf einzelne Personen auf, um die geteilte Autorisierung zu implementieren.

**Weitere Informationen**
+ [AWS verwaltete Richtlinien für Jobfunktionen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)
+ [Techniken zum Erstellen von IAM-Richtlinien mit geringsten Berechtigungen](https://aws.amazon.com//blogs/security/techniques-for-writing-least-privilege-iam-policies/)

## Implementieren der geringsten Berechtigungen
<a name="key-policy-least-privilege"></a>

Wenn Sie einem AWS Dienst die Erlaubnis zur Verwendung eines KMS-Schlüssels erteilen, stellen Sie sicher, dass die Berechtigung nur für die Ressourcen gilt, auf die der Dienst in Ihrem Namen zugreifen muss. Diese Strategie der geringsten Rechte trägt dazu bei, die unbefugte Verwendung eines KMS-Schlüssels zu verhindern, wenn Anfragen zwischen AWS Diensten weitergeleitet werden.

Um eine Strategie mit den geringsten Rechten zu implementieren, empfehlen wir die Verwendung von Bedingungsschlüsseln für den AWS KMS Verschlüsselungskontext und den globalen Quell-ARN- oder Quellkonto-Bedingungsschlüssel.

### Verwenden von Verschlüsselungskontext-Bedingungsschlüsseln
<a name="least-privilege-encryption-context"></a>

Die effektivste Methode zur Implementierung von Berechtigungen mit den geringsten Rechten bei der Nutzung von AWS KMS Ressourcen besteht darin, die [kms:EncryptionContextKeys](conditions-kms.md#conditions-kms-encryption-context-keys)Bedingungsschlüssel [kms:EncryptionContext:*context-key*](conditions-kms.md#conditions-kms-encryption-context)oder in die Richtlinie aufzunehmen, die es den Prinzipalen ermöglicht, AWS KMS kryptografische Operationen aufzurufen. Diese Bedingungsschlüssel sind besonders effektiv, da sie die Berechtigung mit dem [Verschlüsselungskontext](encrypt_context.md) verknüpfen, der an den Chiffretext gebunden ist, wenn die Ressource verschlüsselt wird. 

[Verwenden Sie Schlüssel für Bedingungen für den Verschlüsselungskontext nur, wenn es sich bei der Aktion in der Richtlinienanweisung um eine AWS KMS symmetrische kryptografische Operation handelt, die einen `EncryptionContext` Parameter benötigt, z. B. Operationen wie [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)oder Decrypt. [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) (Eine Liste der unterstützten Operationen finden Sie unter [kms:EncryptionContext:*context-key*](conditions-kms.md#conditions-kms-encryption-context) oder [kms:EncryptionContextKeys](conditions-kms.md#conditions-kms-encryption-context-keys).) Wenn Sie diese Bedingungsschlüssel verwenden, um z. B. andere Operationen zuzulassen, wird der [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)Zugriff verweigert.

Legen Sie den Wert auf den Verschlüsselungskontext fest, den der Service beim Verschlüsseln der Ressource verwendet. Diese Informationen finden Sie normalerweise im Kapitel zur Sicherheit in der Service-Dokumentation. Beispielsweise identifiziert der [Verschlüsselungskontext für AWS Proton](https://docs.aws.amazon.com/proton/latest/adminguide/data-protection.html#encryption-context) die AWS Proton-Ressource und die zugehörige Vorlage. Der [Verschlüsselungskontext für AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html#security-encryption-encryption-context) identifiziert das Geheimnis und seine Version. Der [Verschlüsselungskontext für Amazon Location](https://docs.aws.amazon.com/location/latest/developerguide/encryption-at-rest.html#location-encryption-context) identifiziert den Tracker oder die Erfassung. 

Die folgende Schlüsselrichtlinien-Beispielanweisung ermöglicht es Amazon Location Service, Erteilungen im Namen autorisierter Benutzer zu erstellen. Diese Richtlinienanweisung schränkt die Berechtigung ein, indem sie die Schlüssel [kms: ViaService](conditions-kms.md#conditions-kms-via-service), [kms:](conditions-kms.md#conditions-kms-caller-account) und `kms:EncryptionContext:context-key` condition verwendetCallerAccount, um die Berechtigung an eine bestimmte Tracker-Ressource zu binden.

```
{
  "Sid": "Allow Amazon Location to create grants on behalf of authorized users",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/LocationTeam"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "kms:ViaService": "geo.us-west-2.amazonaws.com",
      "kms:CallerAccount": "111122223333",
      "kms:EncryptionContext:aws:geo:arn": "arn:aws:geo:us-west-2:111122223333:tracker/SAMPLE-Tracker"
    }
  }
}
```

### Verwenden der Bedingungsschlüssel `aws:SourceArn` oder `aws:SourceAccount`
<a name="least-privilege-source-arn"></a>

Wenn der Prinzipal in einer Schlüsselrichtlinien-Anweisung ein [AWS -Service-Prinzipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services) ist, empfehlen wir dringend, zusätzlich zum Bedingungsschlüssel `kms:EncryptionContext:context-key` die globalen Bedingungsschlüssel [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) oder [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) zu verwenden. Die ARN- und Kontowerte sind nur dann im Autorisierungskontext enthalten, wenn eine Anfrage AWS KMS von einem anderen AWS Dienst eingeht. Diese Kombination von Bedingungen implementiert die geringsten Berechtigungen und verhindert ein potenzielles [Szenario des verwirrten Stellvertreters](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). Dienstprinzipale werden normalerweise nicht als Prinzipale in einer wichtigen Richtlinie verwendet, aber für einige AWS Dienste, z. B. AWS CloudTrail, ist dies erforderlich. 

Um die globalen Bedingungsschlüssel `aws:SourceArn` oder `aws:SourceAccount` zu verwenden, legen Sie den Wert auf den Amazon-Ressourcennamen (ARN) oder das Konto der Ressource fest, die verschlüsselt wird. In einer Schlüsselrichtlinien-Anweisung, die AWS CloudTrail die Berechtigung zum Verschlüsseln eines Trail gibt, legen Sie den Wert von `aws:SourceArn` auf den ARN des Trail fest. Nutzen Sie, wann immer möglich, den spezifischeren Wert `aws:SourceArn`. Legen Sie den Wert auf den ARN oder ein ARN-Muster mit Platzhalterzeichen fest. Wenn Sie den ARN der Ressource nicht kennen, verwenden Sie stattdessen `aws:SourceAccount`.

**Anmerkung**  
Wenn ein Ressourcen-ARN Zeichen enthält, die in einer AWS KMS Schlüsselrichtlinie nicht zulässig sind, können Sie diesen Ressourcen-ARN nicht im Wert des `aws:SourceArn` Bedingungsschlüssels verwenden. Verwenden Sie stattdessen den Bedingungsschlüssel `aws:SourceAccount`. Weitere Informationen zu Dokumentenregeln für Schlüsselrichtlinien finden Sie unter [Schlüsselrichtlinienformat](key-policy-overview.md#key-policy-format).

In der folgenden Beispiel-Schlüsselrichtlinie ist der Prinzipal, der die Berechtigungen erhält, der AWS CloudTrail -Service-Prinzipal `cloudtrail.amazonaws.com`. Um die geringsten Berechtigungen zu implementieren, verwendet diese Richtlinie die Bedingungsschlüssel `aws:SourceArn` und `kms:EncryptionContext:context-key` Die Richtlinienanweisung ermöglicht CloudTrail die Verwendung des KMS-Schlüssels zur [Generierung des Datenschlüssels](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html), der zur Verschlüsselung eines Trails verwendet wird. Die Bedingungen `aws:SourceArn` und `kms:EncryptionContext:context-key` werden unabhängig ausgewertet. Jede Anforderung, den KMS-Schlüssel für die angegebene Produktion zu verwenden, muss beide Bedingungen erfüllen.

Um die Berechtigung des Services auf den `finance`-Trail im Beispielkonto (111122223333) und die Region `us-west-2` zu beschränken, legt diese Richtlinienanweisung den Bedingungsschlüssel `aws:SourceArn` auf den ARN eines bestimmten Trail fest. Die Bedingungsanweisung verwendet den [ArnEquals](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN)Operator, um sicherzustellen, dass jedes Element im ARN beim Abgleich unabhängig ausgewertet wird. Das Beispiel verwendet den Bedingungsschlüssel `kms:EncryptionContext:context-key` auch, um die Berechtigung auf Trail in einem bestimmten Konto und einer bestimmten Region zu beschränken. 

Bevor Sie diese Schlüsselrichtlinie verwenden, ersetzen Sie die Beispiel-Konto-ID, die Region und den Trail-Namen durch gültige Werte aus Ihrem Konto.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCloudTrailToEncryptLogs",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudtrail.amazonaws.com"
      },
      "Action": "kms:GenerateDataKey",
      "Resource": "*",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": [
            "arn:aws:cloudtrail:us-west-2:111122223333:trail/finance"
          ]
        },
        "StringLike": {
          "kms:EncryptionContext:aws:cloudtrail:arn": [
            "arn:aws:cloudtrail:*:111122223333:trail/*"
          ]
        }
      }
    }
  ]
}
```

------