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
ouprojects/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
ouorganizations/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.