Control de acceso con IAM

En esta página, se describen los roles de Identity and Access Management (IAM) que puedes usar para configurar Secret Manager. Los roles limitan la capacidad de una principal para acceder a los recursos. Siempre otorga el conjunto mínimo de permisos necesarios para realizar una tarea determinada.

Funciones de administrador secreto

A continuación, se muestran los roles de IAM asociados con Secret Manager. Para obtener información sobre cómo otorgar, cambiar o revocar el acceso a los recursos mediante roles de IAM, consulta Otorga, cambia y revoca el acceso a los recursos.

Role Permissions

(roles/secretmanager.admin)

Full access to administer Secret Manager resources.

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.*

  • secretmanager.locations.get
  • secretmanager.locations.list
  • secretmanager.secrets.create
  • secretmanager.secrets.createTagBinding
  • secretmanager.secrets.delete
  • secretmanager.secrets.deleteTagBinding
  • secretmanager.secrets.get
  • secretmanager.secrets.getIamPolicy
  • secretmanager.secrets.list
  • secretmanager.secrets.listEffectiveTags
  • secretmanager.secrets.listTagBindings
  • secretmanager.secrets.setIamPolicy
  • secretmanager.secrets.update
  • secretmanager.versions.access
  • secretmanager.versions.add
  • secretmanager.versions.destroy
  • secretmanager.versions.disable
  • secretmanager.versions.enable
  • secretmanager.versions.get
  • secretmanager.versions.list

(roles/secretmanager.secretAccessor)

Allows accessing the payload of secrets.

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.versions.access

(roles/secretmanager.secretVersionAdder)

Allows adding versions to existing secrets.

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.versions.add

(roles/secretmanager.secretVersionManager)

Allows creating and managing versions of existing secrets.

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.versions.add

secretmanager.versions.destroy

secretmanager.versions.disable

secretmanager.versions.enable

secretmanager.versions.get

secretmanager.versions.list

(roles/secretmanager.viewer)

Allows viewing metadata of all Secret Manager resources

Lowest-level resources where you can grant this role:

  • Secret

resourcemanager.projects.get

resourcemanager.projects.list

secretmanager.locations.*

  • secretmanager.locations.get
  • secretmanager.locations.list

secretmanager.secrets.get

secretmanager.secrets.getIamPolicy

secretmanager.secrets.list

secretmanager.secrets.listEffectiveTags

secretmanager.secrets.listTagBindings

secretmanager.versions.get

secretmanager.versions.list

Principio de privilegio mínimo

Cuando sigues el principio de privilegio mínimo, otorgas el nivel mínimo de acceso a los recursos necesarios para realizar una tarea determinada. Por ejemplo, si un principal necesita acceso a un solo secreto, no le otorgues acceso a otros secretos o a todos los secretos del proyecto o la organización. Si un principal solo necesita leer un secreto, no le otorgues al principal la capacidad de modificar el secreto.

Puedes usar IAM para otorgar funciones y permisos de IAM a nivel del secreto, el proyecto, la carpeta o la organización de Google Cloud. Aplica siempre los permisos en el nivel más bajo en la jerarquía de recursos.

En la siguiente tabla, se muestran las capacidades efectivas de una cuenta de servicio, según el nivel de la jerarquía de recursos en la que se otorga el rol de descriptor de acceso a secretos de Secret Manager (roles/secretmanager.secretAccessor).

Jerarquía de recursos Función
Secret Accede solo a ese secreto
Proyecto Accede a todos los secretos del proyecto.
Carpeta Accede a todos los secretos de todos los proyectos de la carpeta
Organización Accede a todos los secretos de todos los proyectos de la organización

El rol roles/owner incluye el permiso "secretmanager.versions.access", pero roles/editor y roles/viewer no.

Si una principal solo necesita acceder al valor de un solo secreto, no le otorgues al principal la capacidad de acceder a todos los secretos. Por ejemplo, puedes otorgar a una cuenta de servicio la función de descriptor de acceso a secretos de Secret Manager (roles/secretmanager.secretAccessor) en un solo secreto.

Si un principal solo necesita administrar un único secreto, no otorgues a ese principal la capacidad de administrar todos los secretos. Por ejemplo, puedes otorgar el rol de administrador de Secret Manager (roles/secretmanager.admin) a una cuenta de servicio en un solo secreto.

Condiciones de IAM

Las condiciones de IAM te permiten definir y aplicar el control de acceso condicional basado en atributos para algunos recursos de Google Cloud, incluidos los recursos de Secret Manager.

En Secret Manager, puedes aplicar el acceso condicional según los siguientes atributos:

  • Atributos de fecha y hora: Se usan para configurar el acceso programado, con vencimiento o de duración limitada a los recursos de Secret Manager. Por ejemplo, puedes permitir que un usuario acceda a un secreto hasta una fecha específica.
  • Atributos de recursos: Se usa para configurar el acceso condicional según el nombre, el tipo o los atributos del servicio de recursos. En Secret Manager, puedes usar atributos de secretos y versiones de secretos para configurar el acceso condicional. Por ejemplo, puedes permitir que un usuario administre versiones de secretos solo en secretos que comienzan con un prefijo específico o que puede acceder a una versión del secreto específica.

Para obtener más información sobre las Condiciones de IAM, consulta la descripción general de las Condiciones.

¿Qué sigue?