En esta guía, se muestra a los usuarios de Cloud Source Repositories (CSR) cómo se traducen sus controles de acceso a Secure Source Manager (SSM). Para seguir esta guía, debes conocer IAM y CSR, y tener conocimientos básicos de SSM.
Modelos de recursos
El CSR tiene un Google Cloud recurso que es secundario de un proyecto:
- Un repositorio,
projects/<var>project</var>/repositories/<var>repo</var>
SSM tiene dos recursos que son secundarios regionalizados de un proyecto:
- Una instancia,
projects/<var>project</var>/locations/<var>location</var>/instances/<var>instance</var> - Un repositorio, que es el equivalente más directo a un repositorio de CSR y debe adjuntarse a una instancia de SSM (pero no es un elemento secundario de ella) en el mismo proyecto y ubicación.
projects/<var>project</var>/locations/<var>location</var>/repositories/<var>repo</var>
SSM tiene otros recursos, pero se modelan como elementos secundarios del repositorio. En esta guía, se consideran parte del repositorio.
Funciones
El CSR tiene tres roles: roles/source.reader, roles/source.writer y roles/source.admin. Puedes vincular los roles de lector y escritor a un repositorio o proyecto. Solo debes vincular el rol de administrador a un proyecto, ya que el permiso source.repos.create solo se aplica al alcance del proyecto.
SSM tiene 11 roles para las principales de usuario, lo que representa un aumento significativo en comparación con Cloud Source Repositories. Puedes agrupar estos roles en dos categorías (además de un rol de superusuario).
El rol de superusuario (roles/securesourcemanager.admin) otorga todos los permisos de SSM. Debes vincular este rol a un proyecto, ya que los permisos de instancia no se aplican si los vinculas a un repositorio, y los permisos de repositorio no se aplican si los vinculas a una instancia.
Roles de instancia de SSM
Los roles de instancia otorgan permisos para acceder a la IU de una instancia de Secure Source Manager y conectarse a ella con Git. Debes otorgarles a los usuarios al menos un rol de instancia para permitirles acceder a los repositorios en la instancia. Puedes vincular estos roles a un recurso de instancia o a un proyecto.
| Rol | Permisos |
|---|---|
roles/securesourcemanager.instanceAccessor |
Acceder a una instancia y a sus repositorios Se requiere para que los roles a nivel del repositorio sean efectivos. |
roles/securesourcemanager.instanceManager |
Administrar la configuración a nivel de la instancia |
roles/securesourcemanager.instanceOwner |
Control total sobre la configuración de instancias |
roles/securesourcemanager.instanceRepoCreator |
Crea repositorios en una instancia. |
roles/securesourcemanager.sshKeyUser |
Administra las claves SSH para la autenticación en una instancia. No otorga acceso a la instancia por sí solo. |
Roles del repositorio de SSM
Los roles de repositorio otorgan permisos en los repositorios dentro de una instancia de Secure Source Manager. Puedes vincular estos roles a un recurso de repositorio o a un proyecto, excepto repoCreator, que debes vincular a un proyecto.
| Rol | Permisos |
|---|---|
roles/securesourcemanager.repoAdmin |
Control total sobre un repositorio, incluidos la configuración del repositorio y el acceso de los usuarios |
roles/securesourcemanager.repoPullRequestApprover |
Aprobar solicitudes de extracción en un repositorio |
roles/securesourcemanager.repoReader |
Leer el contenido del repositorio y ver las solicitudes de extracción y los problemas |
roles/securesourcemanager.repoWriter |
Leer y escribir contenido del repositorio, y administrar solicitudes de extracción y problemas |
roles/securesourcemanager.repoCreator |
Crea repositorios nuevos dentro de un proyecto. |
Asignación de roles de CSR a SSM
Para usar SSM de manera eficaz, necesitas al menos dos roles: un rol de instancia y un rol de repositorio. No hay un mapeo de uno a uno entre un rol de CSR y un rol de SSM. Estas recetas proporcionan acceso equivalente solo para el control de código fuente, no para las funciones de SSM, como solicitudes de extracción, problemas o administración de instancias.
En CSR, podías crear repositorios en varios proyectos. En Secure Source Manager, todos los repositorios de una instancia pertenecen al mismo proyecto que la instancia. Si vinculas algún rol a nivel del proyecto en Secure Source Manager, otorgas los permisos de ese rol a todos los repositorios de esa instancia. Si solo necesitas otorgar permisos a repositorios específicos, usa vinculaciones a nivel del repositorio.
Cómo asignar source.reader
Si vinculaste este rol a nivel del repositorio, vincula securesourcemanager.repoReader en el recurso del repositorio y securesourcemanager.instanceAccessor en la instancia del host para recrear el mismo nivel de acceso. Si vinculaste el rol a nivel del proyecto, la vinculación de repoReader y instanceAccessor a nivel del proyecto otorga acceso de lectura a todos los repositorios de la instancia.
Asignación de source.writer
Si vinculaste este rol a nivel del repositorio, vincula securesourcemanager.repoWriter en el recurso del repositorio y securesourcemanager.instanceAccessor en la instancia del host para recrear el mismo nivel de acceso. Si vinculaste el rol a nivel del proyecto, la vinculación de repoWriter y instanceAccessor a nivel del proyecto otorga acceso de escritura a todos los repositorios de la instancia.
Cómo asignar source.admin
Solo vinculas este rol a nivel del proyecto. Puedes volver a crearla vinculando una combinación de securesourcemanager.instanceAccessor, securesourcemanager.repoAdmin, securesourcemanager.instanceRepoCreator y securesourcemanager.repoCreator a nivel del proyecto. Esta combinación de roles otorga permiso para crear repositorios en cualquier instancia del proyecto y otorga a los administradores permisos para todos los repositorios en cualquier instancia del proyecto. Para otorgar todos los permisos de SSM de la misma manera en que source.admin otorgó todos los permisos de CSR, vincula el rol de superusuario, securesourcemanager.admin, a nivel del proyecto.
Diferencias entre SSM y CSR
En esta sección, se describen los cambios clave en la forma en que Secure Source Manager controla los roles y permisos en comparación con Cloud Source Repositories.
Otorgamiento de rol implícito
Cuando creas un recurso de repositorio nuevo, a la principal que realiza la llamada se le otorga automáticamente el rol repoAdmin en el recurso de repositorio recién creado.
Nuevos tipos de recursos
SSM tiene más funciones que CSR, y estas funciones se modelan como nuevos tipos de recursos.
Estas funciones incluyen reglas de protección de ramas, hooks, problemas y solicitudes de extracción, además de comentarios sobre problemas y solicitudes de extracción. Estos recursos son secundarios del recurso de repositorio. Los roles de repositorio incluyen permisos para estos recursos.
Por ejemplo, repoAdmin y repoWriter proporcionan acceso de escritura, mientras que repoReader solo otorga acceso de lectura.
Roles detallados
SSM incluye roles detallados que proporcionan controles de acceso específicos.
roles/securesourcemanager.repoPullRequestApproversolo otorga permiso para aprobar solicitudes de extracción. Usa este rol conrepoReaderyinstanceAccessorpara permitir que un usuario acceda a una instancia, navegue por el repositorio y apruebe solicitudes de extracción sin modificar otros datos.roles/securesourcemanager.repoCreatorsolo otorga permiso para crear repositorios en un proyecto. Como los repositorios deben adjuntarse a una instancia, también debes tenerroles/securesourcemanager.instanceRepoCreatorpara adjuntar un repositorio a una instancia. Usaroles/securesourcemanager.repoCreatorconinstanceRepoCreatorpara otorgar permisos para crear repositorios y adjuntarlos a una instancia.