Vai al contenuto

Application Credentials

API - CLI Tipi di credenziali Identity

Per l'accesso tramite CLI/API, OpenStack offre diverse opzioni a seconda dell'implementazione, più o meno adatte in base alle esigenze. I seguenti tipi di credenziali sono attualmente disponibili.

A) Application Credentials

Le Application Credentials di Keystone consentono agli utenti di generare le proprie credenziali OpenStack adatte alle applicazioni e di autenticarsi presso il servizio di identità senza dover esporre le proprie credenziali principali.

Vantaggio: le Application Credentials possono essere facilmente revocate o modificate senza interrompere l'applicazione, oppure possono disporre di una scadenza automatica.

Svantaggio: sono legate all'account utente che ha creato le Application Credentials. Se un collaboratore lascia l'azienda, la semplice disattivazione dell'account utente non è sufficiente. Le sue Application Credentials devono essere cancellate. Maggiori informazioni sulle Application Credentials sono disponibili in Creare Application Credentials.

B) Local User - L'accesso API tramite Local Keystone Password non è supportato.

C) Download current user's session token - Gli utenti che hanno attivato l'OTP (2 fattori - OneTimePassword) possono ora scaricare molto facilmente l'attuale User Session Token, valido per 24 ore, tramite la gestione OpenStack (Horizon).

A tal fine, acceda alla gestione OpenStack (Horizon).

Faccia clic sulla piccola freccia nell'angolo in alto a destra e selezioni Export credentials.

image

Nella finestra successiva, selezioni Current user's session token e il formato di esportazione desiderato (YAML o RC) e confermi con Download.

image

Note

RC: esporta le variabili d'ambiente Bash come file sorgente.

YAML: viene esportato come file yaml che deve essere collocato nella directory ~/.config/openstack e può essere successivamente utilizzato tramite la variabile d'ambiente OS_CLOUD o il parametro CLI --os-cloud. :::

Tip

Il "Current user's session token" è valido per 24 ore e può essere utilizzato per l'API, la CLI o anche Terraform. Trascorso questo periodo, il token scade e l'utente può ottenere un nuovo token tramite Horizon.

D) Federated user

Gli utenti che non hanno attivato l'OTP possono, oltre ai metodi A) e C), selezionare anche il metodo Federated user e verranno quindi richiesti della loro password Keycloak durante una chiamata API / CLI. Tuttavia, Terraform non supporta questo metodo.

Note

A seconda della politica delle password definita, non tutti i tipi di credenziali potrebbero essere consentiti. Se, ad esempio, l'OTP è obbligatorio, il tipo di credenziale D) Federated user non è attualmente possibile.

Creare Application Credentials

Le Federated Login Credentials di un utente non possono essere utilizzate in OpenStack per l'accesso da uno strumento CLI. La soluzione a questo problema sono le Application Credentials di Keystone, che l'utente può creare dopo aver effettuato l'accesso a OpenStack Horizon e utilizzare poi direttamente per gli strumenti CLI. Le Application Credentials consentono agli utenti di generare le proprie credenziali OpenStack adatte alle applicazioni e di autenticarsi presso il servizio di identità senza dover esporre le proprie credenziali principali.

Le Application Credentials possono essere facilmente revocate o modificate senza interrompere l'applicazione, oppure possono disporre di una scadenza automatica.

Vada in OpenStack Horizon alla voce Identity => "Application Credentials" e faccia clic su Create Application Credentials.

image

Inserisca ora un nome e una descrizione per l'Application Credential e faccia clic su "Create Application Credential".

  • Le Application Credentials vengono create per il progetto attualmente selezionato.
  • Può specificare un proprio secret, altrimenti ne verrà generato uno per lei.
  • Facoltativamente, può dotare l'Application Credential di una data e di un'ora di scadenza.
  • Può selezionare uno o più ruoli per queste Application Credentials. Se non ne seleziona nessuno, verranno applicati tutti i ruoli assegnati nel progetto attuale. Per maggiori informazioni sui ruoli, vedere Application Credential Roles.

Important

Se necessita dell'Application Credential per creare un cluster Kubernetes, deve selezionare "Unrestricted (dangerous)" per ottenere le autorizzazioni necessarie (creazione di Trust aggiuntivi).

image

  • Annoti l'ID e il Secret dell'Application Credential creata per utilizzarli nel suo strumento CLI.
  • A seconda dell'utilizzo successivo, può anche scaricare il file "clouds.yml" o "openrc" (Legacy), che contiene tutte le informazioni.

Important

Il Secret dell'Application Credential non sarà più disponibile dopo la chiusura di questa pagina, quindi deve annotarlo subito oppure scaricare il file clouds.yaml. Se lo perde, deve generare una nuova Application Credential.

  • Faccia quindi clic su "Close".

image

Esempio di file clouds.yaml

# This is a clouds.yaml file, which can be used by OpenStack tools as a source
# of configuration on how to connect to a cloud. If this is your only cloud,
# just put this file in ~/.config/openstack/clouds.yaml and tools like
# python-openstackclient will just work with no further config.
# If you have more than one cloud account, add the cloud entry to the clouds
# section of your existing file and you can refer to them by name with
# OS_CLOUD=openstack or --os-cloud=openstack
clouds:
  openstack:
    auth:
      auth_url: https://keystone.service.ewcs.ch/v3
      application_credential_id: "003295c34794404..."
      application_credential_secret: "-15dgWMA19Bd5q..."
    region_name: "ch-zh1"
    interface: "public"
    identity_api_version: 3
    auth_type: "v3applicationcredential"

  openstack-ge1:
    auth:
      auth_url: https://keystone.service.ewcs.ch/v3
      application_credential_id: "003295c34794404..."
      application_credential_secret: "-15dgWMA19Bd5q..."
    region_name: "ch-ge1"
    interface: "public"
    identity_api_version: 3
    auth_type: "v3applicationcredential"

Una voce cloud per regione

openstack punta alla regione 1 (ch-zh1), openstack-ge1 alla regione 2 (ch-ge1). Selezioni una voce con OS_CLOUD=openstack-ge1.

OS_REGION_NAME sostituisce region_name se entrambi sono impostati.

Il file contiene il secret: limiti l'accesso con chmod 600 ~/.config/openstack/clouds.yaml.

Application Credential Roles

I ruoli selezionabili nelle Application Credentials significano:

Ruolo Descrizione
_member_ Ruolo predefinito che consente l'accesso a un progetto
member Duplicato di _member_ ancora necessario per alcune chiamate API
heat_stack_owner Il ruolo è autorizzato a creare/avviare Heat Stack
reader Può leggere i Secret in Barbican
creator Può creare Secret in Barbican, ad es. per la crittografia lato server
load_balancer_member Può creare load balancer