Verwendung identitätsbasierter Richtlinien (IAM-Richtlinien) für AWS Control Tower - AWS Control Tower

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.

Verwendung identitätsbasierter Richtlinien (IAM-Richtlinien) für AWS Control Tower

Dieses Thema enthält Beispiele für identitätsbasierte Richtlinien, die zeigen, wie ein Kontoadministrator Berechtigungsrichtlinien an IAM-Identitäten (d. h. Benutzer, Gruppen und Rollen) anhängen und dadurch Berechtigungen zur Ausführung von Vorgängen auf AWS Control Tower Tower-Ressourcen gewähren kann.

Wichtig

Wir empfehlen Ihnen, zunächst die einführenden Themen zu lesen, in denen die grundlegenden Konzepte und Optionen erläutert werden, die Ihnen zur Verwaltung des Zugriffs auf Ihre AWS Control Tower Tower-Ressourcen zur Verfügung stehen. Weitere Informationen finden Sie unter Überblick über die Verwaltung von Zugriffsberechtigungen für Ihre AWS Control Tower Tower-Ressourcen.

AWS ControlTowerAdmin Rolle

Diese Rolle bietet AWS Control Tower Zugriff auf die Infrastruktur, die für die Aufrechterhaltung der landing zone von entscheidender Bedeutung ist. Die AWS ControlTowerAdmin Rolle erfordert eine angehängte verwaltete Richtlinie und eine Rollenvertrauensrichtlinie für die IAM-Rolle. Eine Rollenvertrauensrichtlinie ist eine ressourcenbasierte Richtlinie, die festlegt, welche Prinzipale die Rolle übernehmen können.

Hier ist ein Beispielausschnitt für diese Rollenvertrauensrichtlinie:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "controltower.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Um diese Rolle über die AWS CLI zu erstellen und sie in eine Datei mit dem Namen abzulegentrust.json, finden Sie hier ein Beispiel für einen CLI-Befehl:

aws iam create-role --role-name AWSControlTowerAdmin --path /service-role/ --assume-role-policy-document file://trust.json

Für diese Rolle sind zwei IAM-Richtlinien erforderlich.

  1. Eine Inline-Richtlinie, zum Beispiel:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:DescribeAvailabilityZones", "Resource": "*" } ] }
  2. Die folgende verwaltete Richtlinie, nämlich dieAWS ControlTowerServiceRolePolicy.

AWS ControlTowerServiceRolePolicy

Dabei AWS ControlTowerServiceRolePolicyhandelt es sich um eine AWS verwaltete Richtlinie, die Berechtigungen zur Erstellung und Verwaltung von AWS Control Tower-Ressourcen wie AWS CloudFormation Stacksets und Stack-Instances, AWS CloudTrail Protokolldateien, einem Konfigurationsaggregator für AWS Control Tower sowie AWS Organizations Konten und Organisationseinheiten (OUs) definiert, die von AWS Control Tower verwaltet werden.

Aktualisierungen dieser verwalteten Richtlinie sind in der Tabelle, zusammengefasst. Verwaltete Richtlinien für AWS Control Tower

Weitere Informationen finden Sie AWSControlTowerServiceRolePolicyim AWS Managed Policy Reference Guide.

Name der verwalteten Richtlinie: AWS ControlTowerServiceRolePolicy

Das JSON-Artefakt für AWS ControlTowerServiceRolePolicy ist das Folgende:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStack", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStacks", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:ListStackInstances", "cloudformation:UpdateStack", "cloudformation:UpdateStackInstances", "cloudformation:UpdateStackSet" ], "Resource": [ "arn:aws:cloudformation:*:*:type/resource/AWS-IAM-Role" ] }, { "Effect": "Allow", "Action": [ "account:EnableRegion", "account:ListRegions", "account:GetRegionOptStatus" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:CreateStackInstances", "cloudformation:CreateStackSet", "cloudformation:DeleteStack", "cloudformation:DeleteStackInstances", "cloudformation:DeleteStackSet", "cloudformation:DescribeStackInstance", "cloudformation:DescribeStacks", "cloudformation:DescribeStackSet", "cloudformation:DescribeStackSetOperation", "cloudformation:GetTemplate", "cloudformation:ListStackInstances", "cloudformation:UpdateStack", "cloudformation:UpdateStackInstances", "cloudformation:UpdateStackSet" ], "Resource": [ "arn:aws:cloudformation:*:*:stack/AWSControlTower*/*", "arn:aws:cloudformation:*:*:stack/StackSet-AWSControlTower*/*", "arn:aws:cloudformation:*:*:stackset/AWSControlTower*:*", "arn:aws:cloudformation:*:*:stackset-target/AWSControlTower*/*" ] }, { "Effect": "Allow", "Action": [ "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:GetTrailStatus", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "cloudtrail:UpdateTrail", "cloudtrail:PutEventSelectors", "logs:CreateLogStream", "logs:PutLogEvents", "logs:PutRetentionPolicy" ], "Resource": [ "arn:aws:logs:*:*:log-group:aws-controltower/CloudTrailLogs:*", "arn:aws:cloudtrail:*:*:trail/aws-controltower*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::aws-controltower*/*" ] }, { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::*:role/AWSControlTowerExecution", "arn:aws:iam::*:role/AWSControlTowerBlueprintAccess" ] }, { "Effect": "Allow", "Action": [ "cloudtrail:DescribeTrails", "ec2:DescribeAvailabilityZones", "iam:ListRoles", "logs:CreateLogGroup", "logs:DescribeLogGroups", "organizations:CreateAccount", "organizations:DescribeAccount", "organizations:DescribeCreateAccountStatus", "organizations:DescribeOrganization", "organizations:DescribeOrganizationalUnit", "organizations:DescribePolicy", "organizations:ListAccounts", "organizations:ListAccountsForParent", "organizations:ListAWSServiceAccessForOrganization", "organizations:ListChildren", "organizations:ListOrganizationalUnitsForParent", "organizations:ListParents", "organizations:ListPoliciesForTarget", "organizations:ListTargetsForPolicy", "organizations:ListRoots", "organizations:MoveAccount", "servicecatalog:AssociatePrincipalWithPortfolio" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:GetUser", "iam:ListAttachedRolePolicies", "iam:GetRolePolicy" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/service-role/AWSControlTowerStackSetRole", "arn:aws:iam::*:role/service-role/AWSControlTowerCloudTrailRole", "arn:aws:iam::*:role/service-role/AWSControlTowerConfigAggregatorRoleForOrganizations" ] }, { "Effect": "Allow", "Action": [ "config:DeleteConfigurationAggregator", "config:PutConfigurationAggregator", "config:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/aws-control-tower": "managed-by-control-tower" } } }, { "Effect": "Allow", "Action": [ "organizations:EnableAWSServiceAccess", "organizations:DisableAWSServiceAccess" ], "Resource": "*", "Condition": { "StringLike": { "organizations:ServicePrincipal": [ "config.amazonaws.com", "cloudtrail.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "cloudtrail.amazonaws.com" } } } ] }

Vertrauensrichtlinie für Rollen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "controltower.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Die Online-Richtlinie lautetAWSControlTowerAdminPolicy:

{ "Version": "2012-10-17", "Statement": [ { "Action": "ec2:DescribeAvailabilityZones", "Resource": "*", "Effect": "Allow" } ] }

AWS ControlTowerStackSetRole

AWS CloudFormation übernimmt diese Rolle, um Stack-Sets in Konten bereitzustellen, die von AWS Control Tower erstellt wurden. Inlinerichtlinie:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::*:role/AWSControlTowerExecution" ], "Effect": "Allow" } ] }

Vertrauensrichtlinie

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

AWS ControlTowerCloudTrailRole

AWS Control Tower ermöglicht dies CloudTrail als bewährte Methode und bietet diese Rolle für CloudTrail. CloudTrailübernimmt diese Rolle bei der Erstellung und Veröffentlichung von CloudTrail Protokollen. Inlinerichtlinie:

{ "Version": "2012-10-17", "Statement": [ { "Action": "logs:CreateLogStream", "Resource": "arn:aws:logs:*:*:log-group:aws-controltower/CloudTrailLogs:*", "Effect": "Allow" }, { "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:*:*:log-group:aws-controltower/CloudTrailLogs:*", "Effect": "Allow" } ] }

Vertrauensrichtlinie

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

AWSControlTowerBlueprintAccess Anforderungen an die Rolle

Bei AWS Control Tower müssen Sie die AWSControlTowerBlueprintAccess Rolle im angegebenen Blueprint-Hub-Konto innerhalb derselben Organisation erstellen.

Name der Rolle

Der Rollenname muss lauten. AWSControlTowerBlueprintAccess

Vertrauensrichtlinie für Rollen

Die Rolle muss so eingerichtet sein, dass sie den folgenden Prinzipalen vertraut:

  • Der Principal, der AWS Control Tower im Verwaltungskonto verwendet.

  • Die AWSControlTowerAdmin Rolle im Verwaltungskonto.

Das folgende Beispiel zeigt eine Vertrauensrichtlinie mit den geringsten Rechten. Wenn Sie Ihre eigene Richtlinie erstellen, ersetzen Sie den Begriff YourManagementAccountIddurch die tatsächliche Konto-ID Ihres AWS Control Tower Tower-Verwaltungskontos und ersetzen Sie den Begriff YourControlTowerUserRoledurch die ID der IAM-Rolle für Ihr Verwaltungskonto.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::YourManagementAccountId:role/service-role/AWSControlTowerAdmin", "arn:aws:iam::YourManagementAccountId:role/YourControlTowerUserRole" ] }, "Action": "sts:AssumeRole", "Condition": {} } ] }

Rollenberechtigungen

Sie müssen die verwaltete Richtlinie AWSServiceCatalogAdminFullAccessan die Rolle anhängen.

AWSServiceRoleForAWSControlTower

Diese Rolle bietet AWS Control Tower Zugriff auf das Log Archive-Konto, das Audit-Konto und die Mitgliedskonten für Operationen, die für die Aufrechterhaltung der landing zone wichtig sind, wie z. B. die Benachrichtigung über verschwendete Ressourcen.

Die AWSServiceRoleForAWSControlTower Rolle erfordert eine angehängte verwaltete Richtlinie und eine Rollenvertrauensrichtlinie für die IAM-Rolle.

Verwaltete Richtlinie für diese Rolle: AWSControlTowerAccountServiceRolePolicy

Vertrauensrichtlinie für Rollen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "controltower.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

AWSControlTowerAccountServiceRolePolicy

Diese AWS verwaltete Richtlinie ermöglicht es AWS Control Tower, in Ihrem Namen AWS Services aufzurufen, die eine automatisierte Kontokonfiguration und zentrale Verwaltung bieten.

Die Richtlinie enthält die Mindestberechtigungen für AWS Control Tower zur Implementierung der Weiterleitung von AWS Security Hub Erkenntnissen für Ressourcen, die von Security Hub-Kontrollen verwaltet werden, die Teil des Security Hub Service-Managed Standard: AWS Control Tower sind, und verhindert Änderungen, die die Verwaltung von Kundenkonten einschränken. Sie ist Teil des Prozesses zur Erkennung von AWS Security Hub Hintergrundabweichungen, der nicht direkt von einem Kunden initiiert wird.

Die Richtlinie gewährt die Erlaubnis, EventBridge Amazon-Regeln, speziell für Security Hub-Steuerungen, für jedes Mitgliedskonto zu erstellen, und diese Regeln müssen eine genaue Angabe enthalten EventPattern. Außerdem kann eine Regel nur auf Regeln angewendet werden, die von unserem Service Principal verwaltet werden.

Dienstleiter: controltower.amazonaws.com

Das JSON-Artefakt für AWSControlTowerAccountServiceRolePolicy ist das Folgende:

{ "Version": "2012-10-17", "Statement": [ { //For creating the managed rule "Sid": "AllowPutRuleOnSpecificSourcesAndDetailTypes", "Effect": "Allow", "Action": "events:PutRule", "Resource": "arn:aws:events:*:*:rule/*ControlTower*", "Condition": { "ForAnyValue:StringEquals": { "events:source": "aws.securityhub" }, "Null": { "events:detail-type": "false" }, "StringEquals": { "events:ManagedBy": "controltower.amazonaws.com", "events:detail-type": "Security Hub Findings - Imported" } } }, // Other operations to manage the managed rule { "Sid": "AllowOtherOperationsOnRulesManagedByControlTower", "Effect": "Allow", "Action": [ "events:DeleteRule", "events:EnableRule", "events:DisableRule", "events:PutTargets", "events:RemoveTargets" ], "Resource": "arn:aws:events:*:*:rule/*ControlTower*", "Condition": { "StringEquals": { "events:ManagedBy": "controltower.amazonaws.com" } } }, // More managed rule permissions { "Sid": "AllowDescribeOperationsOnRulesManagedByControlTower", "Effect": "Allow", "Action": [ "events:DescribeRule", "events:ListTargetsByRule" ], "Resource": "arn:aws:events:*:*:rule/*ControlTower*" }, // Add permission to publish the security notifications to SNS { "Sid": "AllowControlTowerToPublishSecurityNotifications", "Effect": "Allow", "Action": "sns:publish", "Resource": "arn:aws:sns:*:*:aws-controltower-AggregateSecurityNotifications", "Condition": { "StringEquals": { "aws:PrincipalAccount": "${aws:ResourceAccount}" } } }, // For drift verification { "Sid": "AllowActionsForSecurityHubIntegration", "Effect": "Allow", "Action": [ "securityhub:DescribeStandardsControls", "securityhub:GetEnabledStandards" ], "Resource": "arn:aws:securityhub:*:*:hub/default" } ] }

Aktualisierungen dieser verwalteten Richtlinie sind in der Tabelle zusammengefasst,Verwaltete Richtlinien für AWS Control Tower.