Veja neste guia como usar a API Cloud Asset Inventory Analyze Move para ver um relatório detalhado sobre avisos e bloqueadores de uma lista de sistemas de políticas críticas antes de migrar seu projeto.
Ative as APIs
Selecione ou crie um projeto como o projeto de consumidor da API, ative a API Cloud Asset
Esse projeto de consumidor pode ser diferente do projeto que você planeja analisar e migrar. O projeto do consumidor será usado para gerar credenciais e fazer solicitações de API.
A próxima seção descreve os papéis e as permissões necessários que precisam ser concedidos no projeto de origem que você planeja analisar.
Atribuir permissões
Para executar uma análise de migração de projetos, você precisa de um papel que conceda a
permissão cloudasset.assets.analyzeMove
, como Visualizador de recursos do Cloud ou
Visualizador.
Para analisar um serviço, você também precisa de papéis relacionados a ele. Essas permissões incluem o seguinte:
Se você quiser conferir as políticas de IAM herdadas do recurso de organização pai do projeto de origem, será necessário ter a permissão
resourcemanager.organizations.getIamPolicy
no recurso de organização pai do projeto de origem.Se você quiser ver as políticas de IAM herdadas da pasta pai do projeto de origem, precisará da permissão
resourcemanager.folders.getIamPolicy
na pasta pai do projeto de origem.Se você quiser ver as políticas de IAM no projeto, precisará da permissão
resourcemanager.projects.getIamPolicy
no projeto de origem.Para visualizar as políticas da organização herdadas neste projeto, é preciso ter a permissão
orgpolicy.policy.get
no projeto de origem.Para visualizar as políticas de firewall do Compute Engine herdadas neste projeto, é necessário ter a permissão
compute.organizations.setSecurityPolicy
na pasta de origem ou no recurso da organização.Se você quiser conferir as tags herdadas neste projeto, é necessário ter a permissão
resourcemanager.hierarchyNodes.listEffectiveTags
no projeto de origem ou nos nós ancestrais.
Realize a análise
Use a CLI ou a API do Google Cloud para analisar a migração de um recurso do local atual na hierarquia dele.
gcloud
Para analisar os impactos da migração de um projeto da posição atual na
hierarquia de recursos, use o comando gcloud asset analyze-move
:
gcloud asset analyze-move --project=PROJECT_ID \ (--destination-folder=FOLDER_ID \ | --destination-organization=ORGANIZATION_ID)
Para analisar os impactos da transferência de um projeto para uma pasta diferente, execute
o comando com --destination-folder
:
gcloud asset analyze-move --project=PROJECT_ID \ --destination-folder=FOLDER_ID
Para analisar os impactos da transferência de um projeto para uma organização diferente,
execute o comando com --destination-organization
:
gcloud asset analyze-move --project=PROJECT_ID \ --destination-organization=ORGANIZATION_ID
Em que:
PROJECT_ID
é o ID do projeto exclusivo do projeto que você está migrando. Por exemplo,--myProject123
.FOLDER_ID
é o ID numérico da pasta de destino em que a análise será realizada. Por exemplo,45678901123
.ORGANIZATION_ID
é o ID numérico da organização de destino em que a análise será realizada. Por exemplo,78901123456
.
API
Para analisar os impactos da migração de um projeto da posição atual na hierarquia de recursos sem realizar a mudança, use o método cloudasset.analyzeMove:
GET https://cloudasset.googleapis.com/v1/{resource=*/*}: \ analyzeMove?destinationParent=DESTINATION_NAME
Em que:
resource
é o nome do recurso em que a análise será realizada. Somente recursos de projeto são aceitos. Portanto, esse valor precisa ser o ID ou o número do projeto. Por exemplo,projects/my-project-id
ouprojects/12345
.DESTINATION_NAME
é o nome da pasta ou do recurso de organização do Google Cloud para tornar o recurso de destino um filho. A análise será realizada sobre os impactos da transferência do recurso para o pai de destino especificado. O destino precisa ser um número de pasta ou de recurso de organização. Por exemplo,folders/123
ouorganizations/123
.
Mover as respostas da análise
A resposta que você recebe da API Move Analysis é agrupada por nome de serviço. Em cada serviço há uma lista de avisos e bloqueadores aplicáveis a essa migração. Os bloqueadores retornados por essa análise significam que a migração do projeto será bloqueada no momento da execução se você prosseguir com a transferência antes de resolvê-los.
Como solucionar erros
Se um erro for retornado pela API Move Analysis, ele incluirá um código gRPC padrão, além de uma mensagem que descreve o motivo da falha da análise do movimento{101 }API para analisar o projeto.
A tabela a seguir descreve os códigos de erro que podem ser retornados pela API Move Analysis:
Nome do erro | Código do erro | Descrição |
---|---|---|
Argumento inválido | 3 | Retornado se você chamar a API em um projeto com um argumento inválido, como um nome de recurso incorreto. |
Permissão negada | 7 | Retornado se você não tiver as permissões necessárias para realizar a análise ou se o projeto de origem não existir. |
Interno | 13 | Retornado se houver um problema com uma chamada para um sistema de políticas, como o gerenciamento de identidade e acesso ou a política da organização. Isso não indica que a migração não é possível e é possível repetir a análise depois de verificar o serviço em busca de uma interrupção. |
Indisponível | 14 | Retornado se um sistema interno não estiver sincronizado. Isso não indica que a migração não é possível, e é possível repetir a análise. |
Não autenticado | 16 | Retornado se você não tiver fornecido as credenciais corretas para realizar essa análise. |
Exemplo de mensagem de erro
O exemplo a seguir demonstra o código de erro retornado para um usuário que não
tem a permissão cloudasset.assets.analyzeMove
no projeto a ser migrado:
{ "error": { "code": 403, "message": "Failed to fetch Project: projects/test-project-service-3 to perform move analysis.", "status": "PERMISSION_DENIED"} }
Alguns sistemas de políticas podem não analisar a mudança do recurso. O exemplo
a seguir demonstra o erro retornado do serviço Hierárquico Firewall
quando o usuário não tem a permissão compute.organizations.setSecurityPolicy
no projeto a ser migrado:
{ "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}" }}] }
A seguir
A API Move Analysis fornece detalhes que ajudam a reduzir bloqueadores e outros problemas ao mover um projeto de um recurso de organização para outro. Para mais informações sobre como migrar projetos entre recursos da organização, consulte Como migrar projetos.