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.
Funciones de servicio para CloudFormation
Un rol de servicio es un rol AWS Identity and Access Management (IAM) que permite AWS CloudFormation crear, actualizar o eliminar recursos de la pila. Si no proporciona una función de servicio, CloudFormation utiliza las credenciales del director de IAM para realizar las operaciones de apilamiento. Si crea una función de servicio CloudFormation y la especifica durante la creación de la pila, utilizará las credenciales de la función de servicio para realizar las operaciones, en lugar de las credenciales del principal de IAM. CloudFormation
Cuando se utiliza un rol de servicio, la política basada en la identidad asociada al principal de IAM no requiere permisos para aprovisionar todos los AWS recursos definidos en la plantilla. CloudFormation Si no está preparado para aprovisionar AWS recursos para operaciones empresariales críticas mediante un proceso de desarrollo (una práctica AWS recomendada), el uso de una función de servicio puede añadir una capa adicional de protección para la gestión de los recursos. AWS Los beneficios de este enfoque son:
-
Los directores de IAM de su organización siguen un modelo de privilegios mínimos que les impide crear o cambiar AWS manualmente los recursos de su entorno.
-
Para crear, actualizar o eliminar AWS recursos, los directores de IAM deben utilizarlos. CloudFormation Esto estandariza el aprovisionamiento de recursos mediante la infraestructura como código.
Por ejemplo, para crear una pila que contenga una instancia de Amazon Elastic Compute Cloud (Amazon EC2), el director de IAM necesitaría tener permisos para crear EC2 instancias mediante su política basada en la identidad. En su lugar, CloudFormation puede asumir una función de servicio que tenga permisos para crear EC2 instancias en nombre del principal. Con este enfoque, el director de IAM puede crear la pila y no es necesario conceder al director de IAM permisos demasiado amplios para un servicio al que no debería tener acceso habitual.
Para usar un rol de servicio para crear CloudFormation pilas, los directores de IAM deben tener permisos para transferirlo y la política de confianza del rol de servicio debe permitir CloudFormation asumir el rol. CloudFormation
Esta sección contiene los siguientes temas:
Implementación de privilegios mínimos para las funciones de servicio CloudFormation
En un rol de servicio, se define una política de permisos que especifica de forma explícita qué acciones puede realizar el servicio. Es posible que no sean las mismas acciones que puede realizar un director de IAM. Le recomendamos que utilice sus CloudFormation plantillas para crear un rol de servicio que cumpla con el principio de privilegios mínimos.
Definir adecuadamente la política basada en la identidad de un director de IAM para asignar únicamente funciones de servicio específicas y establecer el alcance de la política de confianza de una función de servicio para permitir que solo personas específicas asuman la función ayuda a evitar una posible escalada de privilegios a través de funciones de servicio.
Configurar las funciones de servicio
nota
Las funciones de servicio se configuran en IAM. Para crear un rol de servicio, debe tener permisos para hacerlo. Un director de IAM con permisos para crear un rol y adjuntar cualquier política puede escalar sus propios permisos. AWS recomienda crear un rol de servicio Servicio de AWS para cada caso de uso. Tras crear funciones de CloudFormation servicio para sus casos de uso, puede permitir que los usuarios transfieran únicamente la función de servicio aprobada CloudFormation. Para ver ejemplos de políticas basadas en la identidad que permiten a los usuarios crear funciones de servicio, consulte los permisos de las funciones de servicio en la documentación de IAM.
Para obtener instrucciones sobre cómo crear roles de servicio, consulte Crear un rol para delegar permisos a un. Servicio de AWS Especifique CloudFormation (cloudformation.amazonaws.com
) como el servicio que puede asumir el rol. Esto impide que un director de IAM asuma el rol por sí mismo o lo transfiera a otros servicios. Al configurar un rol de servicio Effect
Action
, se requieren Resource
los elementos y. Si lo desea, también puede definir un Condition
elemento.
Para obtener más información sobre estos elementos, consulte la referencia de los elementos de la política JSON de IAM. Para obtener una lista completa de acciones, recursos y claves de condición, consulte Acciones, recursos y claves de condición para la gestión de identidades y accesos.
Otorgar permisos a un director de IAM para usar un rol CloudFormation de servicio
Para aprovisionar recursos CloudFormation mediante la función de CloudFormation servicio, el director de IAM debe tener permisos para pasar la función de servicio. Puede limitar los permisos del director de IAM para transferir solo determinadas funciones especificando el ARN de la función en los permisos del director. Para obtener más información, consulte Otorgar permisos a un usuario para transferir un rol a un Servicio de AWS en la documentación de IAM.
La siguiente declaración de política de IAM basada en la identidad permite al director transferir las funciones, incluidas las de servicio, que se encuentren en el camino. cfnroles
El director no puede transferir funciones que se encuentren en una trayectoria diferente.
{ "Sid": "AllowPassingAppRoles", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
<account ID>
:role/cfnroles/*" }
Otro enfoque para limitar los directores a determinadas funciones consiste en utilizar un prefijo para los nombres de las funciones CloudFormation de servicio. La siguiente declaración de política permite a los directores de IAM transferir únicamente las funciones que tengan un prefijo. CFN-
{ "Sid": "AllowPassingAppRoles", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
<account ID>
:role/CFN-*" }
Además de las declaraciones de política anteriores, puede utilizar la clave de cloudformation:RoleARN
condición para proporcionar controles más detallados en la política basada en la identidad, a fin de reducir los privilegios de acceso. La siguiente declaración de política permite al director de IAM crear, actualizar y eliminar pilas solo si cumplen una función de servicio específica. CloudFormation Como variante, puede definir más ARNs de un rol de CloudFormation servicio en la clave de condición.
{ "Sid": "RestrictCloudFormationAccess", "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource": "arn:aws:iam::
<account ID>
:role/CFN-*", "Condition": { "StringEquals": { "cloudformation:RoleArn": [ "<ARN of the specific CloudFormation service role>
" ] } } }
Además, también puede usar la clave de cloudformation:RoleARN
condición para impedir que un director de IAM transfiera un rol de CloudFormation servicio altamente privilegiado para las operaciones de pila. El único cambio necesario es en el operador condicional, de StringEquals
aStringNotEquals
.
{ "Sid": "RestrictCloudFormationAccess", "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource": "arn:aws:iam::
<account ID>
:role/CFN-*", "Condition": { "StringNotEquals": { "cloudformation:RoleArn": [ "<ARN of a privilege CloudFormation service role>
" ] } } }
Configurar una política de confianza para el rol CloudFormation de servicio
Una política de confianza de roles es una política obligatoria basada en recursos que se adjunta a un rol de IAM. Una política de confianza define qué directores de IAM pueden asumir la función. En una política de confianza, puede especificar usuarios, funciones, cuentas o servicios como principales. Para evitar que los directores de IAM transfieran las funciones de servicio CloudFormation a otros servicios, puede especificarlas CloudFormation como principales en la política de confianza de la función.
La siguiente política de confianza permite que solo el CloudFormation servicio asuma la función de servicio.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "cloudformation.amazonaws.com" }, "Action": "sts:AssumeRole" } }
Asociar un rol de servicio a una pila
Una vez creado un rol de servicio, puede asociarlo a una pila al crear la pila. Para obtener más información, consulte Configurar las opciones de pila. Antes de especificar un rol de servicio, asegúrese de que los directores de IAM tengan permisos para transferirlo. Para obtener más información, consulte Otorgar permisos a un director de IAM para usar un rol CloudFormation de servicio.