Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Tokens de serviço

Visão Geral

Usando tokens de serviço, é possível autenticar-se no SUSE Observability sem ter uma conta de usuário associada. Isso é útil para situações em que você deseja usar o SUSE Observability a partir de serviços sem interface, como um servidor CI. Em tal cenário, você normalmente não deseja provisionar uma conta de usuário em seu provedor de identidade.

Gerenciar tokens de serviço

Os tokens de serviço podem ser gerenciados via o sts CLI. Os seguintes comandos estão disponíveis:

> sts service-token --help
Manage service tokens.

Usage:
  sts service-token [command]

Available Commands:
  create      Create a service token
  delete      Delete a service token
  list        List service tokens

Use "sts service-token [command] --help" for more information about a command.

Também é possível configurar um token de serviço para inicializar ao instalar SUSE® Observability.

Criar tokens de serviço

Os StackPacks Open Telemetry e Kubernetes permitem que você crie um sujeito e um token de serviço com todas as permissões necessárias configuradas.

Para criar um token de serviço para SUSE® Observability, você pode usar o sts CLI.

sts service-token create

Observe que o token de serviço será exibido apenas uma vez. Não é possível ver o token novamente.

Este comando aceita os seguintes argumentos de linha de comando:

Flag Descrição

--name

O nome do token de serviço

--expiration

A data de expiração do token de serviço, o formato é yyyy-MM-dd. A expiração é opcional.

--roles

Uma lista de funções separadas por vírgula a serem atribuídas ao token de serviço

Por exemplo, o comando abaixo criará um token de serviço com o nome my-service-token e a função stackstate-k8s-troubleshooter:

> sts service-token create --name my-service-token --roles stackstate-k8s-troubleshooter
✅ Service token created: svctok-aaaaa-bbbb-ccccc-ddddd

Configurar um token de serviço para inicializar

Ao instalar SUSE® Observability, é possível inicializá-lo com um token de serviço (temporário). Isso permite usar a CLI sem primeiro interagir com SUSE® Observability e obter um token de API pela interface do usuário. Para fazer a configuração disso, adicione o seguinte trecho ao arquivo de configuração SUSE® Observability:

Para configurar o SUSE® Observability para criar um token de serviço para inicializar no Kubernetes, adicione os seguintes valores ao arquivo authentication.yaml. Por exemplo:

stackstate:
  authentication:
    serviceToken:
      bootstrap:
        token: <token>
        roles:
          - stackstate-admin
        ttl: 24h

Siga os passos abaixo para configurar o SUSE® Observability e criar um token de serviço para inicializar:

  1. Em authentication.yaml – adicione o token de serviço para inicializar:

    • token - O token que é criado na inicialização de SUSE® Observability.

    • roles - Um array de funções atribuídas ao token de serviço para inicializar.

    • ttl - Opcional. O tempo de vida do token de serviço, expresso como uma string de duração.

  2. Armazene o arquivo authentication.yaml junto com o values.yaml das instruções de instalação do SUSE® Observability.

  3. Execute um upgrade do Helm para aplicar as mudanças.

     helm upgrade \
       --install \
       --namespace suse-observability \
       --values values.yaml \
       --values authentication.yaml \
     suse-observability \
     suse-observability/suse-observability
  • A primeira execução do comando de atualização do Helm resultará na reinicialização dos pods, o que pode causar uma breve interrupção na disponibilidade.

  • Inclua authentication.yaml em cada execução do helm upgrade.

  • A configuração de autenticação é armazenada como um segredo do Kubernetes.

Configure o token de serviço para inicializar a partir de um segredo externo.

Em vez de especificar o token de serviço para inicializar através dos valores do Helm, você também pode ler o token de serviço para inicializar de um segredo que é criado e gerenciado fora do Helm chart (um segredo externo). Para usar um token de serviço para inicializar de um externo, siga estes passos e adicione os seguintes dados:

kind: Secret
metadata:
   name: "<custom-secret-name>"
type: Opaque
data:
  bootstrap_token: <base64 of token>

Este token pode ser adicionado ao segredo juntamente com os dados já existentes.

Listar tokens de serviço

O ID, nome, data de expiração e funções de todos os tokens de serviço criados podem ser vistos usando a CLI sts. Por exemplo:

> sts service-token list
ID              | NAME             | EXPIRATION | ROLES
107484341630693 | my-service-token |            | [stackstate-admin]

Excluir tokens de serviço

Um token de serviço pode ser excluído usando o sts CLI. Passe o ID do token de serviço como um argumento. Por exemplo:

> sts service-token delete 107484341630693
✅ Service token deleted: 107484341630693

Usar tokens de serviço

Você usa tokens de serviço para autenticar ao usar as APIs de Observabilidade do SUSE: * Ao usar o CLI * Ao usar as APIs HTTP diretamente * Ao ingerir dados de telemetria

SUSE Observability sts CLI

Um token de serviço é usado para autenticação com o sts CLI. Para obter mais informações, consulte a documentação do CLI.

APIs de Observabilidade do SUSE

Para usar um token de serviço para se comunicar diretamente com a API de Observabilidade do SUSE, adicione-o ao cabeçalho da solicitação de uma das seguintes maneiras:

  • No cabeçalho Authorization:

      > curl -X GET -H "Authorization: ApiKey <TOKEN>" http://localhost:8080/api/server/status
  • No cabeçalho X-API-Key:

      > curl -X GET -H "X-API-Key: <TOKEN>" http://localhost:8080/api/server/status

Ingestão de Dados de Telemetria

Para criar um token de serviço para ingestão de dados de telemetria, você precisa primeiro criar uma função:

> sts rbac create-subject --subject my-agent
✅ Created subject 'my-agent'
> sts rbac grant --subject my-agent --permission update-metrics
✅ Granted permission 'update-metrics' on 'system' to subject 'my-agent'
PERMISSION   | RESOURCE
update-metrics | system

Se você quiser usar o token de serviço para ingerir dados de RBAC do Kubernetes, você também precisa conceder update-scoped-permissions:

> sts rbac grant --subject my-agent --permission update-scoped-permissions --resource my-cluster
✅ Granted permission 'update-scoped-permissions' on 'my-cluster' to subject 'my-agent'
PERMISSION                | RESOURCE
update-metrics            | system
update-scoped-permissions | my-cluster

Isso criará uma nova função no SUSE Observability chamada my-agent e concederá a permissão update-metrics. Você pode então criar um token de serviço para esta função:

> sts service-token create --name my-agent --roles my-agent
✅ Service token created: svctok-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

O token de serviço recém-criado pode ser usado como a chave da API para autenticação de dados de telemetria de: