View a markdown version of this page

Funciones de servicio para CloudFormation - AWS Guía prescriptiva

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 Las ventajas de este enfoque son las siguientes:

  • 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 los recursos mediante la infraestructura como código.

Por ejemplo, para crear una pila que contenga una instancia de Amazon Elastic Compute Cloud (Amazon EC2), la entidad principal de IAM tendría que contar con permisos para crear instancias de EC2 mediante su política basada en identidades. En su lugar, CloudFormation pueden asumir una función de servicio con permisos para crear instancias de EC2 en nombre del director. Con este enfoque, la entidad principal de IAM puede crear la pila y no es necesario conceder a la entidad principal de IAM permisos demasiado amplios para un servicio al que no debe tener acceso normal.

Para usar una función de servicio para crear CloudFormation pilas, los directores de IAM deben tener permisos para transferirle la función de servicio y la política de confianza de la función de servicio debe CloudFormation permitir asumirla. CloudFormation

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 manera explícita qué acciones puede llevar a cabo el servicio. Es posible que no sean las mismas acciones que puede realizar una entidad principal 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 de manera adecuada la política basada en identidades de una entidad principal de IAM para asignar solo roles de servicio específicos y establecer el ámbito de la política de confianza de un rol de servicio para permitir que solo personas específicas asuman el rol ayuda a evitar una posible escalada de privilegios a través de roles de servicio.

Configuración de los roles de servicio

nota

Los roles de servicio se configuran en IAM. Para crear un rol de servicio, debe tener los permisos correspondientes. 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 políticas de muestra basadas en identidades que permiten a los usuarios crear roles de servicio, consulte Permisos del rol 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. De este modo, se evita que una entidad principal de IAM asuma el rol por sí misma o la transfiera a otros servicios. Al configurar un rol de servicio, se requieren los elementos Effect, Action y Resource. Si lo desea, también puede definir un elemento Condition.

Para más información acerca de estos elementos, consulte Referencia de los elementos de la política de JSON de IAM. Para obtener una lista completa de acciones, recursos y claves de condición, consulte Actions, resources, and condition keys for Identity And Access Management.

Otorgar a un director de IAM permisos 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 de la entidad principal de IAM para transferir solo roles determinados. Para ello, especifique el ARN del rol en los permisos de la entidad principal. Para más información, consulte Conceder permisos a un usuario para transferir un rol a un Servicio de AWS en la documentación de IAM.

La instrucción siguiente de la política de IAM basada en identidades permite a la entidad principal transferir los roles, por ejemplo, los roles de servicio, que se encuentren en la ruta de cfnroles. La entidad principal no puede transferir roles que se encuentren en una trayectoria distinta.

{ "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 de CloudFormation servicio. La instrucción siguiente de política permite a las entidades principales de IAM transferir solo los roles que tengan un prefijo CFN-.

{ "Sid": "AllowPassingAppRoles", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::<account ID>:role/CFN-*" }

Además de las instrucciones de política anteriores, puede utilizar la clave de condición cloudformation:RoleARN para proporcionar controles más detallados en la política basada en identidades, para el acceso de privilegio mínimo. 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 a StringNotEquals.

{ "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 la función de CloudFormation servicio

Una política de confianza de rol es una política basada en recursos obligatoria que se vincula a un rol de IAM. Una política de confianza define qué entidades principales de IAM pueden asumir el rol. En una política de confianza, puede especificar los usuarios, los roles, las cuentas o los servicios como entidades 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" } }

Asociación de un rol de servicio a una pila

Una vez creado un rol de servicio, puede asociarlo a una pila al crear la pila. Para más información, consulte Configurar las opciones de pila. Antes de especificar un rol de servicio, asegúrese de que las entidades principales de IAM tengan permisos para pasarla. Para obtener más información, consulte Otorgar a un director de IAM permisos para usar un rol CloudFormation de servicio.