

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.

# Verwaltung von Berechtigungen und Zugriff für eine Architektur mit mehreren Konten
<a name="managing-permissions"></a>

**Topics**
+ [Kulturtechnische Überlegungen](engineering-cultural-considerations.md)
+ [Erstellen von Berechtigungssätzen](creating-permission-sets.md)
+ [Eine Berechtigungsgrenze erstellen](creating-a-permissions-boundary.md)
+ [Verwalten von Berechtigungen für Einzelpersonen](managing-permissions-for-individuals.md)

# Kulturtechnische Überlegungen
<a name="engineering-cultural-considerations"></a>

Eine der Säulen des AWS Well-Architected Framework ist Operational Excellence. Teams müssen das [Betriebsmodell](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/operating-model.html) und ihren Beitrag zum Erreichen Ihrer Geschäftsergebnisse verstehen. Teams können sich darauf konzentrieren, gemeinsame Ziele zu erreichen, wenn sie ihre Verantwortung verstehen, Verantwortung übernehmen und wissen, wie Entscheidungen getroffen werden.

Bei Unternehmen in der Anfangsphase, die sich schnell entwickeln, erfüllt jeder im Team mehrere Rollen. Es ist nicht ungewöhnlich, dass diese Benutzer sehr privilegierten Zugriff auf das gesamte AWS-Konto haben. Wenn Unternehmen wachsen, möchten sie oft dem Prinzip *der geringsten Berechtigung* folgen und nur Berechtigungen gewähren, die der Benutzer benötigt, um seine Arbeit zu erledigen. Um den Umfang einzuschränken, können Sie [AWS Identity and Access Management Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) verwenden, um zu sehen, welche Berechtigungen ein Benutzer oder eine IAM-Rolle tatsächlich verwendet, sodass Sie alle überzähligen Berechtigungen entfernen können.

Es kann schwierig sein, zu entscheiden, wer in Ihrem Unternehmen über die Berechtigungen zum Erstellen von IAM-Rollen verfügt. Dies ist in der Regel ein Vektor für die Eskalation von Rechten. Bei der Eskalation von Rechten kann ein Benutzer seine eigenen Berechtigungen oder seinen eigenen Zugriffsumfang erweitern. Wenn ein Benutzer beispielsweise über eingeschränkte Berechtigungen verfügt, aber neue IAM-Rollen erstellen kann, kann er seine Berechtigungen erweitern, indem er eine neue IAM-Rolle erstellt und übernimmt, auf die die verwaltete Richtlinie `AdministratorAccess` angewendet wird.

Einige Unternehmen beschränken die Bereitstellung von IAM-Rollen auf ein zentralisiertes Team von vertrauenswürdigen Personen. Der Nachteil dieses Ansatzes ist, dass dieses Team schnell zu einem Engpass werden kann, da fast alle eine IAM-Rolle für den AWS-Services Betrieb benötigen. Als Alternative können Sie [Berechtigungsgrenzen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) verwenden, um den IAM-Zugriff nur an Benutzer zu delegieren, die Ihre Cloud-Infrastruktur entwickeln, testen, starten und verwalten. Beispiele für Richtlinien finden Sie unter [Beispiel für Zugriffsgrenzen](https://github.com/aws-samples/example-permissions-boundary) (). GitHub

Teams für den Entwicklungsbetrieb (DevOps), auch *Plattformteams* genannt, müssen häufig ein Gleichgewicht zwischen den Self-Service-Funktionen mehrerer interner Entwicklungsteams und der Betriebsstabilität von Anwendungen finden. Die Förderung einer Technikkultur, die Autonomie, Kompetenz und Zielstrebigkeit am Arbeitsplatz fördert, kann dazu beitragen, Teams zu motivieren. Ingenieure möchten ihre Arbeit selbstbestimmt erledigen, ohne sich darauf verlassen zu müssen, dass andere Dinge für sie erledigen. Wenn DevOps Teams Self-Service-Lösungen implementieren können, verringert sich dadurch auch die Zeit, in der andere auf sie angewiesen sind, um Aufgaben zu erledigen.

# Erstellen von Berechtigungssätzen
<a name="creating-permission-sets"></a>

Sie können AWS-Konto den Zugriff mithilfe von [Berechtigungssätzen](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) in AWS IAM Identity Center verwalten. Ein *Berechtigungssatz* ist eine Vorlage, mit der Sie eine oder mehrere IAM-Richtlinien für mehrere AWS-Konten bereitstellen können. Wenn Sie einen Berechtigungssatz einem AWS-Konto zuweisen, erstellt IAM Identity Center eine IAM-Rolle und fügt der Rolle die IAM-Richtlinien an. Weitere Informationen finden Sie unter [Berechtigungsrichtlinien erstellen und verwalten](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsets.html) (Dokumentation von IAM Identity Center).

AWS empfiehlt, Berechtigungssätze zu erstellen, die den verschiedenen Personas in Ihrem Unternehmen zugeordnet sind.

**Topics**
+ [Fakturierungsberechtigungssatz](#billing-permission-set)
+ [Entwicklerberechtigungssatz](#developer-permission-set)
+ [Produktionsberechtigungssatz](#production-permission-set)

Die folgenden Berechtigungssätze sind Auszüge aus einer Vorlage. AWS CloudFormation Sie sollten diesen Code als Ausgangspunkt verwenden und ihn an Ihr Unternehmen anpassen. Weitere Informationen zu CloudFormation Vorlagen finden [Sie unter Grundlagen von Vorlagen lernen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.templatebasics.html) (CloudFormation Dokumentation).

## Fakturierungsberechtigungssatz
<a name="billing-permission-set"></a>

Das Finanzteam verwendet **BillingAccessPermissionSet**, um sich das AWS Billing Konsolen-Dashboard und AWS Cost Explorer die einzelnen Konten anzusehen.

```
BillingAccessPermissionSet:
  Type: "AWS::SSO::PermissionSet"
  Properties:
    Description: Access to Billing and Cost Explorer
    InstanceArn: !Sub "arn:${AWS::Partition}:sso:::instance/ssoins-instanceId"
    ManagedPolicies:
      - !Sub "arn:${AWS::Partition}:iam::aws:policy/job-function/Billing"
    Name: BillingAccess
    SessionDuration: PT8H
    RelayStateType: https://console.aws.amazon.com/billing/home
```

## Entwicklerberechtigungssatz
<a name="developer-permission-set"></a>

Das Entwicklungsteam verwendet, **DeveloperAccessPermissionSet**um auf Konten zuzugreifen, die nicht zur Produktion gehören.

```
DeveloperAccessPermissionSet:
  Type: "AWS::SSO::PermissionSet"
  Properties:
    Description: Access to provision resources through CloudFormation
    InlinePolicy: !Sub |-
      {
        "Version": "2012-10-17", 		 	 	 		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:${AWS::Partition}:iam::*:role/CloudFormationRole",
            "Condition": {
              "StringEquals": {
                "aws:ResourceAccount": "${!aws:PrincipalAccount}",
                "iam:PassedToService": "cloudformation.${AWS::URLSuffix}"
              }
            }
          },
          {
            "Effect": "Allow",
            "Action": [
              "cloudformation:ContinueUpdateRollback",
              "cloudformation:CreateChangeSet",
              "cloudformation:CreateStack",
              "cloudformation:DeleteStack",
              "cloudformation:RollbackStack",
              "cloudformation:UpdateStack"
            ],
            "Resource": "arn:${AWS::Partition}:cloudformation:*:*:stack/app-*",
            "Condition": {
              "ArnLike": {
                "cloudformation:RoleArn": "arn:${AWS::Partition}:iam::${!aws:PrincipalAccount}:role/CloudFormationRole"
              },
              "Null": {
                "cloudformation:ImportResourceTypes": true
              }
            }
          },
          {
            "Effect": "Allow",
            "Action": [
              "cloudformation:CancelUpdateStack",
              "cloudformation:DeleteChangeSet",
              "cloudformation:DetectStackDrift",
              "cloudformation:DetectStackResourceDrift",
              "cloudformation:ExecuteChangeSet",
              "cloudformation:TagResource",
              "cloudformation:UntagResource",
              "cloudformation:UpdateTerminationProtection"
            ],
            "Resource": "arn:${AWS::Partition}:cloudformation:*:*:stack/app-*"
          },
          {
           "Effect": "Allow",
            "Action": [
              "cloudformation:CreateUploadBucket",
              "cloudformation:ValidateTemplate",
              "cloudformation:EstimateTemplateCost"
            ],
            "Resource": "*"
          }
        ]
      }
    InstanceArn: !Sub "arn:${AWS::Partition}:sso:::instance/ssoins-instanceId"
    ManagedPolicies:
      - !Sub "arn:${AWS::Partition}:iam::aws:policy/AWSServiceCatalogEndUserFullAccess"
      - !Sub "arn:${AWS::Partition}:iam::aws:policy/AWSBillingReadOnlyAccess"
      - !Sub "arn:${AWS::Partition}:iam::aws:policy/AWSSupportAccess"
      - !Sub "arn:${AWS::Partition}:iam::aws:policy/ReadOnlyAccess"
    Name: DeveloperAccess
    SessionDuration: PT8H
```

## Produktionsberechtigungssatz
<a name="production-permission-set"></a>

Das Entwicklungsteam verwendet **ProductionPermissionSet**, um auf Produktionskonten zuzugreifen. Dieser Berechtigungssatz hat eingeschränkten Nur-Lesezugriff.

```
ProductionPermissionSet:
  Type: "AWS::SSO::PermissionSet"
  Properties:
    Description: Access to production accounts
    InlinePolicy: !Sub |-
      {
        "Version": "2012-10-17", 		 	 	 		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:${AWS::Partition}:iam::*:role/CloudFormationRole",
            "Condition": {
              "StringEquals": {
                "aws:ResourceAccount": "${!aws:PrincipalAccount}",
                "iam:PassedToService": "cloudformation.${AWS::URLSuffix}"
              }
            }
          },
          {
            "Effect": "Allow",
            "Action": "cloudformation:ContinueUpdateRollback",
            "Resource": "arn:${AWS::Partition}:cloudformation:*:*:stack/app-*",
            "Condition": {
              "ArnLike": {
                "cloudformation:RoleArn": "arn:${AWS::Partition}:iam::${!aws:PrincipalAccount}:role/CloudFormationRole"
              }
            }
          },
          {
            "Effect": "Allow",
            "Action": "cloudformation:CancelUpdateStack",
            "Resource": "arn:${AWS::Partition}:cloudformation:*:*:stack/app-*"
          }
        ]
      }
    InstanceArn: !Sub "arn:${AWS::Partition}:sso:::instance/ssoins-instanceId"
    ManagedPolicies:
      - !Sub "arn:${AWS::Partition}:iam::aws:policy/AWSBillingReadOnlyAccess"
      - !Sub "arn:${AWS::Partition}:iam::aws:policy/AWSSupportAccess"
      - !Sub "arn:${AWS::Partition}:iam::aws:policy/job-function/ViewOnlyAccess"
    Name: ProductionAccess
    SessionDuration: PT2H
```

# Eine Berechtigungsgrenze erstellen
<a name="creating-a-permissions-boundary"></a>

Nachdem Sie die Berechtigungssätze bereitgestellt haben, legen Sie eine Berechtigungsgrenze fest. Diese *Berechtigungsgrenze* ist ein Mechanismus, um den IAM-Zugriff nur an die Benutzer zu delegieren, die Ihre Cloud-Infrastruktur entwickeln, testen, einführen und verwalten. Diese Benutzer können nur die Aktionen ausführen, die gemäß der Richtlinie und der Berechtigungsgrenze zulässig sind.

Sie können die Berechtigungsgrenze in einer AWS CloudFormation Vorlage definieren und dann verwenden CloudFormation StackSets , um die Vorlage für mehrere Konten bereitzustellen. Auf diese Weise können Sie mit einem einzigen Vorgang standardisierte Richtlinien in Ihrer gesamten Organisation einrichten und beibehalten. Weitere Informationen und Anweisungen finden Sie unter [Arbeiten mit AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) (CloudFormation Dokumentation).

Die folgende CloudFormation Vorlage stellt eine IAM-Rolle bereit und erstellt eine IAM-Richtlinie, die als Berechtigungsgrenze dient. Mithilfe eines Stack-Sets können Sie diese Vorlage für alle Mitgliedskonten in Ihrer Organisation bereitstellen.

```
CloudFormationRole:
  Type: "AWS::IAM::Role"
  Properties:
    AssumeRolePolicyDocument:
      Version: "2012-10-17"
      Statement:
        Effect: Allow
        Principal:
          Service: !Sub "cloudformation.${AWS::URLSuffix}"
        Action: "sts:AssumeRole"
        Condition:
          StringEquals:
            "aws:SourceAccount": !Ref "AWS::AccountId"
    Description: !Sub "DO NOT DELETE - Used by CloudFormation. Created by CloudFormation ${AWS::StackId}"
    ManagedPolicyArns:
      - !Sub "arn:${AWS::Partition}:iam::aws:policy/AdministratorAccess"
    PermissionsBoundary: !Ref DeveloperBoundary
    RoleName: CloudFormationRole

DeveloperBoundary:
  Type: "AWS::IAM::ManagedPolicy"
  Properties:
    Description: Permission boundary for developers
    ManagedPolicyName: PermissionsBoundary
    PolicyDocument:
      Version: "2012-10-17"
      Statement:
        - Sid: AllowModifyIamRolesWithBoundary
          Effect: Allow
          Action:
            - "iam:AttachRolePolicy"
            - "iam:CreateRole"
            - "iam:DeleteRolePolicy"
            - "iam:DetachRolePolicy"
            - "iam:PutRolePermissionsBoundary"
            - "iam:PutRolePolicy"
          Resource: !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/app/*"
          Condition:
            ArnEquals:
              "iam:PermissionsBoundary": !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:policy/PermissionsBoundary"
        - Sid: AllowModifyIamRoles
          Effect: Allow
          Action:
            - "iam:DeleteRole"
            - "iam:TagRole"
            - "iam:UntagRole"
            - "iam:UpdateAssumeRolePolicy"
            - "iam:UpdateRole"
            - "iam:UpdateRoleDescription"
          Resource: !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/app/*"
        - Sid: OverlyPermissiveAllowedServices
          Effect: Allow
          Action:
            - "lambda:*"
            - "apigateway:*"
            - "events:*"
            - "s3:*"
            - "logs:*"
          Resource: "*"
```

Die **CloudFormationRole**Rolle, die **PermissionsBoundary**Richtlinie und der **DeveloperAccess**Berechtigungssatz gewähren zusammen die folgenden Berechtigungen:
+ Benutzer haben über die **ReadOnlyAccess** AWS verwaltete Richtlinie nur Lesezugriff auf die meisten AWS-Services.
+ Benutzer haben über die AWS verwaltete Access-Richtlinie **AWSSupportZugriff auf** offene Supportanfragen.
+ Benutzer haben über die **AWSBillingReadOnlyAccess** AWS verwaltete Richtlinie nur Lesezugriff auf das AWS Billing Konsolen-Dashboard.
+ Benutzer können über die **AWSServiceCatalogEndUserFullAccess** AWS verwaltete Richtlinie Produkte aus dem Service Catalog bereitstellen.
+ Benutzer können mithilfe der Inline-Richtlinie die Kosten jeder CloudFormation Vorlage überprüfen und abschätzen.
+ Mithilfe der **CloudFormationRole**IAM-Rolle können Benutzer jeden CloudFormation Stack erstellen, aktualisieren oder löschen, der mit **app/** beginnt.
+ **Benutzer können IAM-Rollen, CloudFormation die mit app/ beginnen, erstellen, aktualisieren oder löschen.** Die **PermissionsBoundary**IAM-Richtlinie verhindert, dass Benutzer ihre Rechte erweitern.
+ Benutzer können Amazon AWS Lambda-, Amazon EventBridge - CloudWatch, Amazon Simple Storage Service (Amazon S3) - und Amazon API Gateway Gateway-Ressourcen nur mithilfe von bereitstellen CloudFormation.

Die folgende Abbildung zeigt, wie ein autorisierter Benutzer, z. B. ein Entwickler, mithilfe der in diesem Handbuch beschriebenen Berechtigungssätze, IAM-Rollen und Berechtigungsgrenzen eine neue IAM-Rolle in einem Mitgliedskonto erstellen kann:

1. Der Benutzer authentifiziert sich im IAM Identity Center und übernimmt die **DeveloperAccess**IAM-Rolle.

1. Der Benutzer initiiert die `cloudformation:CreateStack` Aktion und übernimmt die IAM-Rolle. **CloudFormationRole**

1. Der Benutzer initiiert die `iam:CreateRole` Aktion und erstellt CloudFormation damit eine neue IAM-Rolle.

1. Die **PermissionsBoundary**IAM-Richtlinie wird auf die neue IAM-Rolle angewendet.



![\[Benutzer, der eine IAM-Rolle erstellt, die der Berechtigungsgrenze im Mitgliedskonto unterliegt\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/transitioning-to-multiple-aws-accounts/images/2_create-iam-role.png)


Der **CloudFormationRole**Rolle ist die [AdministratorAccess](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html#jf_administrator)verwaltete Richtlinie angehängt, aber aufgrund der **PermissionsBoundary**IAM-Richtlinie entsprechen die effektiven Berechtigungen der **CloudFormationRole**Rolle der Richtlinie. **PermissionsBoundary** Die **PermissionsBoundary**Richtlinie bezieht sich beim Zulassen der `iam:CreateRole` Aktion auf sich selbst, wodurch sichergestellt wird, dass Rollen nur erstellt werden können, wenn die Berechtigungsgrenze eingehalten wird.

# Verwalten von Berechtigungen für Einzelpersonen
<a name="managing-permissions-for-individuals"></a>

Mithilfe von Berechtigungssätzen, der Berechtigungsgrenze und der **CloudFormationRole**IAM-Rolle können Sie die Anzahl der Berechtigungen einschränken, die Sie einzelnen Prinzipalen direkt zuweisen müssen. Auf diese Weise können Sie den Zugriff verwalten, wenn das Unternehmen wächst, und die bewährte Sicherheitsmethode, die Vergabe der geringsten Berechtigung, anwenden.

Sie können auch *serviceverknüpfte Rollen* verwenden, die einem AWS -Service Berechtigungen gewähren zur Bereitstellung von Ressourcen in Ihrem Namen. Anstatt dem IAM-Prinzipal (Benutzer, Benutzergruppe oder Rolle) Berechtigungen zu erteilen, können Sie die Berechtigungen auch dem Service gewähren. Mit der serviceverknüpften Rolle für [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html)können Sie beispielsweise Ihre eigenen Vorlagen, Ressourcen und Umgebungen bereitstellen, ohne dem IAM-Prinzipal Berechtigungen zuzuweisen. Weitere Informationen finden Sie unter [AWS-Services , die mit IAM funktionieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) und [Verwenden von serviceverknüpften Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) (IAM-Dokumentation).

Eine weitere bewährte Methode besteht darin, den Umfang des Zugriffs zu beschränken, den Einzelpersonen auf die AWS-Managementkonsole haben. [Indem Sie den Zugriff auf die Konsole einschränken, können Sie festlegen, dass einzelne Personen Ressourcen mithilfe von Infrastructure-as-Code-Technologien (IaC) wie [HashiCorp Terraform](https://www.terraform.io/) oder [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)Pulumi bereitstellen.](https://www.pulumi.com/) Durch die Verwaltung der Infrastruktur über IaC können Sie Änderungen an Ressourcen im Laufe der Zeit verfolgen und Mechanismen zur Genehmigung von Änderungen wie Pull-Requests einführen. GitHub 