Cada acionador do Eventarc está associado a uma conta de serviço da gestão de identidade e de acesso (IAM) no momento em que o acionador é criado. O acionador usa a conta de serviço como identidade predefinida.
Por predefinição, não pode criar uma conta de serviço de IAM num Google Cloud projeto e anexá-la a um recurso noutro projeto. No entanto, pode ter centralizado as contas de serviço da sua organização em projetos separados, o que pode facilitar a gestão das contas de serviço. Este documento descreve os passos necessários para suportar a anexação de uma conta de serviço num projeto a um acionador do Eventarc noutro projeto.
Se não tiver as autorizações para realizar estes passos, peça a um administrador para os concluir.
Ative a utilização de contas de serviço em vários projetos
Conclua os seguintes passos no projeto da conta de serviço.
Na Google Cloud consola, aceda à página Políticas de organização.
Se a política Desativar utilização da conta de serviço entre projetos estiver aplicada, tem de a desativar.
Para mais informações, consulte o artigo Ative a associação de contas de serviço a vários projetos.
Crie a sua conta de serviço e anote o nome.
Conceda autorizações para a autenticação da conta de serviço
Os principais podem usar contas de serviço para fazer a autenticação de algumas formas diferentes. Cada tipo de autenticação requer que o principal tenha autorizações de IAM específicas na conta de serviço. Para mais informações, consulte o artigo Funções para autenticação de contas de serviço.
Conceda a função de IAM de criador de tokens de contas de serviço (
roles/iam.serviceAccountTokenCreator
) ao agente de serviço do Eventarc do projeto que contém o acionador. Google Cloud Isto permite que o agente do serviço faça a gestão do acesso entre projetos para a conta de serviço. Um agente de serviço é a identidade de um determinado serviço para um projeto específico. Google Cloud Para mais informações, consulte o artigo Agentes de serviços.Consola
Na Google Cloud consola, aceda à página Contas de serviço.
Selecione o projeto proprietário da conta de serviço que vai anexar ao acionador do Eventarc.
Clique no endereço de email da conta de serviço que criou anteriormente.
Clique no separador Autorizações.
Na secção Membros com acesso a esta conta de serviço, clique em
Conceder acesso.No campo Novos membros, introduza o endereço de email do agente de serviço do Eventarc:
service-EVENTARC_PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
Substitua
EVENTARC_PROJECT_NUMBER
pelo Google Cloud número do projeto que contém o acionador.Clique em Adicionar outra função.
Na lista Selecionar uma função, filtre por Criador de tokens de contas de serviços e, de seguida, selecione a função.
Clique em Guardar.
gcloud
Execute o comando
gcloud iam service-accounts add-iam-policy-binding
:gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_NAME@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com \ --member='serviceAccount:service-EVENTARC_PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com' \ --role='roles/iam.serviceAccountTokenCreator'
Substitua o seguinte:
SERVICE_ACCOUNT_NAME
: o nome da sua conta de serviçoSERVICE_ACCOUNT_PROJECT_ID
: o Google Cloud ID do projeto proprietário da conta de serviçoEVENTARC_PROJECT_NUMBER
: o Google Cloud número do projeto que contém o acionador
Conceda a função de IAM utilizador da conta de serviço (
roles/iam.serviceAccountUser
) a todos os responsáveis que criam acionadores, por exemplo, o agente de serviço do Eventarc do projeto que contém o acionador. Google Cloud Esta função predefinida contém a autorizaçãoiam.serviceAccounts.actAs
, que é necessária para anexar uma conta de serviço a um recurso.Consola
Conceda a função no projeto para permitir que o principal se faça passar por várias contas de serviço:
Na Google Cloud consola, aceda à página IAM.
Selecione o projeto proprietário da conta de serviço.
Clique em
Conceder acesso.No campo Novos membros, introduza o endereço de email do membro.
Na lista Selecionar uma função, filtre por Utilizador da conta de serviço e, em seguida, selecione a função.
Clique em Guardar.
Em alternativa, conceda a função na conta de serviço para permitir que o principal se faça passar apenas por uma conta de serviço específica:
Na Google Cloud consola, aceda à página Contas de serviço.
Selecione o projeto proprietário da conta de serviço.
Clique no endereço de email da conta de serviço que criou anteriormente.
Clique no separador Autorizações.
Na secção Membros com acesso a esta conta de serviço, clique em
Conceder acesso.No campo Novos membros, introduza o endereço de email do membro.
Clique em Adicionar outra função.
Na lista Selecionar uma função, filtre por Utilizador da conta de serviço e, em seguida, selecione a função.
Clique em Guardar.
gcloud
Execute o comando
gcloud projects add-iam-policy-binding
e conceda a função no projeto para permitir que o principal se faça passar por várias contas de serviço:gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member=PRINCIPAL \ --role='roles/iam.serviceAccountUser'
Em alternativa, execute o comando
gcloud iam service-accounts add-iam-policy-binding
e conceda a função na conta de serviço para permitir que o principal se faça passar apenas por uma conta de serviço específica:gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_RESOURCE_NAME \ --member=PRINCIPAL \ --role='roles/iam.serviceAccountUser'
Substitua o seguinte:
SERVICE_ACCOUNT_PROJECT_ID
: o Google Cloud ID do projeto proprietário da conta de serviçoPRINCIPAL
: um identificador do criador do acionador no formatouser|group|serviceAccount:email
oudomain:domain
. Por exemplo:user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
m
SERVICE_ACCOUNT_RESOURCE_NAME
: o nome completo do recurso da conta de serviço. Por exemplo:projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com
Onde:
SERVICE_ACCOUNT_PROJECT_ID
é o ID do projeto proprietário da conta de serviçoGoogle CloudSERVICE_ACCOUNT_NAME
é o nome da sua conta de serviço
Conceda autorizações para suportar o encaminhamento de eventos
Antes de criar um acionador do Eventarc, tem de conceder outras autorizações do IAM para suportar o encaminhamento de eventos através do Eventarc.
Conceda as autorizações adequadas com base nos recursos aos quais o acionador do Eventarc tem de aceder para fazer o seu trabalho, bem como no fornecedor e no destino de eventos. Para mais informações, consulte o artigo Todas as funções e autorizações.
Crie o seu acionador com a conta de serviço entre projetos.