Transfira a configuração das credenciais e conceda acesso

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.

  1. Na Trusted Cloud consola, aceda à página Recipientes do Cloud Storage.

    Aceda aos contentores

  2. Na lista de contentores, clique no nome do contentor para o qual quer conceder a função.

  3. Selecione o separador Autorizações junto à parte superior da página.

  4. Clique no botão Conceder acesso.

    É apresentada a caixa de diálogo Adicionar responsáveis.

  5. 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 projeto
    • POOL_ID: o ID do conjunto de trabalhos
    • SUBJECT: 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 projeto
    • WORKLOAD_POOL_ID: o ID do conjunto de trabalhos
    • GROUP: 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 projeto
    • WORKLOAD_POOL_ID: o ID do conjunto de trabalhos
    • ATTRIBUTE_NAME: um dos atributos mapeados a partir do seu IdP
    • ATTRIBUTE_VALUE: o valor do atributo
  6. 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.

  7. Clique em Guardar.

gcloud

Para usar a CLI gcloud para conceder funções de IAM num recurso num projeto, faça o seguinte:

  1. Obtenha o número do projeto no qual o recurso está definido.

    gcloud projects describe $(gcloud config get-value core/project) --format=value\(projectNumber\)
    
  2. 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 acesso
    • PROJECT_NUMBER: o número do projeto. do projeto que contém o Workload Identity Pool
    • POOL_ID: o ID do Workload Identity Pool
    • SUBJECT: o valor esperado para o atributo que mapeou para google.subject
    • GROUP: o valor esperado para o atributo que mapeou para google.groups
    • ATTRIBUTE_NAME: o nome de um atributo personalizado no mapeamento de atributos
    • ATTRIBUTE_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

  1. Para criar uma conta de serviço para a carga de trabalho externa, faça o seguinte:

    1. Enable the IAM, Security Token Service, and Service Account Credentials APIs.

      Enable the APIs

    2. 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.

    3. Conceda acesso à conta de serviço aos recursos aos quais quer que as identidades externas acedam.

  2. 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

  1. 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:

    1. Aceda à página Workload Identity Pools.

      Aceda aos Workload Identity Pools

    2. Selecione Conceder acesso.

    3. Na caixa de diálogo Conceder acesso à conta de serviço, selecione Conceder acesso através da simulação da conta de serviço.

    4. 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:

    5. 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 como subject e o valor do atributo como o valor da reivindicação sub em tokens emitidos pelo seu fornecedor de identidade externo.

    6. Para guardar a configuração, clique em Guardar e, de seguida, em Ignorar.

Conta de serviço num projeto diferente

  1. 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:

    1. Aceda à página Contas de serviço.

      Aceda a Contas de serviço

    2. Selecione a conta de serviço que quer roubar.

    3. Clique em Gerir acesso.

    4. Clique em Adicionar principal.

    5. 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 projeto
      • POOL_ID: o ID do conjunto de trabalhos
      • SUBJECT: 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 projeto
      • WORKLOAD_POOL_ID: o ID do conjunto de trabalhos
      • GROUP: 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 projeto
      • WORKLOAD_POOL_ID: o ID do conjunto de trabalhos
      • ATTRIBUTE_NAME: um dos atributos mapeados a partir do seu IdP
      • ATTRIBUTE_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 projeto
      • WORKLOAD_POOL_ID: o ID do conjunto de trabalhos
    6. Em Selecionar uma função, selecione a função de utilizador da identidade de carga de trabalho (roles/iam.workloadIdentityUser).

    7. 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ço
  • PROJECT_NUMBER: o número do projeto. do projeto que contém o Workload Identity Pool
  • POOL_ID: o ID do Workload Identity Pool
  • SUBJECT: o valor esperado para o atributo que mapeou para google.subject
  • GROUP: o valor esperado para o atributo que mapeou para google.groups
  • ATTRIBUTE_NAME: o nome de um atributo personalizado no mapeamento de atributos
  • ATTRIBUTE_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:

  1. Na Trusted Cloud consola, aceda à página Workload Identity Pools.

    Aceda aos Workload Identity Pools
  2. Na tabela, selecione o seu conjunto para aceder à página de detalhes do conjunto.

  3. Clique em Conceder acesso.

  4. Selecione Conceder acesso através de identidades federadas (recomendado).

  5. 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:

    1. Clique em Transferir config.

    2. Na caixa de diálogo Configurar a sua aplicação, faça o seguinte:

      1. Na lista pendente Fornecedor, selecione o seu fornecedor.

      2. Em Caminho do token OIDC ou Caminho da declaração SAML, introduza o caminho onde o token ou a declaração se encontra.

      3. Na lista pendente Tipo de formato, selecione o formato.

    3. Clique em Transferir configuração e anote o caminho onde guardou o ficheiro.