GCP - KMS Privesc
KMS
Info su KMS:
GCP - KMS EnumNota che in KMS i permessi non sono solo ereditati da Orgs, Folders e Projects, ma anche da Keyrings.
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToDecrypt
Puoi usare questo permesso per decriptare informazioni con la chiave su cui hai questo permesso.
cloudkms.cryptoKeys.setIamPolicy
cloudkms.cryptoKeys.setIamPolicy
Un attaccante con questo permesso potrebbe assegnarsi permessi per utilizzare la chiave per decrittografare informazioni.
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
cloudkms.cryptoKeyVersions.useToDecryptViaDelegation
Ecco una suddivisione concettuale di come funziona questa delega:
L'Account di Servizio A ha accesso diretto per decriptare utilizzando una chiave specifica in KMS.
L'Account di Servizio B riceve il permesso
useToDecryptViaDelegation
. Questo gli consente di richiedere a KMS di decriptare 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 decrittazione.
Quando effettui una richiesta di decrittazione standard utilizzando l'API 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 è effettuata da un account di servizio con il permesso useToDecryptViaDelegation
, KMS verifica se questo account è autorizzato a richiedere la decrittazione per conto dell'entità che possiede la chiave.
Impostazione 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:
Crea il Ruolo Personalizzato Utilizzando il gcloud CLI: Usa il seguente comando per creare il ruolo personalizzato nel tuo progetto Google Cloud:
Sostituisci [YOUR_PROJECT_ID]
con il tuo ID progetto Google Cloud.
Concedi il Ruolo Personalizzato a un'Account di Servizio: Assegna il tuo ruolo personalizzato a un'account di servizio che utilizzerà questo permesso. Usa il seguente comando:
Sostituisci [YOUR_PROJECT_ID]
e [SERVICE_ACCOUNT_EMAIL]
con il tuo ID progetto e l'email dell'account di servizio, rispettivamente.
Last updated