Utilizzo di policy basate sull'identità (policy IAM) per AWS Control Tower - AWS Control Tower

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di policy basate sull'identità (policy IAM) per AWS Control Tower

Questo argomento fornisce esempi di policy basate sull'identità che dimostrano come un amministratore di account può associare policy di autorizzazione alle identità IAM (ovvero utenti, gruppi e ruoli) e quindi concedere le autorizzazioni per eseguire operazioni sulle risorse AWS Control Tower.

Importante

Ti consigliamo di consultare prima gli argomenti introduttivi che spiegano i concetti e le opzioni di base disponibili per gestire l'accesso alle tue risorse AWS Control Tower. Per ulteriori informazioni, consulta Panoramica della gestione delle autorizzazioni di accesso alle risorse AWS Control Tower.

AWS ControlTowerAdmin ruolo

Questo ruolo fornisce ad AWS Control Tower l'accesso all'infrastruttura fondamentale per il mantenimento della landing zone. Il AWS ControlTowerAdmin ruolo richiede una policy gestita allegata e una policy di trust dei ruoli per il ruolo IAM. Una policy di fiducia nei ruoli è una politica basata sulle risorse, che specifica quali dirigenti possono assumere il ruolo.

Ecco un esempio di frammento di questa policy sulla fiducia dei ruoli:

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

Per creare questo ruolo dalla AWS CLI e inserirlo in un file chiamatotrust.json, ecco un esempio di comando CLI:

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

Questo ruolo richiede due politiche IAM.

  1. Una politica in linea, ad esempio:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:DescribeAvailabilityZones", "Resource": "*" } ] }
  2. La politica gestita che segue, che è laAWS ControlTowerServiceRolePolicy.

AWS ControlTowerServiceRolePolicy

AWS ControlTowerServiceRolePolicySi tratta di una policy AWS gestita che definisce le autorizzazioni per creare e gestire risorse AWS Control Tower, come AWS CloudFormation stackset e istanze di stack, file di AWS CloudTrail log, un aggregatore di configurazione per AWS Control Tower, AWS Organizations nonché account e unità organizzative (OU) governati da AWS Control Tower.

Gli aggiornamenti a questa policy gestita sono riepilogati nella tabella,. Policy gestite per AWS Control Tower

Per ulteriori informazioni, consulta AWSControlTowerServiceRolePolicyla AWS Managed Policy Reference Guide.

Nome della policy gestita: AWS ControlTowerServiceRolePolicy

L'artefatto JSON per AWS ControlTowerServiceRolePolicy è il seguente:

{ "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" } } } ] }

Politica di fiducia dei ruoli:

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

La politica in linea èAWSControlTowerAdminPolicy:

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

AWS ControlTowerStackSetRole

AWS CloudFormation assume questo ruolo per distribuire set di stack negli account creati da AWS Control Tower. Policy inline:

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

Policy di trust

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

AWS ControlTowerCloudTrailRole

AWS Control CloudTrail Tower è una best practice e fornisce questo ruolo a CloudTrail. CloudTrailassume questo ruolo per creare e pubblicare i CloudTrail log. Policy inline:

{ "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" } ] }

Policy di trust

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

AWSControlTowerBlueprintAccess requisiti di ruolo

AWS Control Tower richiede la creazione del AWSControlTowerBlueprintAccess ruolo nell'account Blueprint Hub designato, all'interno della stessa organizzazione.

Role name (Nome ruolo)

Il nome del ruolo deve essereAWSControlTowerBlueprintAccess.

Politica di fiducia nei ruoli

Il ruolo deve essere impostato in modo da considerare attendibili i seguenti principi:

  • Il principale che utilizza AWS Control Tower nell'account di gestione.

  • Il AWSControlTowerAdmin ruolo nell'account di gestione.

L'esempio seguente mostra una politica di fiducia basata sui privilegi minimi. Quando crei la tua policy, sostituisci il termine YourManagementAccountIdcon l'ID account effettivo del tuo account di gestione AWS Control Tower e sostituisci il termine YourControlTowerUserRolecon l'identificatore del ruolo IAM per il tuo account di gestione.

{ "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": {} } ] }

Autorizzazioni relative ai ruoli

È necessario allegare la politica gestita AWSServiceCatalogAdminFullAccessal ruolo.

AWSServiceRoleForAWSControlTower

Questo ruolo fornisce ad AWS Control Tower l'accesso all'account Log Archive, all'account Audit e agli account dei membri, per operazioni fondamentali per il mantenimento della landing zone, come la notifica di risorse alla deriva.

Il AWSServiceRoleForAWSControlTower ruolo richiede una policy gestita allegata e una policy di trust dei ruoli per il ruolo IAM.

Policy gestita per questo ruolo: AWSControlTowerAccountServiceRolePolicy

Politica di fiducia nei ruoli:

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

AWSControlTowerAccountServiceRolePolicy

Questa policy AWS gestita consente ad AWS Control Tower di chiamare AWS servizi che forniscono configurazione automatica degli account e governance centralizzata per tuo conto.

La policy contiene le autorizzazioni minime per AWS Control Tower per implementare l'inoltro dei AWS Security Hub risultati per le risorse gestite dai controlli del Security Hub che fanno parte dello standard gestito dal Security Hub Service-managed: AWS Control Tower, e impedisce modifiche che limitano la capacità di gestire gli account dei clienti. Fa parte di un processo di rilevamento delle AWS Security Hub deviazioni in background che non viene avviato direttamente da un cliente.

La policy concede le autorizzazioni per creare EventBridge regole Amazon, in particolare per i controlli del Security Hub, in ogni account membro e queste regole devono specificare un valore esatto EventPattern. Inoltre, una regola può funzionare solo su regole gestite dal responsabile del nostro servizio.

Responsabile del servizio: controltower.amazonaws.com

L'artefatto JSON per AWSControlTowerAccountServiceRolePolicy è il seguente:

{ "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" } ] }

Gli aggiornamenti a questa politica gestita sono riepilogati nella tabella,. Policy gestite per AWS Control Tower