Esta página mostra as etapas para migrar um Google Cloud projeto de um recurso de organização para outro ou de nenhum recurso de organização para um recurso de organização.
Para migrar um projeto, verifique se você tem as permissões corretas do Identity and Access Management (IAM) e se políticas específicas da organização estão configuradas nos recursos de origem e de destino.
Antes de começar
A migração de um projeto é uma operação entre organizações. Para evitar a movimentação não autorizada de recursos, atenda aos seguintes requisitos.
Funções exigidas
Para receber as permissões necessárias para migrar projetos entre recursos da organização, peça ao administrador para conceder a você os seguintes papéis do IAM:
- Administrador do IAM do projeto (
roles/resourcemanager.projectIamAdmin) no projeto que você quer migrar entre recursos da organização - Transportador de projeto (
roles/resourcemanager.projectMover) no recurso pai do projeto (pasta ou recurso da organização) -
Se o recurso de destino for uma pasta:
Transportador de projeto (
roles/resourcemanager.projectMover) no recurso de destino -
Se o recurso de destino for uma organização:
Criador de projetos (
roles/resourcemanager.projectCreator) no recurso de destino
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando personalizados papéis ou outros predefinidos papéis.
Esses papéis precisam ser concedidos à mesma conta de usuário nas organizações de origem e de destino. Esses papéis predefinidos contêm as permissões necessárias para migrar projetos. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias.
Permissões necessárias
As permissões a seguir são necessárias para migrar projetos:
resourcemanager.projects.getIamPolicyno projeto que você quer migrar entre recursos da organizaçãoresourcemanager.projects.updateno projeto que você quer migrar entre recursos da organizaçãoresourcemanager.projects.moveno recurso pai do projeto (pasta ou recurso da organização)- Se o recurso de destino for uma pasta:
resourcemanager.projects.moveno recurso de destino - Se o recurso de destino for uma organização:
resourcemanager.projects.createno recurso de destino - Se você quiser migrar um projeto que não está associado a uma organização:
resourcemanager.projects.setIamPolicyno projeto que você quer migrar
Também é possível receber essas permissões com uma função personalizada ou outras funções predefinidas.
Políticas da organização necessárias
Por padrão, a migração de projetos é restrita. É necessário permitir explicitamente a exportação e a importação definindo políticas da organização na raiz das duas organizações. Para configurar as políticas da organização necessárias para a migração, você precisa ter o papel roles/orgPolicy.policyAdmin na organização pai e de destino.
No recurso da organização de origem: defina a política
constraints/resourcemanager.allowedExportDestinations. Adicione o ID da organização de destino como um valor permitido.No recurso da organização de destino: defina a política
constraints/resourcemanager.allowedImportSources. Adicione o ID da organização de origem como um valor permitido.
Faça a migração
Depois que as permissões forem concedidas e as políticas forem aplicadas, você poderá migrar o projeto usando a Google Cloud CLI ou a API Resource Manager.
gcloud
Para migrar um projeto para outro recurso de organização, execute o seguinte comando:
gcloud beta projects move PROJECT_ID \
--organization ORGANIZATION_ID
Também é possível especificar uma pasta como o recurso de destino com o seguinte comando:
gcloud beta projects move PROJECT_ID \
--folder FOLDER_ID
Substitua os seguintes campos:
- PROJECT_ID: o ID ou número do projeto que você quer migrar.
- ORGANIZATION_ID: o ID do recurso da organização para o qual você está movendo o projeto.
- FOLDER_ID: o ID da pasta para a qual você está movendo o projeto.
Só é possível especificar um destino, seja uma pasta ou um recurso de organização.
API
Usando a API Resource Manager v1, é possível migrar um projeto entre recursos da organização definindo o campo parent como o ID do recurso de destino.
Para migrar um projeto, faça o seguinte:
- Receba o objeto
projectusando o métodoprojects.get(). - Atualize o campo
parentpara o ID do recurso de destino. - Execute o método
projects.update().
O snippet de código a seguir demonstra essas etapas:
project = crm.projects().get(projectId=flags.projectId).execute()
project['parent'] = {
'type': 'organization',
'id': flags.organizationId
}
project = crm.projects().update(
projectId=flags.projectId, body=project).execute()
Tarefas pós-migração
Depois de migrar o projeto, realize várias tarefas pós-migração para garantir a continuidade das operações, a conformidade de segurança e o faturamento adequado. A migração de um projeto muda a hierarquia de recursos, o que afeta as permissões herdadas e as políticas no nível da organização.
Confira algumas etapas que podem ser concluídas após a migração:
Verificação de políticas: verifique se o projeto está herdando as políticas da organização esperadas do novo pai.
Controle de acesso: audite os papéis do IAM para garantir que os usuários da nova organização tenham o acesso necessário.
Faturamento: atualize a conta de faturamento se o projeto precisar ser faturado para a organização de destino. Essa é uma etapa opcional. Para mais detalhes, consulte Alterar a conta de faturamento de um projeto e Migrar uma conta de faturamento entre recursos da organização.
Limpeza: revogue os papéis temporários de transportador de projeto e remova as restrições
allowedExportDestinationseallowedImportSources.
Alterar a conta de faturamento de um projeto
É possível usar as contas do Cloud Billing nos recursos da organização. Migrar um projeto de um recurso de organização para outro não afeta o faturamento, e as cobranças continuarão sendo feitas na conta de faturamento antiga. No entanto, a migração de projetos entre recursos da organização geralmente também inclui um requisito de migração para uma nova conta de faturamento.
Para alterar a conta de faturamento, siga as instruções abaixo.
- Acesse a página Faturamento no Google Cloud console.
Acessar a página "Faturamento" - Clique no nome da conta de faturamento que você quer alterar.
- Em Projetos vinculados a esta conta de faturamento, localize o nome do projeto que será migrado e clique no botão de menu à direita.
- Clique em Alterar faturamento e selecione a nova conta de faturamento.
- Clique em Definir conta.
As cobranças já incorridas, mas que ainda não apareceram no histórico de faturamento, serão efetuadas na conta de faturamento anterior. Isso pode incluir cobranças de até dois dias antes da migração do projeto.
Migrar uma conta de faturamento entre recursos da organização
É possível migrar uma conta de faturamento de um recurso de organização para outro, mesmo que isso não seja uma etapa necessária. A maioria dos recursos da organização atuais já tem uma conta de faturamento para ser usada.
Se uma nova conta de faturamento não tiver um recurso de organização associado a ela, você precisará receber o papel roles/billing.admin na conta de faturamento e os papéis roles/billing.admin e roles/billing.creator no recurso da organização que você quer associar à sua conta de faturamento.
Se você precisar migrar uma conta de faturamento atual, faça o seguinte:
- Noconsole, acesse a página Faturamento. Google Cloud
Acessar a página "Faturamento" - Clique no nome da conta de faturamento que você quer migrar.
- Na parte de cima da página Gerenciamento de contas, clique em Alterar organização.
- Selecione o recurso da organização de destino e clique em Ok.
A conta de faturamento agora está associada ao recurso da organização especificado.
Reverter uma migração
Google Cloud As migrações entre organizações não são reverter automaticamente se ocorrer um problema durante ou após a migração. Se você precisar reverter uma migração, faça uma reversão manual.
Se você migrou um projeto por engano, reverta a operação realizando a migração novamente, com a origem antiga como o novo destino e o destino antigo como a nova origem. Você precisa ter as permissões de IAM necessárias e as políticas da organização aplicadas para permitir isso como se fosse uma migração totalmente nova.
Para reverter uma migração, faça o seguinte:
- Troque os IDs de origem e destino nas políticas da organização (
allowedExportDestinationseallowedImportSources). - Repita o comando de migração, movendo o projeto de volta para o ID de origem original.