Para usar o Infrastructure Manager para criar, atualizar ou eliminar uma implementação, tem de usar uma conta de serviço. O Infra Manager executa o Terraform com a identidade desta conta de serviço.
Não precisa de uma conta de serviço para ver informações sobre implementações do Infra Manager.
Esta página explica como configurar uma conta de serviço para poder implementar recursos com o Infrastructure Manager.
Antes de começar
- Ative o serviço Infra Manager
- Crie uma conta de serviço ou identifique uma conta de serviço existente para usar com o Infra Manager.
Conceda acesso à conta de serviço
Para usar o Infrastructure Manager para criar, atualizar ou eliminar uma implementação, um utilizador individual precisa de acesso à conta de serviço.
Conceda ao utilizador a função do IAM
utilizador da conta de serviço (roles/iam.serviceAccountUser
)
para a conta de serviço.
Conceda autorizações para o Infra Manager
Para trabalhar com o Infra Manager, a conta de serviço precisa da função
Agente do Infra Manager (roles/config.agent
).
Isto concede autorizações ao Infra Manager para criar, atualizar e
eliminar recursos:
gcloud projects add-iam-policy-binding INFRA_MANAGER_PROJECT_ID \
--member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
--role="roles/config.agent"
Substituição:
INFRA_MANAGER_PROJECT_ID: O ID do projeto onde está a criar implementações.
SERVICE_ACCOUNT_EMAIL: o email da conta de serviço.
Para ver detalhes sobre como conceder autorizações a contas de serviço, consulte o artigo Faça a gestão do acesso a contas de serviço.
Conceda autorização de leitura para o contentor de armazenamento
Pode usar um contentor de armazenamento para armazenar as configurações do Terraform implementadas pelo Infra Manager.
Se usar um contentor de armazenamento para as configurações e este contentor de armazenamento estiver num projeto diferente do projeto onde está a executar o Infra Manager, tem de garantir que a conta de serviço que usa para chamar o Infra Manager tem autorização de leitura para o contentor. Para ver detalhes sobre as autorizações do Cloud Storage, consulte o artigo Autorizações de IAM para o Cloud Storage.
Se o contentor de armazenamento estiver no mesmo projeto que o Infra Manager e tiver concedido roles/config.agent
à conta de serviço, a autorização de leitura para o contentor já está ativada.
Para ver detalhes sobre como carregar uma configuração para um contentor de armazenamento, consulte o artigo Carregue uma configuração do Terraform.
Conceda autorizações para recursos definidos na configuração
Para criar e gerir Google Cloud recursos definidos na configuração do Terraform, a conta de serviço precisa de autorizações específicas para estes recursos.
Autorizações específicas dos recursos Google Cloud definidos na configuração do Terraform que está a implementar. Por exemplo, a autorização para criar uma instância de VM do Compute Engine é
compute.instances.create
.Autorizações específicas dos Google Cloud recursos definidos na configuração do Terraform da implementação que está a atualizar.
Por exemplo, suponhamos que a sua implementação aprovisiona uma VM do Compute Engine e, em seguida, atualiza a implementação através de uma configuração que não inclui uma VM do Compute Engine. Neste caso, quando atualiza a revisão, a conta de serviço precisa de:
Autorizações para os recursos definidos na nova configuração.
Autorizações para os recursos que estão a ser eliminados, como a VM do Compute Engine neste exemplo.
Para obter ajuda na identificação das autorizações necessárias para os recursos nas configurações do Terraform, consulte o artigo Escolha funções predefinidas.
Para ver detalhes sobre como conceder autorizações a contas de serviço, consulte o artigo Faça a gestão do acesso a contas de serviço.
Conceda acesso em vários projetos
São necessárias autorizações adicionais se a conta de serviço fornecida estiver num projeto diferente do projeto onde o serviço Infra Manager é executado.
Para conceder estas autorizações adicionais:
Certifique-se de que a conta de serviço tem a função Agente do Infra Manager (
roles/config.agent
) no projeto que executa o Infra Manager. Consulte o artigo Conceda autorizações para o Infra Manager para ver instruções sobre como conceder autorizações.No projeto que tem a conta de serviço, certifique-se de que a
iam.disableCrossProjectServiceAccountUsage
restrição da política da organização não é aplicada. Esta restrição é aplicada por predefinição.Para desativar esta restrição de política de organização, execute o seguinte comando:
gcloud resource-manager org-policies disable-enforce iam.disableCrossProjectServiceAccountUsage --project=SERVICE_ACCOUNT_PROJECT_ID
Substitua SERVICE_ACCOUNT_PROJECT_ID pelo ID do projeto que contém a conta de serviço.
No projeto que tem a conta de serviço, conceda a função
roles/iam.serviceAccountUser
ao agente de serviço do Infra Manager do projeto onde está a criar implementações:gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-config.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountUser"
Substituição:
- SERVICE_ACCOUNT_PROJECT_ID: o ID do projeto do projeto que contém a conta de serviço.
- INFRA_MANAGER_PROJECT_NUMBER: o número do projeto onde está a criar implementações. Isto forma o ID de email do agente do serviço:
service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-config.iam.gserviceaccount.com
Conceda a função Criador de tokens de contas de serviço (
roles/iam.serviceAccountTokenCreator
) ao agente de serviço do Cloud Build no projeto onde está a criar implementações. Para permitir que o Infra Manager execute o Terraform usando o Cloud Build, o agente de serviço do Cloud Build no projeto que contém a conta de serviço precisa de autorizações adicionais como parte da configuração entre projetos:gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"
O que se segue?
- Saiba mais sobre a IAM.
- Saiba mais sobre o Terraform com Google Cloud.
- Implemente infraestrutura com o Infra Manager.
- Atualize uma implementação.
- Veja o estado de uma implementação.