Control de acceso con IAM

En este documento, se describen las opciones de control de acceso disponibles en Secret Manager.

Asigna funciones IAM

Secret Manager usa la administración de identidades y accesos (IAM) para el control de acceso. Para crear, administrar, enumerar o acceder a un secreto, se deben otorgar los permisos de IAM adecuados a nivel de proyecto y de recurso individual. Puedes otorgar una o más funciones predefinidas o crear y otorgar funciones personalizadas. No se pueden otorgar funciones de IAM en una versión del Secret.

Para agregar una función, sigue estos pasos:

  1. Ve a la página IAM en la consola de Google Cloud.

    Ir a IAM

  2. Haz clic en la lista Selector de proyectos en la parte superior de la página.

  3. En el cuadro de diálogo Seleccionar de que aparece, elige la organización para la que deseas habilitar Secret Manager.

  4. En la página IAM, junto a tu nombre de usuario, haz clic en Editar.

  5. En el panel Editar permisos que aparece, agrega los roles necesarios.

    1. Haz clic en Agregar otro rol. Selecciona una función para agregar, como Usuario con acceso a secretos de Secret Manager.

    2. Para agregar más funciones, repite el paso anterior. Haz clic en Guardar.

Las funciones de administración de identidades y accesos (IAM) prescriben cómo puedes usar la API de Secret Manager. En la siguiente tabla, se enumera cada función de IAM disponible para Secret Manager y las capacidades otorgadas a esa función.

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 menor privilegio

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 eficaces de una cuenta de servicio, según el nivel de la jerarquía de recursos en la que se otorga la función 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

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 a una cuenta de servicio el rol de administrador de Secret Manager (roles/secretmanager.admin) 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 usa para configurar el acceso programado, con vencimiento o de duración limitada en 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 Descripción general de las Condiciones.

¿Qué sigue?