SEC03-BP02 Conceder acceso con privilegios mínimos
Se recomienda conceder exclusivamente el acceso que las identidades necesitan para realizar acciones concretas en recursos específicos en determinadas condiciones. Utilice atributos de grupo y de identidad para configurar dinámicamente los permisos en función de las necesidades en lugar de configurarlos para cada usuario. Por ejemplo, puede conceder acceso a un grupo de desarrolladores para que solamente puedan administrar recursos de su proyecto. De este modo, si un desarrollador abandona el proyecto, su acceso se revoca automáticamente sin cambiar las políticas de acceso subyacentes.
Resultado esperado: los usuarios solo tienen los permisos necesarios para desempeñar su trabajo. A los usuarios solo se les concede acceso a entornos de productos para llevar a cabo una tarea específica en un periodo de tiempo limitado y el acceso se debe revocar una vez terminada la tarea. Los permisos se deben revocar cuando no se necesiten, por ejemplo, cuando un usuario cambia de proyecto o de puesto. Los privilegios de administrador solo se deben conceder a un pequeño grupo de administradores de confianza. Los permisos se deben revisar periódicamente para evitar su acumulación. A las cuentas de máquinas o sistemas se les debe asignar el conjunto más reducido de permisos que sean necesarios para realizar sus tareas.
Antipatrones usuales:
-
Concesión predeterminada de permisos de administrador a los usuarios.
-
Uso del usuario raíz para las actividades cotidianas.
-
Creación de políticas excesivamente permisivas, pero sin todos los privilegios de administrador.
-
No revisar los permisos para averiguar si se les permite el acceso de privilegio mínimo.
Nivel de riesgo expuesto si no se establece esta práctica recomendada: alto
Guía para la implementación
El principio de privilegio mínimo establece que a las identidades solo les debe permitir realizar el menor conjunto de acciones necesarias para completar una tarea específica. De este modo, se equilibra la facilidad de uso, la eficiencia y la seguridad. Operar según este principio contribuye a limitar el acceso involuntario y a realizar el seguimiento de quién tiene acceso a determinados recursos. Los usuarios y roles de IAM no tienen permisos de forma predeterminada. El usuario raíz tiene acceso total de forma predeterminada y se debe controlar y supervisar de forma estricta. Únicamente se debe usar para tareas que requieran acceso raíz.
Las políticas de IAM se usan para conceder permisos a roles de IAM o recursos específicos. Por ejemplo, las políticas basadas en la identidad se pueden adjuntar a grupos de IAM, mientras que los buckets de S3 se pueden controlar mediante políticas basadas en recursos.
Al crear una política de IAM, puede especificar las acciones de servicio, los recursos y las condiciones que se deben cumplir para que AWS permita o deniegue el acceso. AWS es compatible con una amplia variedad de condiciones que le ayudarán a acotar el acceso. Por ejemplo, mediante la clave de condición PrincipalOrgID
, puede denegar acciones si el solicitante no forma parte de su organización de AWS.
También puede controlar las solicitudes que realicen los servicios de AWS en su nombre, como que AWS CloudFormation cree una función de AWS Lambda, mediante la clave de condición CalledVia
. Debe estratificar los diferentes tipos de políticas para establecer una defensa en profundidad y limitar los permisos generales de sus usuarios. También puede restringir qué permisos se pueden conceder y en qué condiciones. Por ejemplo, puede permitir que sus equipos de aplicaciones creen sus propias políticas de IAM para los sistemas que creen, pero también debe aplicar un límite de permiso
Pasos para la implementación
-
Implemente políticas de privilegio mínimo: asigne políticas de acceso con privilegio mínimo a grupos y roles de IAM para reflejar el rol o la función del usuario que haya definido.
-
Base las políticas en el uso de la API: una forma de determinar los permisos necesarios consiste en revisar los registros de AWS CloudTrail. Esta revisión le permite crear permisos adaptados a las acciones que el usuario realiza realmente en AWS. IAM Access Analyzer puede generar automáticamente una política de IAM basada
en la actividad . Puede usar IAM Access Advisor en el nivel de organización o de cuenta para realizar el seguimiento de la información a la que se ha accedido por última vez para una política concreta.
-
-
Considere la utilización de políticas administradas por AWS para funciones de trabajo. Cuando empiece a crear políticas de permisos detalladas, puede ser difícil saber por dónde empezar. AWS tiene políticas administradas para roles comunes, por ejemplo, facturación, administradores de bases de datos y científicos de datos. Estas políticas pueden servir para limitar el acceso que tienen los usuarios al mismo tiempo que se determina cómo implementar las políticas de privilegio mínimo.
-
Elimine los permisos innecesarios: elimine los permisos que no son necesarios y limite las políticas excesivamente permisivas. La generación de políticas de IAM Access Analyzer puede ser de ayuda en la optimización de las políticas de permisos.
-
Garantice que los usuarios cuenten con acceso limitado a los entornos de producción: los usuarios solo deben tener acceso a los entornos de producción con un motivo válido. Después de que el usuario lleve a cabo las tareas específicas que requieren el acceso a producción, se debe revocar el acceso. La limitación del acceso a los entornos de producción previene los eventos involuntarios que afectan a la producción y reduce el ámbito de las consecuencias del acceso involuntario.
-
Considere el uso de límites de permisos: un límite de permisos es una característica para usar una política administrada que establece los permisos máximos que una política basada en identidad puede conceder a una entidad de IAM. El límite de permisos de una identidad le permite llevar a cabo únicamente las acciones autorizadas tanto por sus políticas basadas en la identidad como por sus límites de permisos.
-
Considere el uso de etiquetas de recursos para los permisos: un modelo de control de acceso basado en atributos mediante etiquetas de recursos le permite conceder acceso según la finalidad del recurso, el propietario, el entorno u otros criterios. Por ejemplo, puede usar etiquetas de recursos para diferenciar entre los entornos de desarrollo y de producción. Con estas etiquetas, puede limitar a los desarrolladores al entorno de desarrollo. Mediante la combinación de las políticas de etiquetado y de permisos, puede conseguir un acceso detallado a los recursos sin necesidad de definir políticas complicadas y personalizadas para cada puesto.
-
Use las políticas de control de servicios para AWS Organizations. Las políticas de control de servicios controlan de forma centralizada el máximo de permisos disponibles para las cuentas de los miembros de su organización. Es importante destacar que las políticas de control de servicios le permiten restringir los permisos del usuario raíz en las cuentas de los miembros. Considere también la posibilidad de utilizar AWS Control Tower, que proporciona controles prescriptivos administrados que enriquecen AWS Organizations. También puede definir sus propios controles en Control Tower.
-
Establezca una política de ciclo de vida del usuario para la organización: las políticas de este tipo definen las tareas que se realizan cuando los usuarios se incorporan en AWS, cambian de rol o ámbito, o ya no necesitan acceder a AWS. Las revisiones de permisos se deben realizar durante cada paso del ciclo de vida de un usuario para verificar son restrictivos de forma correcta y para evitar la acumulación de permisos.
-
Establezca una programación periódica para revisar los permisos y eliminar los que no sean necesarios: debe revisar periódicamente el acceso de usuario para verificar que los usuarios no tengan permisos demasiado permisivos. AWS Config
y IAM Access Analyzer pueden ser de ayuda al auditar los permisos de usuario. -
Establezca una matriz de roles de trabajo: con una matriz de roles de trabajo se visualizan los distintos roles y los niveles de acceso necesarios en su presencia de AWS. Con una matriz de roles de trabajo, puede definir y separar los permisos según las responsabilidades de usuario en su organización. Use grupos en vez de aplicar permisos directamente a usuarios o roles individuales.
Recursos
Documentos relacionados:
-
Techniques for writing least privilege IAM policies
(Técnicas para elaborar políticas de IAM de privilegio mínimo) -
IAM Access Analyzer makes it easier to implement least privilege permissions by generating IAM
policies based on access activity (IAM Access Analyzer facilita la implementación de los permisos de privilegio mínimo al generar políticas de IAM basadas en la actividad de acceso) -
Delegate permission management to developers by using IAM permissions boundaries
(Delegar la administración de permisos para desarrolladores mediante límites de permisos de IAM) -
IAM policy types and when to use them (Tipos de políticas de IAM y cuándo utilizarlas)
-
Testing IAM policies with the IAM policy simulator (Prueba de las políticas de IAM con el simulador de políticas de IAM)
-
Guardrails in AWS Control Tower (Barreras de protección en AWS Control Tower)
-
Zero Trust architectures: An AWS perspective
(Arquitecturas de confianza cero: una perspectiva de AWS) -
How to implement the principle of least privilege with CloudFormation StackSets
(Cómo implementar el principio de privilegio mínimo con CloudFormation StackSets) -
Reducción del alcance de las políticas con datos de la actividad de los usuarios
-
Use el etiquetado para organizar el entorno y fomentar la responsabilidad
Vídeos relacionados:
-
Next-generation permissions management (Administración de permisos de nueva generación)
-
Zero Trust: An AWS perspective
(Confianza cero: una perspectiva de AWS) -
How can I use permissions boundaries to limit users and roles to prevent privilege escalation?
(¿Cómo puedo utilizar los límites de los permisos para restringir a los usuarios y los roles para evitar la escalada de privilegios?)
Ejemplos relacionados: