Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de políticas basadas en identidad (políticas de IAM) para AWS Control Tower
En este tema se proporcionan ejemplos de políticas basadas en la identidad que demuestran cómo un administrador de cuentas puede adjuntar políticas de permisos a las identidades de IAM (es decir, usuarios, grupos y funciones) y, de ese modo, conceder permisos para realizar operaciones en los recursos de la Torre de Control Tower de AWS.
importante
Le recomendamos que consulte primero los temas introductorios en los que se explican los conceptos básicos y las opciones disponibles para administrar el acceso a los recursos de la Torre de Control de AWS. Para obtener más información, consulte Información general sobre la administración de los permisos de acceso a los recursos de la Torre de Control de AWS.
AWS ControlTowerAdmin rol
Esta función proporciona a AWS Control Tower acceso a la infraestructura fundamental para el mantenimiento de la landing zone. El AWS ControlTowerAdmin
rol requiere una política administrada adjunta y una política de confianza del rol para el rol de IAM. Una política de confianza de roles es una política basada en los recursos que especifica qué directores pueden asumir la función.
A continuación, se muestra un fragmento de ejemplo de esta política de confianza de roles:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "controltower.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Para crear este rol desde la AWS CLI y colocarlo en un archivo llamadotrust.json
, este es un ejemplo de comando CLI:
aws iam create-role --role-name AWSControlTowerAdmin --path /service-role/ --assume-role-policy-document file://trust.json
Esta función requiere dos políticas de IAM.
Una política en línea, por ejemplo:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:DescribeAvailabilityZones", "Resource": "*" } ] }
La política gestionada que sigue, que es la
AWS ControlTowerServiceRolePolicy
.
AWS ControlTowerServiceRolePolicy
AWS ControlTowerServiceRolePolicySe trata de una política AWS administrada que define los permisos para crear y administrar los recursos de la Torre de Control de AWS, como AWS CloudFormation conjuntos de pilas e instancias apiladas, archivos de AWS CloudTrail registro, un agregador de configuraciones para la Torre de Control de AWS, así como AWS Organizations cuentas y unidades organizativas (OU) que se rigen por la Torre de Control de AWS.
Las actualizaciones de esta política gestionada se resumen en la tabla. Políticas administradas para AWS Control Tower
Para obtener más información, consulte AWSControlTowerServiceRolePolicy
la Guía de referencia de políticas administradas de AWS.
Nombre de la política administrada: AWS ControlTowerServiceRolePolicy
El artefacto JSON para AWS ControlTowerServiceRolePolicy
es el siguiente:
{ "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 confianza de roles:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "controltower.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
La política en línea esAWSControlTowerAdminPolicy
:
{ "Version": "2012-10-17", "Statement": [ { "Action": "ec2:DescribeAvailabilityZones", "Resource": "*", "Effect": "Allow" } ] }
AWS ControlTowerStackSetRole
AWS CloudFormation asume esta función para implementar conjuntos de pilas en las cuentas creadas por AWS Control Tower. Política insertada:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::*:role/AWSControlTowerExecution" ], "Effect": "Allow" } ] }
Política de confianza
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
AWS ControlTowerCloudTrailRole
AWS Control Tower CloudTrail lo habilita como práctica recomendada y proporciona esta función a CloudTrail. CloudTrailasume esta función para crear y publicar CloudTrail registros. Política insertada:
{ "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 confianza
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
AWSControlTowerBlueprintAccess requisitos de función
AWS Control Tower requiere que cree el AWSControlTowerBlueprintAccess
rol en la cuenta de blueprint hub designada, dentro de la misma organización.
Nombre de rol
El nombre de rol debe ser AWSControlTowerBlueprintAccess
.
Política de confianza de roles
El rol debe configurarse para confiar en los siguientes principios:
-
El director que usa AWS Control Tower en la cuenta de administración.
-
El
AWSControlTowerAdmin
rol en la cuenta de administración.
El siguiente ejemplo muestra una política de confianza de privilegios mínimos. Cuando cree su propia política, sustituya el término YourManagementAccountId
por el ID de cuenta real de su cuenta de administración de AWS Control Tower y sustituya el término YourControlTowerUserRole
por el identificador de la función de IAM de su cuenta de administración.
{ "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": {} } ] }
Permisos de rol
Debe adjuntar la política gestionada AWSServiceCatalogAdminFullAccessal rol.
AWSServiceRoleForAWSControlTower
Esta función proporciona a AWS Control Tower acceso a la cuenta de Log Archive, la cuenta de auditoría y las cuentas de los miembros para operaciones fundamentales para el mantenimiento de la landing zone, como la notificación de la desviación de recursos.
El AWSServiceRoleForAWSControlTower
rol requiere una política administrada adjunta y una política de confianza de roles para el rol de IAM.
Política gestionada para este rol: AWSControlTowerAccountServiceRolePolicy
Política de confianza de roles:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "controltower.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
AWSControlTowerAccountServiceRolePolicy
Esta política AWS gestionada permite a AWS Control Tower llamar en su nombre a AWS los servicios que proporcionan una configuración de cuentas automatizada y un gobierno centralizado.
La política contiene los permisos mínimos para que la Torre de Control de AWS implemente el reenvío de AWS Security Hub hallazgos para los recursos administrados por los controles de Security Hub que forman parte del estándar administrado por el servicio Security Hub: AWS Control Tower, e impide cambios que restrinjan la capacidad de administrar las cuentas de los clientes. Forma parte de un proceso de detección de AWS Security Hub desviaciones en segundo plano y no lo inicia directamente el cliente.
La política otorga permisos para crear EventBridge reglas de Amazon, específicamente para los controles de Security Hub, en cada cuenta de miembro, y estas reglas deben especificar una exacta EventPattern. Además, una regla solo puede funcionar en las reglas administradas por nuestro director de servicio.
Director de servicio: controltower.amazonaws.com
El artefacto JSON para AWSControlTowerAccountServiceRolePolicy
es el siguiente:
{ "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" } ] }
Las actualizaciones de esta política gestionada se resumen en la tabla,Políticas administradas para AWS Control Tower.