As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usando políticas baseadas em identidade (políticas do IAM) para o AWS Control Tower
Este tópico fornece exemplos de políticas baseadas em identidade que demonstram como um administrador de conta pode anexar políticas de permissões às identidades do IAM (ou seja, usuários, grupos e funções) e, assim, conceder permissões para realizar operações nos recursos do AWS Control Tower.
Importante
Recomendamos que você primeiro analise os tópicos introdutórios que explicam os conceitos básicos e as opções disponíveis para gerenciar o acesso aos seus recursos do AWS Control Tower. Para ter mais informações, consulte Visão geral do gerenciamento de permissões de acesso aos seus recursos do AWS Control Tower.
AWS ControlTowerAdmin papel
Essa função fornece ao AWS Control Tower acesso à infraestrutura essencial para a manutenção da landing zone. A AWS ControlTowerAdmin
função exige uma política gerenciada anexada e uma política de confiança de função para a função do IAM. Uma política de confiança de função é uma política baseada em recursos, especificando quais diretores podem assumir a função.
Aqui está um exemplo de trecho dessa política de confiança de funções:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "controltower.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Para criar essa função a partir da AWS CLI e colocá-la em um arquivo chamadotrust.json
, veja um exemplo de comando da CLI:
aws iam create-role --role-name AWSControlTowerAdmin --path /service-role/ --assume-role-policy-document file://trust.json
Essa função exige duas políticas do IAM.
Uma política em linha, por exemplo:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:DescribeAvailabilityZones", "Resource": "*" } ] }
A política gerenciada a seguir, que é
AWS ControlTowerServiceRolePolicy
a.
AWS ControlTowerServiceRolePolicy
AWS ControlTowerServiceRolePolicyÉ uma política AWS gerenciada que define permissões para criar e gerenciar recursos da AWS Control Tower, como AWS CloudFormation conjuntos de pilhas e instâncias de pilha, arquivos de AWS CloudTrail log, um agregador de configuração para a AWS Control Tower, bem como AWS Organizations contas e unidades organizacionais (OUs) que são governadas pela AWS Control Tower.
As atualizações dessa política gerenciada estão resumidas na tabela,Políticas gerenciadas para o AWS Control Tower.
Para obter mais informações, consulte o Guia AWSControlTowerServiceRolePolicy
de referência de políticas gerenciadas da AWS.
Nome da política gerenciada: AWS ControlTowerServiceRolePolicy
O artefato JSON para AWS ControlTowerServiceRolePolicy
é o seguinte:
{ "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" } } } ] }
Política de confiança da função:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "controltower.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
A política em linha éAWSControlTowerAdminPolicy
:
{ "Version": "2012-10-17", "Statement": [ { "Action": "ec2:DescribeAvailabilityZones", "Resource": "*", "Effect": "Allow" } ] }
AWS ControlTowerStackSetRole
AWS CloudFormation assume essa função para implantar conjuntos de pilhas em contas criadas pelo AWS Control Tower. Política em linha:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::*:role/AWSControlTowerExecution" ], "Effect": "Allow" } ] }
Política de confiança
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
AWS ControlTowerCloudTrailRole
O AWS Control Tower habilita, CloudTrail como melhor prática, e fornece essa função para CloudTrail. CloudTrailassume essa função para criar e publicar CloudTrail registros. Política em linha:
{ "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" } ] }
Política de confiança
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
AWSControlTowerBlueprintAccess requisitos de função
O AWS Control Tower exige que você crie a AWSControlTowerBlueprintAccess
função na conta designada do blueprint hub, dentro da mesma organização.
Nome da função
O tipo de função deve ser AWSControlTowerBlueprintAccess
.
Política de confiança de funções
A função deve ser configurada para confiar nos seguintes princípios:
-
O diretor que usa o AWS Control Tower na conta de gerenciamento.
-
A
AWSControlTowerAdmin
função na conta de gerenciamento.
O exemplo a seguir mostra uma política de confiança com privilégios mínimos. Ao criar sua própria política, substitua o termo YourManagementAccountId
pelo ID real da conta de gerenciamento da sua conta de gerenciamento do AWS Control Tower e substitua o termo YourControlTowerUserRole
pelo identificador da função do IAM para sua conta de gerenciamento.
{ "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": {} } ] }
Permissões de função
Você deve anexar a política gerenciada AWSServiceCatalogAdminFullAccessà função.
AWSServiceRoleForAWSControlTower
Essa função fornece ao AWS Control Tower acesso à conta do Log Archive, à conta de auditoria e às contas de membros para operações essenciais para a manutenção da landing zone, como notificar você sobre recursos desviados.
A AWSServiceRoleForAWSControlTower
função exige uma política gerenciada anexada e uma política de confiança de função para a função do IAM.
Política gerenciada para essa função: AWSControlTowerAccountServiceRolePolicy
Política de confiança da função:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "controltower.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
AWSControlTowerAccountServiceRolePolicy
Essa política AWS gerenciada permite que o AWS Control Tower chame AWS serviços que fornecem configuração automatizada de contas e governança centralizada em seu nome.
A política contém as permissões mínimas para a Torre de Controle da AWS implementar o encaminhamento de AWS Security Hub descobertas para recursos gerenciados pelos controles do Security Hub que fazem parte do padrão gerenciado pelo serviço do Security Hub: AWS Control Tower, e evita alterações que restringem a capacidade de gerenciar contas de clientes. É parte do processo de detecção de AWS Security Hub desvios em segundo plano que não é iniciado diretamente pelo cliente.
A política dá permissões para criar EventBridge regras da Amazon, especificamente para controles do Security Hub, em cada conta de membro, e essas regras devem especificar uma exata EventPattern. Além disso, uma regra pode operar somente em regras gerenciadas por nosso diretor de serviço.
Principal do serviço: controltower.amazonaws.com
O artefato JSON para AWSControlTowerAccountServiceRolePolicy
é o seguinte:
{ "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" } ] }
As atualizações dessa política gerenciada estão resumidas na tabela,Políticas gerenciadas para o AWS Control Tower.