GCP - KMS Privesc
KMS
Informazioni su KMS:
pageGCP - KMS EnumSi noti che in KMS i permessi non sono solo ereditati da Orgs, Cartelle e Progetti ma anche da Keyrings.
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToDecrypt
Puoi utilizzare questo permesso per decrittografare le informazioni con la chiave su cui hai questo permesso.
cloudkms.cryptoKeys.setIamPolicy
cloudkms.cryptoKeys.setIamPolicy
Un attaccante con questa autorizzazione potrebbe concedersi le autorizzazioni per utilizzare la chiave per decifrare le informazioni.
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
Ecco una suddivisione concettuale di come funziona questa delega:
Service Account A ha accesso diretto alla decrittografia utilizzando una chiave specifica in KMS.
Service Account B viene concesso il permesso
useToDecryptViaDelegation
. Ciò gli consente di richiedere a KMS di decrittografare i dati per conto di Service Account A.
L'uso di questo permesso è implicito nel modo in cui il servizio KMS controlla i permessi quando viene effettuata una richiesta di decrittografia.
Quando si effettua una richiesta di decrittografia standard utilizzando l'API di Google Cloud KMS (in Python o in un altro linguaggio), il servizio controlla se il service account richiedente ha i permessi necessari. Se la richiesta viene effettuata da un service account con il permesso useToDecryptViaDelegation
, KMS verifica se questo account è autorizzato a richiedere la decrittografia per conto dell'entità che possiede la chiave.
Configurazione per la Delega
Definire il ruolo personalizzato: Creare un file YAML (ad esempio,
custom_role.yaml
) che definisca il ruolo personalizzato. Questo file dovrebbe includere il permessocloudkms.cryptoKeyVersions.useToDecryptViaDelegation
. Ecco un esempio di come potrebbe apparire questo file:
Creare il ruolo personalizzato utilizzando la CLI di gcloud: Utilizza il seguente comando per creare il ruolo personalizzato nel tuo progetto Google Cloud:
Sostituisci [YOUR_PROJECT_ID]
con l'ID del tuo progetto Google Cloud.
Concedi il ruolo personalizzato a un account di servizio: Assegna il tuo ruolo personalizzato a un account di servizio che utilizzerà questa autorizzazione. Utilizza il seguente comando:
Sostituisci [YOUR_PROJECT_ID]
e [SERVICE_ACCOUNT_EMAIL]
con il tuo ID del progetto e l'email dell'account di servizio, rispettivamente.
Last updated