Utilizzo dello strumento Key Usage Reporter (KUR)
Il Key Usage Reporter (KUR) CLI esegue la scansione di un account IBM Cloud e produce un rapporto completo su quali risorse cloud sono crittografate da quali chiavi KMS. Lo strumento supporta sia Key Protect (kms) che Hyper Protect
Crypto Services (hs-crypto). Lo strumento è anche in grado di elaborare i file di log di monitoraggio delle attività, producendo CSV riepiloghi che aiutano a identificare l'utilizzo del KMS.
KUR viene fornito così com'è e con il massimo impegno. Lo strumento non rileva tutti i possibili utilizzi delle chiavi e i risultati non devono essere considerati autorevoli. Alcuni servizi, configurazioni o casi limite potrebbero non essere coperti.
Scaricare lo strumento
-
Creare un ticket di assistenza IBM per Key Protect per richiedere l'accesso agli strumenti di migrazione da HPCS a Key Protect.
-
Scaricare il binario dello strumento fornito nel ticket di assistenza.
-
Verificare che il checksum SHA-256 del file binario scaricato corrisponda al valore fornito nel ticket di supporto. Confrontate direttamente i valori; devono corrispondere esattamente.
Eseguite il comando appropriato per il vostro sistema operativo per ottenere il checksum SHA-256 e confrontatelo con il valore fornito nel ticket di assistenza:
macOS:
shasum -a 256 <kur-binary>Esempio:
shasum -a 256 kur-darwin-arm64-1.0.0Linux:
sha256sum <kur-binary>Esempio:
sha256sum kur-linux-amd64-1.0.0Windows (Prompt dei comandi):
certutil -hashfile <kur-binary> SHA256Esempio:
certutil -hashfile kur-windows-amd64-1.0.0.exe SHA256Windows ( PowerShell ):
Get-FileHash <kur-binary> -Algorithm SHA256Esempio:
Get-FileHash kur-windows-amd64-1.0.0.exe -Algorithm SHA256 -
Rendere il binario eseguibile ( macOS/Linux ):
chmod +x <kur-binary>
Prerequisiti
Prima di eseguire lo strumento, accertarsi che siano soddisfatti i seguenti requisiti:
-
IBM Cloud CLI (
ibmcloud) viene installato seguendo le istruzioni riportate in Come iniziare con la CLI di IBM Cloud. -
I seguenti plugin IBM Cloud CLI sono installati e aggiornati:
container-servicevpc-infrastructureevent-notifications
Installare i plugin mancanti con:
ibmcloud plugin install <plugin-name> -
Si è connessi alla CLI di IBM Cloud e si sta puntando all'account che si desidera scansionare:
ibmcloud login -
Il token IAM è valido e ha almeno 3 minuti di validità residua. In caso di dubbio, rinfrescare:
ibmcloud login -
L'identità che gestisce lo strumento richiede un accesso in sola lettura a livello di account. Assegna il ruolo di accesso alla piattaforma Viewer e il ruolo di accesso al servizio Reader a livello di account all'identità (utente o chiave API) con cui effettui l'autenticazione.
Questo accesso in sola lettura, di tipo "auditor", corrisponde allo stesso livello utilizzato per la verifica di un account. Copre tutto ciò che lo strumento controlla, tra cui:
- Key Protect e le istanze e le chiavi di Hyper Protect Crypto Services
- Servizi cloud che possono essere crittografati con tali chiavi (ad esempio, Cloud Object Storage, infrastruttura VPC, cluster Kubernetes, Event Notifications e App Configuration )
KUR esegue esclusivamente operazioni di lettura e non crea, modifica né elimina alcuna risorsa.
I requisiti di accesso indicati in questa sezione si applicano alla scansione dell'account. Il sottocomando process-at opera esclusivamente su un file locale di tracciamento delle attività e non richiede alcun accesso
a IBM Cloud.
Esecuzione dello strumento
Gli esempi seguenti mostrano come eseguire lo strumento Key Usage Reporter con diverse opzioni e configurazioni.
Uso di base: scansione delle chiavi HPCS (predefinito)
Utilizzare il seguente comando per eseguire la scansione dell'account IBM Cloud attualmente in uso per tutte le istanze hs-crypto, le relative chiavi e tutte le risorse cloud crittografate da tali chiavi.
./<kur-binary>
Scansione dei tasti Key Protect
Per cercare le istanze di Key Protect invece di HPCS, utilizzare il flag -service kms.
./<kur-binary> --service kms
Scansione di Key Protect Solo istanze dedicate
È possibile filtrare la scansione per includere solo le istanze di Key Protect Dedicated.
./<kur-binary> --service kms --service-type dedicated
Scansione solo per le istanze multi-tenant di Key Protect
È possibile filtrare la scansione per includere solo le istanze Key Protect Standard (multitenant).
./<kur-binary> --service kms --service-type multi-tenant
Abilita la registrazione di debug
Attivare un output di debug dettagliato per risolvere i problemi o comprendere il comportamento dello strumento.
./<kur-binary> --service kms --debug
Specificare un percorso di file di output personalizzato
Per impostazione predefinita, lo strumento genera un file di output con un nome generato automaticamente, ma è possibile specificare un percorso personalizzato.
./<kur-binary> --service kms --output my-report.json
Flags CLI
La tabella seguente elenca tutti i flag della riga di comando disponibili per lo strumento Key Usage Reporter.
| Indicatore | Valore predefinito | Descrizione |
|---|---|---|
--service |
hs-crypto |
Servizio KMS da analizzare: hs-crypto o kms |
--service-type |
(nessuno) | Filtrare le istanze KMS per tipo: dedicated o multi-tenant. Valido solo con -service kms. |
--skip-private-calls |
false |
Saltare le chiamate REST agli endpoint privati. Le istanze senza un endpoint pubblico vengono saltate. |
--debug |
false |
Abilita la modalità di debug: mostra i messaggi di log dettagliati su stderr |
--output |
Nome automatico | Percorso del file di output. Il valore predefinito è encryption-key-usage-report-<service>-<account-name>.json |
I flag possono utilizzare un trattino singolo (-flag) o doppio (--flag).
File di output
Lo strumento produce due file di output:
- Rapporto JSON
- Il file di output principale (ad esempio,
encryption-key-usage-report-kms-kp-stage.json), contenente il rapporto gerarchico completo delle istanze KMS, delle chiavi e dell'utilizzo delle risorse. - File di log
- Un file di registro di accompagnamento con lo stesso nome di base e un suffisso
-log.txt(ad esempio,encryption-key-usage-report-kms-kp-stage-log.txt), contenente tutti i messaggi di registro dell'esecuzione.
Comprendere l'output
Il report JSON ha la seguente struttura di primo livello:
{
"metadata": { ... },
"result": {
"kms_instances": [ ... ],
"crns": [ ... ],
"unknowns": [ ... ]
}
}
Metadati
I metadati includono il contesto di esecuzione, come la versione dello strumento, il servizio KMS di destinazione, l'endpoint API IBM Cloud, il nome dell'account, l'ID dell'account e l'utente che ha eseguito la scansione.
Istanze KMS
Una voce per ogni istanza KMS o HPCS presente nell'account. Vengono elencate prima le istanze con utilizzo della chiave rilevato e poi quelle senza utilizzo rilevato. Ogni istanza contiene:
- Metadati dell'istanza
- Nome, CRN, stato, rete consentita, endpoint pubblici e privati, tipo (per Key Protect:
multi-tenantodedicated) found_by_kms_instance_listingtruese l'istanza è stata trovata elencando le istanze KMS nell'account.found_by_resource_scantruese l'istanza con le chiavi rilevate durante la scansione delle risorse.instance_stats- Conteggio delle chiavi per Stato:
active_crk_count,suspended_crk_count,deactivated_crk_count,destroyed_crk_countactive_standard_key_count,destroyed_standard_key_count.
keys[]- Inventario completo delle chiavi dall'API Key Protect. Ogni chiave comprende:
type:crk(chiave radice del cliente) ostandard_key.state_name:pre-activation,active,suspended,deactivated, odestroyed.name: nome della chiave.id: chiave UUID.has_migration_intent: se la chiave ha un intento di migrazione impostato.migration_intent_target_crk: CRK CRN di destinazione (presente solo quandohas_migration_intentètrue).found_by_kms_key_listingofound_by_resource_scan: come è stata scoperta la chiave.associations[]: risorse cloud registrate rispetto alla chiave (dall'API di registrazione di Key Protect ). Ogni voce indica il sitoresource_crne se è abilitatoprevent_key_deletion. Omesso quando una chiave non ha registrazioni.service_usagemappa del nome del servizio alle risorse criptate rilevate dalla scansione delle risorse dell'account. Presente solo per le chiavi trovate dalla scansione delle risorse.
CRN
Le risorse che fanno riferimento a identificatori di crittografia che corrispondono a un pattern CRN ma non a un CRN di chiavi KMS o HPCS vengono catturate qui per garantire che nulla venga eliminato silenziosamente.
Sconosciuti
Le risorse che fanno riferimento a identificatori di crittografia che non hanno potuto essere analizzati come CRN sono elencate qui.
Esempio di voce di istanza
L'esempio seguente mostra la struttura di una voce di istanza KMS nel report JSON.
{
"name": "my-kp-instance",
"type": "multi-tenant",
"crn": "crn:v1:bluemix:public:kms:us-south:a/00000000000000000000000000000000:deadbeef-0000-0000-0000-1234567890ab::",
"state": "active",
"allowed_network": "public-and-private",
"public_endpoint": "https://us-south.kms.cloud.ibm.com",
"private_endpoint": "https://private.us-south.kms.cloud.ibm.com",
"found_by_kms_instance_listing": true,
"found_by_resource_scan": true,
"instance_stats": {
"active_crk_count": 5,
"suspended_crk_count": 0,
"deactivated_crk_count": 1,
"destroyed_crk_count": 2,
"active_standard_key_count": 3,
"destroyed_standard_key_count": 1
},
"keys": [
{
"type": "crk",
"state_name": "active",
"name": "my-root-key",
"id": "abc12345-6789-0abc-def0-1234567890ab",
"has_migration_intent": false,
"found_by_kms_key_listing": true,
"found_by_resource_scan": true,
"associations": [
{
"resource_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/00000000000000000000000000000000:deadbeef-0000-0000-0000-1234567890ab:bucket:my-encrypted-bucket",
"prevent_key_deletion": true
}
],
"service_usage": {
"cloud-object-storage (Cloud Object Storage)": [
{
"encrypted_resource": "crn:v1:bluemix:public:cloud-object-storage:global:a/00000000000000000000000000000000:deadbeef-0000-0000-0000-1234567890ab:bucket:my-encrypted-bucket"
}
]
}
},
{
"type": "standard_key",
"state_name": "active",
"name": "my-standard-key",
"id": "def45678-9012-3456-7890-abcdef012345",
"has_migration_intent": false,
"found_by_kms_key_listing": true,
"found_by_resource_scan": false
}
]
}
Elaborazione dei registri di monitoraggio delle attività
Oltre a generare il rapporto principale, lo strumento include un sottocomando per elaborare i registri di controllo del monitoraggio delle attività.
Utilizzo
Usare il sottocomando process-at per elaborare i file di registro del tracciamento delle attività.
./<kur-binary> process-at <input.tsv>
Cosa fa
Prende un file TSV esportato dalla query dell'archivio di routing degli eventi di tracciamento delle attività IBM Cloud Logs, estrae gli eventi JSON dalla colonna text e filtra per gli eventi relativi a KMS e HPCS (azioni kms.* e hs-crypto.* ). Produce quindi quattro file di output:
<base>_events.json- Tutti gli eventi estratti come array JSON formattato.
<base>_events.csv- CSV piatto con una riga per evento, contenente: serviceName, regione, accountId, instanceId, keyId, azione, esito, reasonType, reasonCode, initiatorId, initiatorName, authId, requestInstanceId, eventTime, correlationId, agente.
<base>_events_summary.csv- Riepilogo raggruppato con i conteggi degli eventi, raggruppati per servizio, regione, account, istanza, chiave, azione, esito, motivo e iniziatore.
<base>_events_summary_by_action.csv- Riepilogo raggruppato con i conteggi degli eventi, raggruppati per servizio, regione, account, istanza, chiave, azione e iniziatore (senza suddivisione per esito o motivo).
Dove <base> deriva dal nome del file di input (eliminando _logs.tsv o .tsv).
Esempio
L'esempio seguente mostra come elaborare un file di registro di monitoraggio delle attività e i file di output generati.
./<kur-binary> process-at hpcs-at-data-1-day_logs.tsv
Il comando produce i seguenti file di output:
hpcs-at-data-1-day_events.jsonhpcs-at-data-1-day_events.csvhpcs-at-data-1-day_events_summary.csvhpcs-at-data-1-day_events_summary_by_action.csv
Questa funzione è utile per analizzare i modelli di attività delle chiavi KMS, identificare quali servizi e utenti stanno eseguendo operazioni chiave e indagare sugli eventi legati alla migrazione, come ack-migrate.
Risoluzione dei problemi
Le seguenti informazioni aiutano a risolvere i problemi più comuni durante l'esecuzione dello strumento Key Usage Reporter.
IBM Cloud CLI non installata
IBM Cloud CLI is not installed. Please install it first.
Visit: https://cloud.ibm.com/docs/cli?topic=cli-getting-started
Installare la CLI di IBM Cloud seguendo la documentazione di Getting started with the IBM Cloud CLI.
Plugin CLI mancanti
Se i plugin CLI richiesti non sono installati, viene visualizzato un messaggio di errore che elenca i plugin mancanti.
missing required IBM Cloud CLI plugins: [container-service vpc-infrastructure]
Installare i plugin mancanti:
ibmcloud plugin install container-service
ibmcloud plugin install vpc-infrastructure
ibmcloud plugin install event-notifications
Plugin CLI obsoleti
Se i plugin della CLI sono obsoleti, viene visualizzato un messaggio di avviso che elenca i plugin da aggiornare.
the following IBM Cloud CLI plugins are outdated: [container-service]
Aggiornare il plugin:
ibmcloud plugin update container-service
Login non eseguito
Se non si è connessi a IBM Cloud, lo strumento visualizza un messaggio di errore.
not logged in to IBM Cloud. Please login first
Accedi a IBM Cloud:
ibmcloud login
Token scaduto o in procinto di scadere
Lo strumento richiede un token IAM valido con almeno 3 minuti di validità residua.
Se il token IAM ha meno di 3 minuti di validità residua, lo strumento lo rifiuta. Aggiornare la sessione:
ibmcloud login
Istanze solo private
Alcune istanze KMS potrebbero essere configurate per consentire solo l'accesso alla rete privata. Se un'istanza KMS consente solo l'accesso alla rete privata e non si è connessi alla rete IBM Cloud Private, lo strumento non può recuperare
statistiche o chiavi per quell'istanza. Utilizzate --skip-private-calls per saltare questi casi, anziché far fallire lo strumento:
./<kur-binary> --service kms --skip-private-calls
100+ istanze KMS
L'API per l'elenco delle risorse di IBM Cloud ha un limite al numero di istanze che possono essere restituite.
[WARNING] 100 or more KMS instances, only the first 100 instances will be processed.
L'API che elenca le risorse di IBM Cloud restituisce un massimo di 100 istanze. Se l'account ha più di 100 istanze KMS, solo le prime 100 sono incluse nel report. Questo comportamento è una limitazione nota.
Tipo di servizio non valido con hs-crypto
Il flag --service-type è valido solo per la scansione delle istanze di Key Protect.
error: --service-type can only be used with --service kms
Il flag --service-type (per filtrare in base a dedicated o multi-tenant) si applica solo a Key Protect (--service kms). Non è applicabile alle istanze HPCS.