Esta página descreve como configurar as suas cargas de trabalho para aceder a Trusted Cloud by S3NS recursos através da federação de identidades da carga de trabalho e do acesso direto aos recursos ou da representação de contas de serviço.
Pode encontrar instruções completas e específicas para cada exemplo de utilização em guias de configuração para AWS e Azure, Active Directory, GitHub, GitLab e outros pipelines de implementação, e Kubernetes.
Permita que a sua carga de trabalho externa aceda aos recursos do Trusted Cloud
Para dar acesso aos recursos à sua carga de trabalho, recomendamos que conceda acesso direto aos recursos ao principal. Trusted Cloud Neste caso, o principal é o utilizador federado. Alguns Trusted Cloud produtos têm limitações da API Google Cloud. Se a sua carga de trabalho chamar um ponto final da API que tenha uma limitação, pode, em alternativa, usar a representação de contas de serviço. Neste caso, o principal é a Trusted Cloud conta de serviço, que funciona como a identidade. Concede acesso à conta de serviço no recurso.
Acesso direto aos recursos
Pode conceder acesso a uma identidade federada diretamente nos recursos através da Trusted Cloud consola ou da CLI gcloud.
Consola
Para usar a Trusted Cloud consola para conceder funções de IAM
diretamente num recurso, tem de aceder à página do recurso e, em seguida,
conceder a função. O exemplo seguinte mostra como aceder
à página do Cloud Storage e conceder a função Storage Object Viewer
(roles/storage.objectViewer
) a uma identidade federada diretamente num
contentor do Cloud Storage.
- Na Trusted Cloud consola, aceda à página Recipientes do Cloud Storage.
Na lista de contentores, clique no nome do contentor para o qual quer conceder a função.
Selecione o separador Autorizações junto à parte superior da página.
Clique no botão add_box Conceder acesso.
É apresentada a caixa de diálogo Adicionar responsáveis.
No campo Novos responsáveis, introduza uma ou mais identidades que precisam de acesso ao seu contentor.
Por assunto
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
Substitua o seguinte:
PROJECT_NUMBER
: o número do projetoPOOL_ID
: o ID do conjunto de trabalhosSUBJECT
: o indivíduo assunto mapeado a partir do seu IdP, por exemplo,administrator@example.com
Por grupo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP
Substitua o seguinte:
PROJECT_NUMBER
: o número do projetoWORKLOAD_POOL_ID
: o ID do conjunto de trabalhosGROUP
: o grupo mapeado a partir do seu IdP, por exemplo:administrator-group@example.com
Por atributo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Substitua o seguinte:
PROJECT_NUMBER
: o número do projetoWORKLOAD_POOL_ID
: o ID do conjunto de trabalhosATTRIBUTE_NAME
: um dos atributos mapeados a partir do seu IdPATTRIBUTE_VALUE
: o valor do atributo
Selecione uma ou mais funções no menu pendente Selecionar uma função. As funções que selecionar aparecem no painel com uma breve descrição das autorizações que concedem.
Clique em Guardar.
gcloud
Para usar a CLI gcloud para conceder funções de IAM num recurso num projeto, faça o seguinte:
Obtenha o número do projeto no qual o recurso está definido.
gcloud projects describe $(gcloud config get-value core/project) --format=value\(projectNumber\)
Conceder acesso ao recurso.
Para usar a CLI gcloud para conceder a função Storage Object Viewer (
roles/storage.objectViewer
) a identidades externas que cumprem determinados critérios, execute o seguinte comando.Por assunto
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"
Por grupo
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"
Por atributo
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"
Substitua o seguinte:
BUCKET_ID
: o contentor no qual conceder acessoPROJECT_NUMBER
: o número do projeto. do projeto que contém o Workload Identity PoolPOOL_ID
: o ID do Workload Identity PoolSUBJECT
: o valor esperado para o atributo que mapeou paragoogle.subject
GROUP
: o valor esperado para o atributo que mapeou paragoogle.groups
ATTRIBUTE_NAME
: o nome de um atributo personalizado no mapeamento de atributosATTRIBUTE_VALUE
: o valor do atributo personalizado no mapeamento de atributos
Pode conceder funções em qualquer Trusted Cloud recurso que suporte políticas de autorização do IAM.
Simulação de identidade de conta de serviço
Para criar uma conta de serviço para a carga de trabalho externa, faça o seguinte:
Enable the IAM, Security Token Service, and Service Account Credentials APIs.
Crie uma conta de serviço que represente a carga de trabalho. Recomendamos que use uma conta de serviço dedicada para cada carga de trabalho. A conta de serviço não tem de estar no mesmo projeto que o conjunto de identidades de carga de trabalho, mas tem de fazer referência ao projeto que contém a conta de serviço.
Conceda acesso à conta de serviço aos recursos aos quais quer que as identidades externas acedam.
Para permitir que a identidade federada use a identidade da conta de serviço, faça o seguinte:
Consola
Para usar a Trusted Cloud consola para conceder funções do IAM a uma identidade federada com uma conta de serviço, faça o seguinte:
Conta de serviço no mesmo projeto
Para conceder acesso através da representação da conta de serviço para uma conta de serviço no mesmo projeto, faça o seguinte:
Aceda à página Workload Identity Pools.
Selecione Conceder acesso.
Na caixa de diálogo Conceder acesso à conta de serviço, selecione Conceder acesso através da simulação da conta de serviço.
Na lista Contas de serviço, selecione a conta de serviço para as identidades externas se fazerem passar por ela e faça o seguinte:
Para escolher que identidades no conjunto podem roubar a identidade da conta de serviço, execute uma das seguintes ações:
Para permitir que apenas identidades específicas do conjunto de identidades da carga de trabalho se façam passar pela conta de serviço, selecione Apenas identidades que correspondam ao filtro.
Na lista Nome do atributo, selecione o atributo pelo qual quer filtrar.
No campo Valor do atributo, introduza o valor esperado do atributo; por exemplo, se usar um mapeamento de atributos
google.subject=assertion.sub
, defina o nome do atributo comosubject
e o valor do atributo como o valor da reivindicaçãosub
em tokens emitidos pelo seu fornecedor de identidade externo.
Para guardar a configuração, clique em Guardar e, de seguida, em Ignorar.
Conta de serviço num projeto diferente
Para conceder acesso através da representação de conta de serviço a uma conta de serviço num projeto diferente, faça o seguinte:
Aceda à página Contas de serviço.
Selecione a conta de serviço que quer roubar.
Clique em Gerir acesso.
Clique em Adicionar principal.
No campo Novo principal, introduza um dos seguintes identificadores principais para as identidades no seu conjunto que vão roubar a identidade da conta de serviço.
Por assunto
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT
Substitua o seguinte:
PROJECT_NUMBER
: o número do projetoPOOL_ID
: o ID do conjunto de trabalhosSUBJECT
: o indivíduo assunto mapeado a partir do seu IdP, por exemplo,administrator@example.com
Por grupo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP
Substitua o seguinte:
PROJECT_NUMBER
: o número do projetoWORKLOAD_POOL_ID
: o ID do conjunto de trabalhosGROUP
: o grupo mapeado a partir do seu IdP, por exemplo:administrator-group@example.com
Por atributo
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE
Substitua o seguinte:
PROJECT_NUMBER
: o número do projetoWORKLOAD_POOL_ID
: o ID do conjunto de trabalhosATTRIBUTE_NAME
: um dos atributos mapeados a partir do seu IdPATTRIBUTE_VALUE
: o valor do atributo
Por piscina
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*
Substitua o seguinte:
PROJECT_NUMBER
: o número do projetoWORKLOAD_POOL_ID
: o ID do conjunto de trabalhos
Em Selecionar uma função, selecione a função de utilizador da identidade de carga de trabalho (
roles/iam.workloadIdentityUser
).Para guardar a configuração, clique em Guardar.
gcloud
Para conceder a função Workload Identity User (roles/iam.workloadIdentityUser
) a um conjunto de principais ou um principal federado, execute o seguinte comando. Para saber mais sobre os identificadores de principais da federação de identidades da carga de trabalho, consulte o artigo Tipos de principais.
Por assunto
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --role=roles/iam.workloadIdentityUser \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"
Por grupo
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --role=roles/iam.workloadIdentityUser \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"
Por atributo
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --role=roles/iam.workloadIdentityUser \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"
Substitua o seguinte:
SERVICE_ACCOUNT_EMAIL
: o endereço de email da conta de serviçoPROJECT_NUMBER
: o número do projeto. do projeto que contém o Workload Identity PoolPOOL_ID
: o ID do Workload Identity PoolSUBJECT
: o valor esperado para o atributo que mapeou paragoogle.subject
GROUP
: o valor esperado para o atributo que mapeou paragoogle.groups
ATTRIBUTE_NAME
: o nome de um atributo personalizado no mapeamento de atributosATTRIBUTE_VALUE
: o valor do atributo personalizado no mapeamento de atributos
Transfira a configuração
Para permitir que a sua carga de trabalho aceda às bibliotecas de cliente, tem de transferir e configurar primeiro as credenciais predefinidas da aplicação (ADC) fazendo o seguinte:
-
Na Trusted Cloud consola, aceda à página Workload Identity Pools.
Aceda aos Workload Identity Pools -
Na tabela, selecione o seu conjunto para aceder à página de detalhes do conjunto.
-
Clique em Conceder acesso.
-
Selecione Conceder acesso através de identidades federadas (recomendado).
-
Para transferir a Credencial predefinida da aplicação (ADC) para que a sua carga de trabalho possa aceder às bibliotecas cliente, faça o seguinte:
-
Clique em Transferir config.
-
Na caixa de diálogo Configurar a sua aplicação, faça o seguinte:
-
Na lista pendente Fornecedor, selecione o seu fornecedor.
-
Em Caminho do token OIDC ou Caminho da declaração SAML, introduza o caminho onde o token ou a declaração se encontra.
Na lista pendente Tipo de formato, selecione o formato.
-
-
Clique em Transferir configuração e anote o caminho onde guardou o ficheiro.
-