

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.

# Konfiguration von Berechtigungen mit den geringsten Rechten für Ressourcen, die bereitgestellt werden über CloudFormation
<a name="permissions-cloudformation-provisioned-resources"></a>

AWS CloudFormation ermöglicht es Ihnen, viele verschiedene Arten von AWS Ressourcen bereitzustellen. Bereitgestellte Ressourcen benötigen eigene Berechtigungen, um wie vorgesehen zu funktionieren und um zu konfigurieren, wer Zugriff auf diese Ressourcen hat. Im vorherigen Kapitel wurden Optionen für die Konfiguration von Zugriffs- und Nutzungsberechtigungen für den CloudFormation Dienst beschrieben. In diesem Kapitel wird beschrieben, wie Sie das Prinzip der geringsten Rechte auf Ressourcen anwenden können, die über CloudFormation bereitgestellt werden.

In diesem Leitfaden wäre es praktisch unmöglich, die Sicherheitsempfehlungen und bewährten Methoden für jeden AWS Ressourcentyp zu überprüfen, über den bereitgestellt werden kann. CloudFormation Wenn Sie Fragen zu einem bestimmten Dienst haben, empfehlen wir Ihnen, die Dokumentation für diesen Dienst zu lesen. Die meisten AWS-Service Dokumente enthalten einen Sicherheitsabschnitt und Informationen zu den Berechtigungen, die für die Nutzung dieses Dienstes erforderlich sind. Eine vollständige Liste der AWS-Service Dokumentation finden Sie unter [AWS Dokumentation](https://docs.aws.amazon.com/index.html).

Im Folgenden finden Sie allgemeine, dienstunabhängige Schritte, die Sie ergreifen können, um CloudFormation Vorlagen zu erstellen, die dem Prinzip der geringsten Rechte entsprechen:

1. Erstellen Sie eine Liste der Ressourcen, mit denen Sie die Bereitstellung planen. CloudFormation

1. In der [AWS Dokumentation](https://docs.aws.amazon.com/index.html) finden Sie die entsprechenden Dienste und lesen Sie sich die Abschnitte zu Sicherheit und Zugriffsverwaltung durch. Dies hilft Ihnen, die dienstspezifischen Anforderungen und Empfehlungen zu verstehen.

1. Verwenden Sie die Informationen, die Sie in den vorherigen Schritten gesammelt haben, um CloudFormation Vorlagen und zugehörige Richtlinien zu entwerfen, die nur die erforderlichen Berechtigungen zulassen und alle anderen verweigern.

Als Nächstes gibt dieser Leitfaden anhand eines realen Anwendungsfalls ein Beispiel dafür, wie Sie das Prinzip der geringsten Rechte in CloudFormation Vorlagen anwenden können.

## Beispiel: Amazon S3 S3-Bucket zum Speichern von Pipeline-Artefakten
<a name="example-s3-bucket"></a>

In diesem Beispiel wird ein [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) -Bucket erstellt, der zum Speichern von [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)Projektartefakten verwendet wird. [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)verwendet diese gespeicherten Artefakte. Sie können diesen S3-Bucket über Servicerollen zulassen CodeBuild und CodePipeline darauf zugreifen, und Sie kontrollieren diesen Zugriff mithilfe einer Amazon S3 [S3-Bucket-Richtlinie](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html). Im Folgenden sind die in diesem Beispiel verwendeten Ressourcennamen aufgeführt:
+ `Deployfiles_build`ist der Name des CodeBuild Projekts.
+ `Deployment-Pipeline`ist der Name der Pipeline in CodePipeline.

*Definieren Sie den Amazon S3 S3-Bucket*

Zunächst definieren Sie den S3-Bucket in der CloudFormation Vorlage, bei der es sich um eine YAML-formatierte Textdatei handelt.

```
amzn-s3-demo-bucket:
  Type: AWS::S3::Bucket
  Properties:
    PublicAccessBlockConfiguration:
        BlockPublicAcls: true
        BlockPublicPolicy: true
        IgnorePublicAcls: true
        RestrictPublicBuckets: true
```

*Definieren Sie die Amazon S3 S3-Bucket-Richtlinie*

Als Nächstes erstellen Sie in der CloudFormation Vorlage eine Bucket-Richtlinie, die nur dem `Deployfiles_build` Projekt und der `Deployment-Pipeline` Pipeline den Zugriff auf den Bucket ermöglicht.

```
MyBucketPolicy:
  Type: AWS::S3::BucketPolicy
  Properties: 
    Bucket: !Ref amzn-s3-demo-bucket
    PolicyDocument:
      Version: "2012-10-17"
      Statement:
      - Sid: "S3ArtifactRepoAccess"
        Effect: Allow
        Action: 
          - ‘s3:GetObject'
          - ‘s3:GetObjectVersion'
          - ‘s3:PutObject'
          - ‘s3:GetBucketVersioning'
        Resource: 
          - !Sub ‘arn:aws:s3:::${amzn-s3-demo-bucket}'
          - !Sub ‘arn:aws:s3:::${amzn-s3-demo-bucket}/*'
        Principal:
          Service:
            - codebuild.amazonaws.com
            - codepipeline.amazonaws.com
        Condition:
          StringLike:
            ‘aws:SourceArn':
              - !Sub ‘arn:aws:codebuild:${AWS::Region}:${AWS::AccountId}:project/Deployfiles_build'
              - !Sub ‘arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:Deployment-Pipeline'
              - !Sub ‘arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:Deployment-Pipeline/*'
```

Beachten Sie Folgendes zu dieser Bucket-Richtlinie:
+ Das `Resource` Element listet zwei verschiedene Ressourcentypen auf, die die folgenden Amazon Resource Name (ARN) -Formate verwenden:
  + Das ARN-Format eines S3-Objekts ist`arn:${{<Partition>}}:s3:::${{<BucketName>}}/${{<ObjectName>}}`.
  + Das ARN-Format eines S3-Buckets ist`arn:${{<Partition>}}:s3:::${{<BucketName>}}`.

  `s3:GetObject``s3:GetObjectVersion`, und `s3:PutObject` erfordern einen S3-Objektressourcentyp und `s3:GetBucketVersioning ` erfordert einen S3-Bucket-Ressourcentyp. Weitere Informationen zu den erforderlichen Ressourcentypen für jede Aktion finden Sie unter [Aktionen, Ressourcen und Bedingungsschlüssel für Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html).
+ Das `Principal` Element listet die Entitäten auf, die die in der Erklärung definierten Amazon S3 S3-Aktionen ausführen dürfen. In diesem Fall dürfen nur CodeBuild und CodePipeline dürfen diese Aktionen ausführen.
+ Das `Condition` Element schränkt den Zugriff auf den S3-Bucket weiter ein, sodass nur das `Deployfiles_build` CodeBuild Projekt, die `Deployment-Pipeline` CodePipeline Pipeline und die Pipeline-Aktionen auf den Bucket zugreifen können.

*Erstellen Sie die Servicerollen*

Die Bucket-Richtlinie steuert zwar den Zugriff auf den Bucket, gewährt aber keine Berechtigungen für den Bucket CodeBuild und den CodePipeline Zugriff darauf. Um Zugriff zu gewähren, müssen Sie für jeden Dienst eine Servicerolle erstellen und jedem Dienst die folgende Anweisung hinzufügen. Die Dienstrollen für CodeBuild und CodePipeline ermöglichen den Diensten den Zugriff auf den S3-Bucket und seine Objekte.

```
Sid: "ViewAccessToS3ArtifactRepo"
Effect: Allow
Action: 
  - ‘s3:GetObject'
  - ‘s3:GetObjectVersion'
  - ‘s3:PutObject'
  - ‘s3:GetBucketVersioning'
Resource: 
  - !Sub ‘arn:aws:s3:::${BuildArtifactsBucket}'
  - !Sub ‘arn:aws:s3:::${BuildArtifactsBucket}/*'
```