GCP - KMS Privesc
KMS
Informazioni su KMS:
GCP - KMS EnumNota che in KMS i permessi non sono solo ereditati da Organizzazioni, Cartelle e Progetti ma anche da Keyrings.
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToDecrypt
Puoi utilizzare questo permesso per decifrare informazioni con la chiave su cui hai questo permesso.
cloudkms.cryptoKeys.setIamPolicy
cloudkms.cryptoKeys.setIamPolicy
Un attaccante con questa autorizzazione potrebbe darsi permessi per utilizzare la chiave per decifrare informazioni.
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
Ecco una suddivisione concettuale di come funziona questa delega:
Account di servizio A ha accesso diretto alla decrittografia utilizzando una chiave specifica in KMS.
Account di servizio B ottiene il permesso
useToDecryptViaDelegation
. Questo gli consente di richiedere a KMS di decrittografare i dati per conto dell'Account di servizio 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'altra lingua), il servizio controlla se l'account di servizio richiedente ha i permessi necessari. Se la richiesta è fatta da un account di servizio con il permesso useToDecryptViaDelegation
, KMS verifica se questo account è autorizzato a richiedere la decrittografia per conto dell'entità che possiede la chiave.
Preparazione per la Delega
Definire il Ruolo Personalizzato: Crea un file YAML (ad esempio,
custom_role.yaml
) che definisce 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 gcloud: Utilizzare il seguente comando per creare il ruolo personalizzato nel proprio progetto Google Cloud:
Sostituisci [YOUR_PROJECT_ID]
con l'ID del tuo progetto Google Cloud.
Concedere il Ruolo Personalizzato a un Account di Servizio: Assegna il tuo ruolo personalizzato a un account di servizio che utilizzerà questo permesso. Utilizza il seguente comando:
Sostituire [YOUR_PROJECT_ID]
e [SERVICE_ACCOUNT_EMAIL]
con l'ID del tuo progetto e l'email del service account, rispettivamente.
Last updated