En organizaciones grandes, puede ser útil permitir que los equipos administren de forma independiente las políticas de permisos para sus recursos. Sin embargo, permitir que una principal otorgue o revoque todos los roles de IAM puede aumentar en gran medida tu riesgo de seguridad.
Puedes establecer límites para los roles que una principal puede otorgar y revocar con las Condiciones de Identity and Access Management (IAM) y el atributo de API iam.googleapis.com/modifiedGrantsByRole
. Estos límites te permiten crear administradores de IAM limitados que pueden administrar las políticas de permisos de su equipo, pero solo dentro de los límites que configuraste.
Antes de comenzar
Enable the Resource Manager API.
Familiarízate con la estructura de las políticas de permisos.
Comprende las condiciones de IAM.
Permisos necesarios
Para obtener los permisos que necesitas a fin de crear administradores de IAM limitados para un proyecto, organización o carpeta, pídele a tu administrador que te otorgue los siguientes roles de IAM en el recurso para el que deseas crear un administrador de IAM limitado (proyecto, organización o carpeta):
- A fin de crear un administrador de IAM limitado para un proyecto: Administrador de IAM de proyecto (
roles/resourcemanager.projectIamAdmin
) - A fin de crear un administrador de IAM limitado para una carpeta: Administrador de carpetas (
roles/resourcemanager.folderAdmin
) - A fin de crear un administrador de IAM limitado para un proyecto, organización o carpeta: Administrador de organización (
roles/resourcemanager.organizationAdmin
)
Si quieres obtener más información para otorgar funciones, consulta Administra el acceso.
Estos roles predefinidos contienen los permisos necesarios a fin de crear administradores de IAM limitados para un proyecto, una carpeta o una organización. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos a fin de crear administradores de IAM limitados para un proyecto, organización o carpeta:
-
A fin de crear un administrador de IAM limitado para un proyecto:
-
resourcemanager.projects.getIamPolicy
-
resourcemanager.projects.setIamPolicy
-
-
A fin de crear un administrador de IAM limitado para una carpeta:
-
resourcemanager.folders.getIamPolicy
-
resourcemanager.folders.setIamPolicy
-
-
A fin de crear un administrador de IAM limitado para una organización:
-
resourcemanager.organizations.getIamPolicy
-
resourcemanager.organizations.setIamPolicy
-
También puedes obtener estos permisos con funciones personalizadas o con otras funciones predefinidas
Casos de uso habituales
En las siguientes secciones, se describe cómo puedes usar la función de otorgamiento limitado de roles para habilitar la administración de autoservicio de las políticas de permisos.
Crea administradores de IAM limitados
Considera una situación en la que deseas permitir que un usuario, Finn (finn@example.com
), actúe como un administrador de IAM limitado para tu proyecto. Deseas que Finn pueda otorgar y revocar solo los roles de administrador de App Engine (roles/appengine.appAdmin
) y visualizador de App Engine (roles/appengine.appViewer
) para tu proyecto.
Para otorgar esta capacidad limitada, debes otorgar de forma condicional la función de administrador de IAM de proyecto (roles/resourcemanager.projectIamAdmin
). La función de administrador de IAM de proyecto permite que Finn otorgue y revoque funciones de IAM, y la condición limita qué funciones Finn puede otorgar y revocar:
{ "version": 3, "etag": "BwWKmjvelug=", "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "finn@example.com" ], "role": "roles/resourcemanager.projectIamAdmin", "condition": { "title": "only_appengine_admin_viewer_roles", "description": "Only allows changes to role bindings with the App Engine Admin or Viewer roles", "expression": "api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/appengine.appAdmin', 'roles/appengine.appViewer'])" } } ] }
Esta vinculación de función condicional le permite a Finn hacer lo siguiente:
- Otorgar los roles de administrador de App Engine y visualizador de App Engine para el proyecto
- Revocar los roles de administrador de App Engine y visualizador de App Engine para el proyecto
- Agregar, quitar o modificar las condiciones de las vinculaciones de roles a nivel de proyecto que otorgan los roles de administrador de App Engine y visualizador de App Engine
- Realizar otras acciones permitidas por el rol Project IAM Admin que no modifican la política de permisos del proyecto. Por ejemplo, Finn puede usar el método
projects.getIamPolicy
para obtener la política de permisos del proyecto.
Esta vinculación de funciones condicionales no permite que Finn haga lo siguiente:
- Modificar las políticas de permisos para recursos que no sean el proyecto.
- Otorgar roles que no sean los de administrador de App Engine o visualizador de App Engine
- Revocar roles que no sean los de administrador de App Engine o visualizador de App Engine.
- Agregar, quitar o modificar las condiciones de las vinculaciones de roles que no otorgan los roles de administrador de App Engine o visualizador de App Engine
Permite que los usuarios administren administradores de IAM limitados
Imagina una situación en la que quieres que la usuaria, Lila, sea una administradora de IAM limitada para su equipo. Quieres que Lila pueda otorgar y revocar solo la función de administrador de Compute (roles/compute.admin
) en su proyecto.
Sin embargo, deseas permitir que Lila seleccione a otros usuarios para que actúen como administradores de IAM limitados. En otras palabras, deseas permitir que Lila permita a otros usuarios otorgar y revocar solo la función de Administrador de Compute.
Quizás pienses que la solución es otorgarle a Lila la función de administrador de IAM de proyecto (roles/resourcemanager.projectIamAdmin
) y, luego, darle la capacidad de otorgar o revocar esa función a otras personas. Sin embargo, si otorgas a Lila la función de administrador de IAM de proyecto, podría quitar la condición de su propia función y otorgarle la capacidad de otorgar o revocar cualquier función de IAM.
Para evitar esta elevación de privilegios, crea un grupo de Google, iam-compute-admins@example.com
, para los administradores de IAM limitados del proyecto. Luego, debes agregar a Lila al grupo y convertirla en una administradora de grupo.
Después de crear el grupo, debes otorgar de forma condicional al grupo la función de administrador de IAM de proyecto (roles/resourcemanager.projectIamAdmin
). La función de administrador de IAM de proyecto permite a los miembros del grupo otorgar y revocar funciones de IAM, y la condición limita las funciones que pueden otorgar y revocar:
{ "version": 3, "etag": "BwWKmjvelug=", "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "iam-compute-admins@example.com" ], "role": "roles/resourcemanager.projectIamAdmin", "condition": { "title": "only_compute_admin_role", "description": "Only allows changes to role bindings for the Compute Admin role", "expression": "api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/compute.admin'])" } } ] }
Como miembro del grupo iam-compute-admins@example.com
, Lila puede hacer lo siguiente:
- Otorga la función de administrador de Compute del proyecto mediante la adición de una vinculación nueva de la función o la incorporación de una principal a una vinculación existente de la función.
- Para revocar la función de administrador de Compute, quita una vinculación existente de la función o quita una principal de una vinculación existente de la función.
- Modifica las concesiones de la función de administrador de Compute mediante la adición, eliminación o modificación de condiciones adjuntas a vinculaciones de la función.
- Realizar otras acciones permitidas por el rol Project IAM Admin que no modifican la política de permisos del proyecto. Por ejemplo, podría usar el método
projects.getIamPolicy
para obtener la política de permisos del proyecto.
Como administrador del grupo iam-compute-admins@example.com
, Lila puede permitir que otros usuarios otorguen o revoquen la función de administrador de Compute agregándolos al grupo iam-compute-admins@example.com
.
Lila no puede hacer lo siguiente:
- Darse a sí misma la capacidad de otorgar o revocar otras funciones
- Modificar las políticas de permisos para recursos que no sean el proyecto.
- Otorgar funciones distintas de la función de administrador de Compute
- Revocar funciones distintas de la función de administrador de Compute
- Agregar, quitar o modificar las condiciones de las vinculaciones de funciones que no otorgan la función de administrador de Compute
Limita la asignación de roles
En las siguientes secciones, se explica cómo permitir que las principales otorguen o revoquen solo ciertas funciones.
Escribe una expresión de condición para limitar la asignación de roles
Si deseas limitar la capacidad de una principal para otorgar funciones, escribe una expresión de condición que especifique las funciones que un miembro puede otorgar o revocar.
Usa el siguiente formato para tu expresión de condición:
api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(roles)
Esta expresión hace lo siguiente:
Obtiene el atributo API
iam.googleapis.com/modifiedGrantsByRole
con la funciónapi.getAttribute()
.Para una solicitud a fin de establecer la política de permisos de un recurso, este atributo contiene los nombres de los roles de las vinculaciones que la solicitud modifica. Para otros tipos de solicitudes, el atributo no se define. En estos casos, la función muestra el valor predeterminado (
[]
).Usa el
hasOnly()
Common Expression Language (CEL) para definir y aplicar las funciones que la principal tiene permitido otorgar o revocar.La entrada para la función
hasOnly()
es una lista de las funciones que la principal puede otorgar o revocar. Si las funciones del atributoiam.googleapis.com/modifiedGrantsByRole
se incluyen en esta lista, la función muestratrue
. Si no son iguales, la función muestrafalse
.Si el atributo
iam.googleapis.com/modifiedGrantsByRole
contiene el valor predeterminado ([]
), la función muestratrue
, porque[]
no contiene ninguna función que no esté incluida en la lista.
Para personalizar esta expresión, reemplaza roles
por una lista de las funciones que la principal tiene permitido otorgar o revocar. Por ejemplo, para permitir que la principal otorgue o revoque solo el Editor de Pub/Sub (roles/pubsub.editor
) y publicador de Pub/Sub (roles/pubsub.publisher
) usa el valor ['roles/pubsub.editor', 'roles/pubsub.publisher']
.
Puedes incluir hasta 10 valores en la lista de funciones permitidas. Todos estos valores deben ser constantes de string.
Operadores lógicos para declaraciones hasOnly()
No uses los operadores &&
o ||
para unir varias declaraciones hasOnly()
en una sola condición. Si lo haces, las solicitudes que otorgan o revocan varios roles pueden fallar, incluso si la principal puede otorgar o revocar esos roles de forma individual.
Por ejemplo, considera la siguiente condición:
api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []) .hasOnly(['roles/pubsub.editor']) || api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []) .hasOnly(['roles/pubsub.publisher'])
Esta condición se evalúa como true
si una solicitud otorga el rol roles/pubsub.editor
o el rol roles/pubsub.publisher
, pero se evalúa como false
si una solicitud otorga ambos roles roles/pubsub.editor
y roles/pubsub.publisher
.
Limita la asignación de roles con vinculaciones de roles condicionales
Para permitir que una principal otorgue o revoque solo ciertas funciones, usa la expresión de condición de la sección anterior para crear una vinculación de funciones condicionales. Luego, agrega la vinculación de rol condicional a la política de permisos de un recurso.
Selecciona un recurso que represente el alcance para el que quieres que una principal otorgue y revoque funciones:
- Si quieres permitir que una principal otorgue y revoque ciertas funciones para todos los recursos dentro de una organización, selecciona una organización.
- Si quieres permitir que una principal otorgue y revoque ciertas funciones para todos los recursos dentro de una carpeta, selecciona una carpeta.
- Si deseas permitir que una principal otorgue y revoque ciertas funciones para todos los recursos dentro de un proyecto, selecciona un proyecto.
Selecciona un rol que permita que una principal configure la política de permisos para el tipo de recurso seleccionado (proyecto, carpeta u organización). Para seguir el principio de mínimo privilegio, elige uno de los siguientes roles predefinidos:
- Proyectos: Administrador de IAM de proyecto (
roles/resourcemanager.projectIamAdmin
) - Carpetas: Administrador de IAM de carpeta (
roles/resourcemanager.folderIamAdmin
) Organizaciones: Administrador de la organización (
roles/resourcemanager.organizationAdmin
).
Como alternativa, elige una función personalizada que incluya los permisos
resourcemanager.resource-type.setIamPolicy
yresourcemanager.resource-type.getIamPolicy
, donderesource-type
esproject
,folder
oorganization
.- Proyectos: Administrador de IAM de proyecto (
Otorga de forma condicional a una principal la función elegida en el proyecto, la carpeta o la organización que seleccionaste.
Se aplica la nueva política, y tu principal puede modificar las vinculaciones solo para los roles que hayas permitido.
Console
En la consola de Google Cloud, ve a la página IAM.
Asegúrate de que el nombre de tu proyecto, organización o carpeta aparezca en el selector de recursos en la parte superior de la página. El selector de recursos te indica en qué proyecto, carpeta u organización estás trabajando.
Si no ves el nombre de tu recurso, haz clic en el selector de recursos y, luego, selecciona tu recurso.
En la lista de principales, busca la principal que otorgará y revocará las funciones y haz clic en el botón
.En el panel Editar permisos, selecciona la función que elegiste antes. Luego, en Condición de IAM (opcional), haz clic en Agregar condición de IAM.
En el panel Editar condición, ingresa un título y una descripción opcional para la condición.
Haz clic en la pestaña Editor de condición y, luego, ingresa la expresión que escribiste en Escribe una expresión de condición para limitar la concesión de funciones. Esta expresión limita las funciones que la principal puede otorgar o revocar.
Por ejemplo, la siguiente expresión de condición limita la principal a otorgar y revocar las funciones de editor de Pub/Sub (
roles/pubsub.editor
) y publicador de Pub/Sub (roles/pubsub.publisher
):api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])
Advertencia: No incluyas los siguientes tipos de funciones en la lista de funciones permitidas:
-
Funciones con permisos para otorgar y revocar funciones de IAM (es decir, funciones con nombres de permisos que terminan en
setIamPolicy
). -
Funciones personalizadas que el administrador de IAM limitado puede modificar. Por ejemplo, si el administrador de IAM limitado también tiene la función de administrador de funciones (
roles/iam.roleAdmin
) en un proyecto, no le permita otorgar o revocar funciones personalizadas a nivel de proyecto.
Los administradores de IAM limitados que pueden otorgar y revocar estos tipos de funciones pueden otorgarse el permiso para otorgar y revocar todas las funciones de IAM. Consulta Escribe una expresión de condición para limitar el otorgamiento de funciones a fin de obtener más información.
-
Funciones con permisos para otorgar y revocar funciones de IAM (es decir, funciones con nombres de permisos que terminan en
Haz clic en Guardar para aplicar la condición.
Después de cerrar el panel Editar condición, haz clic en Guardar en el panel Editar permisos para actualizar tu política de permisos.
gcloud
Las políticas de permisos se establecen mediante el patrón de lectura-modificación-escritura.
Primero, lee la política de permisos para el recurso:
Ejecuta el comando
get-iam-policy
. Con este comando, se obtiene la política de permisos actual del recurso.Comando:
gcloud resource-type get-iam-policy resource-id --format=json > path
Reemplaza los siguientes valores:
resource-type
: El tipo de recurso para el que deseas permitir que una principal otorgue o revoque funciones. Usa una de las siguientes opciones:projects
,resource-manager folders
oorganizations
.resource-id
: Tu ID de la organización, carpeta y proyecto de Google Cloud.path
: La ruta de acceso del archivo a la que se descargará la política de permisos.
La política de permisos se guarda en formato JSON, por ejemplo:
{ "bindings": [ { "members": [ "user:project-owner@example.com" ], "role": "roles/owner" } ], "etag": "BwWKmjvelug=", "version": 1 }
A continuación, modifica la política de permisos.
Para permitir que una principal solo modifique las vinculaciones de ciertas funciones, agrega la vinculación de funciones condicionales destacada:
{ "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "principal" ], "role": "role", "condition": { "title": "title", "description": "description", "expression": "expression" } } ], "etag": "BwWKmjvelug=", "version": 3 }
Reemplaza los siguientes valores:
principal
: La principal que otorgará o revocará ciertos roles. Por ejemplo,user:my-user@example.com
Para ver los formatos de cada tipo de principal, consulta la referencia deBinding
.role
: la función que elegiste en los pasos anteriores. Esta función debe incluir el permisosetIamPolicy
para el tipo de recurso que elegiste.title
: Una string que describe de forma breve la condición. Por ejemplo,only_pubsub_roles
description
: Opcional Una descripción adicional para la condición. Por ejemplo,Only allows granting/revoking the Pub/Sub editor and publisher roles
expression
: la expresión que escribiste en Escribe una expresión de condición para limitar el otorgamiento de funciones. Esta expresión limita las funciones que la principal puede otorgar o revocar.Por ejemplo, la siguiente expresión de condición limita la principal a otorgar y revocar las funciones de editor de Pub/Sub (
roles/pubsub.editor
) y publicador de Pub/Sub (roles/pubsub.publisher
):api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])
Advertencia: No incluyas los siguientes tipos de funciones en la lista de funciones permitidas:
-
Funciones con permisos para otorgar y revocar funciones de IAM (es decir, funciones con nombres de permisos que terminan en
setIamPolicy
). -
Funciones personalizadas que el administrador de IAM limitado puede modificar. Por ejemplo, si el administrador de IAM limitado también tiene la función de administrador de funciones (
roles/iam.roleAdmin
) en un proyecto, no le permita otorgar o revocar funciones personalizadas a nivel de proyecto.
Los administradores de IAM limitados que pueden otorgar y revocar estos tipos de funciones pueden otorgarse el permiso para otorgar y revocar todas las funciones de IAM. Consulta Escribe una expresión de condición para limitar el otorgamiento de funciones a fin de obtener más información.
-
Funciones con permisos para otorgar y revocar funciones de IAM (es decir, funciones con nombres de permisos que terminan en
Por último, escribe la política de permisos actualizada:
Configura la política de permisos nueva mediante la ejecución del comando
set-iam-policy
para el recurso:gcloud resource-type set-iam-policy resource-id path
Reemplaza los siguientes valores:
resource-type
: El tipo de recurso para el que deseas permitir que una principal otorgue o revoque funciones. Usa una de las siguientes opciones:projects
,resource-manager folders
oorganizations
.resource-id
: Tu ID de la organización, carpeta y proyecto de Google Cloud.path
: Una ruta de acceso al archivo que contiene la política de permisos actualizada.
Se aplica la nueva política de permisos y la principal podrá modificar las vinculaciones solo de los roles que hayas permitido.
REST
Las políticas de permisos se establecen mediante el patrón de lectura-modificación-escritura.
Primero, lee la política de permisos para el recurso:
El método
getIamPolicy
de la API de Resource Manager obtiene la política de permisos de un proyecto, una carpeta o una organización.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
API_VERSION
: La versión de la API que se usará. Para los proyectos y las organizaciones, usav1
. Para las carpetas, usav2
.RESOURCE_TYPE
: El tipo de recurso cuya política deseas administrar. Usa el valorprojects
,folders
oorganizations
.RESOURCE_ID
: El proyecto ID de la carpeta, la organización o el proyecto de Google Cloud. Los ID de proyecto son strings alfanuméricas, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.POLICY_VERSION
: Es la versión de la política que se mostrará. Las solicitudes deben especificar la versión de política más reciente, que es la versión de política 3. Consulta Especifica una versión de política cuando obtienes una política para obtener más detalles.
Método HTTP y URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:getIamPolicy
Cuerpo JSON de la solicitud:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Para enviar tu solicitud, expande una de estas opciones:
La respuesta contiene la política de permisos del recurso. Por ejemplo:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/owner", "members": [ "user:owner@example.com" ] } ] }
A continuación, modifica la política de permisos.
Agrega una vinculación de función condicional que permita a una principal otorgar y revocar solo ciertas funciones. Asegúrate de cambiar el campo
version
al valor3
:{ "version": 3, "etag": "BwWKmjvelug=", "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "PRINCIPAL" ], "role": "ROLE", "condition": { "title": "TITLE", "description": "DESCRIPTION", "expression": "EXPRESSION" } } ] }
PRINCIPAL
: La principal que otorgará o revocará ciertos roles. Por ejemplo,user:my-user@example.com
Para ver los formatos de cada tipo de principal, consulta la referencia deBinding
.ROLE
: la función que elegiste en los pasos anteriores. Esta función debe incluir el permisosetIamPolicy
para el tipo de recurso que elegiste.TITLE
: Una string que describe de forma breve la condición. Por ejemplo,only_pubsub_roles
DESCRIPTION
: Opcional Una descripción adicional para la condición. Por ejemplo,Only allows granting/revoking the Pub/Sub editor and publisher roles
EXPRESSION
: la expresión que escribiste en Escribe una expresión de condición para limitar el otorgamiento de funciones. Esta expresión limita las funciones que la principal puede otorgar o revocar.Por ejemplo, la siguiente expresión de condición limita la principal a otorgar y revocar las funciones de editor de Pub/Sub (
roles/pubsub.editor
) y publicador de Pub/Sub (roles/pubsub.publisher
):api.getAttribute('iam.googleapis.com/modifiedGrantsByRole', []).hasOnly(['roles/pubsub.editor', 'roles/pubsub.publisher'])
Advertencia: No incluyas los siguientes tipos de funciones en la lista de funciones permitidas:
-
Funciones con permisos para otorgar y revocar funciones de IAM (es decir, funciones con nombres de permisos que terminan en
setIamPolicy
). -
Funciones personalizadas que el administrador de IAM limitado puede modificar. Por ejemplo, si el administrador de IAM limitado también tiene la función de administrador de funciones (
roles/iam.roleAdmin
) en un proyecto, no le permita otorgar o revocar funciones personalizadas a nivel de proyecto.
Los administradores de IAM limitados que pueden otorgar y revocar estos tipos de funciones pueden otorgarse el permiso para otorgar y revocar todas las funciones de IAM. Consulta Escribe una expresión de condición para limitar el otorgamiento de funciones a fin de obtener más información.
-
Funciones con permisos para otorgar y revocar funciones de IAM (es decir, funciones con nombres de permisos que terminan en
Por último, escribe la política de permisos actualizada:
El método
setIamPolicy
de la API de Resource Manager establece la política de permisos en la solicitud como la política de permisos nueva para el proyecto, la carpeta o la organización.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
API_VERSION
: La versión de la API que se usará. Para los proyectos y las organizaciones, usav1
. Para las carpetas, usav2
.RESOURCE_TYPE
: El tipo de recurso cuya política deseas administrar. Usa el valorprojects
,folders
oorganizations
.RESOURCE_ID
: El proyecto ID de la carpeta, la organización o el proyecto de Google Cloud. Los ID de proyecto son strings alfanuméricas, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.-
POLICY
: Una representación JSON de la política que deseas establecer. Para obtener más información sobre el formato de una política, consulta Referencia de políticas.Por ejemplo, para establecer la política que se muestra en el paso anterior, reemplaza
POLICY
por lo siguiente:{ "version": 3, "etag": "BwWKmjvelug=", "bindings": [ { "members": [ "user:owner@example.com" ], "role": "roles/owner" }, { "members": [ "principal" ], "role": "role", "condition": { "title": "title", "description": "description", "expression": "expression" } } ] }
Método HTTP y URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:setIamPolicy
Cuerpo JSON de la solicitud:
{ "policy": POLICY }
Para enviar tu solicitud, expande una de estas opciones:
La respuesta contiene la política de permisos actualizada:
¿Qué sigue?
- Aplica el principio de privilegio mínimo con recomendaciones de roles.
- Obtén información sobre cómo usar las condiciones de IAM para configurar el acceso temporal y configurar el acceso basado en recursos.