Analise a movimentação do projeto

Este guia descreve como usar a API Cloud Asset Inventory Analyze Move para obter um relatório detalhado sobre avisos e bloqueadores de uma lista de sistemas de políticas críticas antes de mover efetivamente o seu projeto.

Ativar APIs

Selecione ou crie um projeto como projeto consumidor da API, ative a API Cloud Asset

Este projeto de consumidor pode ser diferente do projeto que planeia analisar e migrar. O projeto de consumidor vai ser usado para gerar credenciais para fazer pedidos de API.

A secção seguinte descreve as funções e as autorizações necessárias que têm de ser concedidas no projeto de origem que planeia analisar.

Autorizações necessárias

Para realizar uma análise de movimento de projeto, precisa de uma função que conceda a autorização cloudasset.assets.analyzeMove, como Cloud Asset Viewer ou Viewer.

Para receber análises sobre um serviço, também precisa de funções relacionadas com esses serviços. Estas autorizações incluem o seguinte:

  • Se quiser ver as políticas de permissão herdadas do recurso da organização principal do projeto de origem, precisa da autorização resourcemanager.organizations.getIamPolicy no recurso da organização principal do projeto de origem.

  • Se quiser ver as políticas de permissão herdadas da pasta principal do projeto de origem, precisa da autorização resourcemanager.folders.getIamPolicy na pasta principal do projeto de origem.

  • Se quiser ver as políticas de permissão no projeto, precisa da autorização resourcemanager.projects.getIamPolicy no projeto de origem.

  • Se quiser ver as políticas de negação herdadas do recurso da organização principal do projeto de origem, precisa da autorização iam.denypolicies.get no recurso da organização principal do projeto de origem.

  • Se quiser ver as políticas da organização que são herdadas neste projeto, precisa da autorização orgpolicy.policy.get no projeto de origem.

  • Se quiser ver as políticas de firewall do Compute Engine herdadas neste projeto, precisa da autorização compute.organizations.setSecurityPolicy no recurso de organização ou pasta de origem.

  • Se quiser ver as etiquetas herdadas neste projeto, precisa da autorização resourcemanager.hierarchyNodes.listEffectiveTags no projeto de origem ou nos respetivos nós antecessores.

Faça a análise

Pode usar a CLI do Google Cloud ou a API para analisar a migração de um recurso da respetiva localização atual na hierarquia de recursos.

gcloud

Para analisar os impactos da migração de um projeto da respetiva 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 mudança 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 mudança 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

Onde:

  • PROJECT_ID é o ID do projeto exclusivo do projeto que está a migrar. Por exemplo, --myProject123.

  • FOLDER_ID é o ID numérico da pasta de destino na qual realizar a análise. Por exemplo, 45678901123.

  • ORGANIZATION_ID é o ID numérico da organização de destino na qual realizar a análise. Por exemplo, 78901123456.

API

Para analisar os impactos da migração de um projeto da respetiva 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

Onde:

  • resource é o nome do recurso no qual realizar a análise. Apenas os recursos do projeto são suportados, pelo que tem de ser o ID do projeto ou um número do projeto. Por exemplo, projects/my-project-id ou projects/12345.

  • DESTINATION_NAME é o nome do recurso de pasta ou organização para reparentar o recurso de destino.Google Cloud A análise é realizada sobre os impactos da movimentação do recurso para o principal de destino especificado. O destino tem de ser um número de pasta ou um número de recurso da organização. Por exemplo, folders/123 ou organizations/123.

Mova as respostas de análise

A resposta que recebe da API Move Analysis é agrupada por nome do serviço. Abaixo de cada serviço, encontra uma lista de avisos e bloqueios aplicáveis a esta migração do projeto. Quaisquer bloqueadores devolvidos por esta análise significam que a migração do projeto vai ser bloqueada no tempo de execução se continuar com a mudança antes de os resolver.

Resolução de problemas de erros

Se a API Move Analysis devolver um erro, este inclui um código gRPC padrão, bem como uma mensagem que descreve o motivo da falha da API Move Analysis na análise do projeto.

A tabela seguinte descreve os códigos de erro que podem ser devolvidos pela API Move Analysis:

Nome do erro Código de erro Descrição
Argumento inválido 3 Devolvido se chamar a API num projeto com um argumento inválido, como um nome de recurso incorreto.
Autorização recusada 7 Devolvido se não tiver as autorizações necessárias para realizar a análise ou o projeto de origem não existir.
Internos 13 Devolvido se houver um problema com uma chamada para um sistema de políticas, como a gestão de identidade e acesso ou a política da organização. Isto não indica que a migração não seja possível e pode tentar novamente a análise depois de verificar se o serviço está indisponível.
Indisponível 14 Devolvido se um sistema interno estiver dessincronizado. Isto não indica que a migração não seja possível, e pode tentar novamente a análise.
Não autenticadas 16 Devolvido se não tiver fornecido as credenciais corretas para realizar esta análise.

Exemplo de mensagem de erro

O exemplo seguinte demonstra o código de erro devolvido para um utilizador que não tem a autorizaçã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 dos sistemas de políticas podem não conseguir analisar a movimentação de recursos. O exemplo seguinte demonstra o erro devolvido pelo serviço de firewall hierárquica quando o utilizador não tem autorização no projeto a ser migrado:compute.organizations.setSecurityPolicy

{
  "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}"
     }}]
}

O que se segue?

A API Move Analysis fornece detalhes que ajudam a mitigar bloqueadores e outros problemas ao mover um projeto de um recurso de organização para outro. Para mais informações sobre a migração de projetos entre recursos da organização, consulte o artigo Migrar projetos.