En esta guía, se describe cómo usar la API de análisis de movimiento Cloud Asset Inventory para obtener un informe detallado sobre las advertencias y los bloqueadores de una lista de sistemas de políticas esenciales antes de mover el proyecto.
Habilitar API
Selecciona o crea un proyecto como tu proyecto de consumidor de la API y habilita la API de Cloud Asset.
Este proyecto de consumidor puede ser diferente del proyecto que planeas analizar y migrar. El proyecto del consumidor se usará para generar credenciales para realizar solicitudes a la API.
En la siguiente sección, se describen los roles y permisos obligatorios que se deben otorgar en el proyecto de origen que planeas analizar.
Permisos necesarios
Para realizar un análisis de movimiento de proyectos, necesitas una función que otorgue el permiso cloudasset.assets.analyzeMove
, como Visualizador de recursos de Cloud o Visualizador.
Para recibir análisis sobre un servicio, también necesitas roles relacionados con esos servicios. Estos permisos incluyen lo siguiente:
Si deseas ver las políticas de permisos heredadas del recurso de organización principal del proyecto de origen, necesitas el permiso
resourcemanager.organizations.getIamPolicy
en el recurso de organización principal del proyecto de origen.Si deseas ver las políticas de permisos heredadas de la carpeta principal del proyecto de origen, necesitas el permiso
resourcemanager.folders.getIamPolicy
en la carpeta principal del proyecto de origen.Si deseas ver las políticas de permisos del proyecto, necesitas el permiso
resourcemanager.projects.getIamPolicy
en el proyecto de origen.Si deseas ver las políticas de denegación heredadas del recurso de organización principal del proyecto de origen, necesitas el permiso
iam.denypolicies.get
en el recurso de organización principal del proyecto de origen.Si deseas ver las políticas de la organización que se heredan en este proyecto, necesitas el permiso
orgpolicy.policy.get
en el proyecto de origen.Si deseas ver las políticas de firewall de Compute Engine que se heredan en este proyecto, necesitas el permiso
compute.organizations.setSecurityPolicy
en el recurso de organización o carpeta de origen.Si deseas ver las etiquetas heredadas en este proyecto, necesitas el permiso
resourcemanager.hierarchyNodes.listEffectiveTags
en el proyecto de origen o en sus nodos superiores.
Realiza el análisis
Puedes usar Google Cloud CLI o la API para analizar la migración de un recurso desde su ubicación actual en la jerarquía de recursos.
gcloud
Para analizar los impactos de migrar un proyecto desde su posición actual en la jerarquía de recursos, usa el comando gcloud asset analyze-move
:
gcloud asset analyze-move --project=PROJECT_ID \ (--destination-folder=FOLDER_ID \ | --destination-organization=ORGANIZATION_ID)
Para analizar los impactos de mover un proyecto a una carpeta diferente, ejecuta el comando con --destination-folder
:
gcloud asset analyze-move --project=PROJECT_ID \ --destination-folder=FOLDER_ID
Para analizar los impactos de mover un proyecto a una organización diferente, ejecuta el comando con --destination-organization
:
gcloud asset analyze-move --project=PROJECT_ID \ --destination-organization=ORGANIZATION_ID
Aquí:
PROJECT_ID
es el ID del proyecto único del proyecto que migrarás. Por ejemplo,--myProject123
FOLDER_ID
es el ID numérico de la carpeta de destino en la que se realizará el análisis. Por ejemplo,45678901123
ORGANIZATION_ID
es el ID numérico de la organización de destino en la que se realizará el análisis. Por ejemplo,78901123456
API
Para analizar los impactos de migrar un proyecto desde su posición actual en la jerarquía de recursos sin realizar el movimiento, usa el método cloudasset.analyzeMove:
GET https://cloudasset.googleapis.com/v1/{resource=*/*}: \ analyzeMove?destinationParent=DESTINATION_NAME
Aquí:
resource
es el nombre del recurso en el que se realizará el análisis. Solo se admiten recursos de proyectos, por lo que debe ser el ID o el número del proyecto. Por ejemplo,projects/my-project-id
oprojects/12345
.DESTINATION_NAME
es el nombre del recurso de la carpeta o la organizaciónGoogle Cloud al que se cambiará el recurso objetivo. El análisis se realizará sobre los impactos de mover el recurso al destino principal especificado. El destino debe ser un número de carpeta o un número de recurso de organización. Por ejemplo:folders/123
oorganizations/123
.
Respuestas del análisis de movimiento
La respuesta que recibes de la API de Move Analysis se agrupa por nombre de servicio. Debajo de cada servicio, se muestra una lista de advertencias y bloqueadores aplicables a esta migración del proyecto. Si este análisis devuelve algún bloqueo, significa que la migración del proyecto se bloqueará en el tiempo de ejecución si continúas con el movimiento antes de resolverlos.
Solución de errores
Si la API de análisis de movimiento muestra un error, incluye un código gRPC estándar, así como un mensaje que describe el motivo del error de la API de análisis de movimiento para analizar el proyecto.
En la siguiente tabla, se describen los códigos de error que podría devolver la API de Move Analysis:
Nombre del error | Código de error | Descripción |
---|---|---|
Argumento no válido | 3 | Se devuelve si llamas a la API en un proyecto con un argumento no válido, como un nombre de recurso incorrecto. |
Permiso denegado | 7 | Se devuelve si no tienes los permisos necesarios para realizar el análisis o si no existe el proyecto fuente. |
Interno | 13 | Se devuelve si hay un problema con una llamada a un sistema de políticas, como Identity and Access Management o la política de la organización. Esto no indica que la migración no sea posible, y puedes volver a intentar el análisis después de verificar si el servicio tiene una interrupción. |
No disponible | 14 | Se devuelve si un sistema interno no está sincronizado. Esto no indica que la migración no sea posible, y puedes volver a realizar el análisis. |
Sin autenticar | 16 | Se devuelve si no proporcionaste las credenciales correctas para realizar este análisis. |
Ejemplo de mensaje de error
En el siguiente ejemplo, ilustra el código de error que se muestra para un usuario que no tiene el permiso cloudasset.assets.analyzeMove
en el proyecto que se migrará:
{
"error": {
"code": 403,
"message": "Failed to fetch Project: projects/test-project-service-3 to perform
move analysis.",
"status": "PERMISSION_DENIED"}
}
Es posible que algunos de los sistemas de políticas no logren analizar el movimiento del recurso. En el siguiente ejemplo, se muestra el error que devuelve el servicio de Firewall jerárquico cuando el usuario no tiene permiso compute.organizations.setSecurityPolicy
en el proyecto que se migrará:
{
"moveAnalysis": [{
"displayName": "name hidden",
"analysis": {
"warnings": [{
"detail": "details hidden"
}]
}
}, {
"displayName": "name hidden",
"analysis": {
"warnings": [{
"detail": "details hidden"
}]
}
}, {
"displayName": "Hierarchical Firewall",
"error": {
"code": 7,
"message": "Failed to retrieve inherited security policies to perform
analysis. Required 'compute.organizations.setSecurityPolicy'
permission for {resource ID}"
}}]
}
¿Qué sigue?
La API de Move Analysis proporciona detalles que ayudan a mitigar los bloqueos y otros problemas cuando se mueve un proyecto de un recurso de organización a otro. Para obtener más información sobre la migración de proyectos entre recursos de organización, consulta Migra proyectos.