mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-04 00:37:04 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-services/aws-kms-enum
This commit is contained in:
@@ -31,7 +31,7 @@ Per **impostazione predefinita:**
|
||||
|
||||
- Fornisce all'**IAM dell'** **account AWS che possiede la chiave KMS accesso** per gestire l'accesso alla chiave KMS tramite IAM.
|
||||
|
||||
A differenza di altre politiche delle risorse AWS, una **politica della chiave KMS di AWS non fornisce automaticamente permessi a nessuno dei principi dell'account**. Per fornire permessi agli amministratori dell'account, **la politica della chiave deve includere una dichiarazione esplicita** che fornisca questo permesso, come questa.
|
||||
A differenza di altre politiche delle risorse AWS, una **politica della chiave KMS non concede automaticamente permessi a nessuno dei principi dell'account**. Per concedere permessi agli amministratori dell'account, **la politica della chiave deve includere una dichiarazione esplicita** che fornisca questo permesso, come questa.
|
||||
|
||||
- Senza consentire all'account(`"AWS": "arn:aws:iam::111122223333:root"`) i permessi IAM non funzioneranno.
|
||||
|
||||
@@ -39,7 +39,7 @@ A differenza di altre politiche delle risorse AWS, una **politica della chiave K
|
||||
|
||||
**Senza questo permesso, le politiche IAM che consentono l'accesso alla chiave sono inefficaci**, sebbene le politiche IAM che negano l'accesso alla chiave siano ancora efficaci.
|
||||
|
||||
- **Riduce il rischio che la chiave diventi ingovernabile** fornendo permessi di controllo degli accessi agli amministratori dell'account, incluso l'utente root dell'account, che non può essere eliminato.
|
||||
- **Riduce il rischio che la chiave diventi ingovernabile** dando permessi di controllo accesso agli amministratori dell'account, incluso l'utente root dell'account, che non può essere eliminato.
|
||||
|
||||
**Esempio di politica predefinita**:
|
||||
```json
|
||||
@@ -71,7 +71,7 @@ Proprietà di una politica:
|
||||
|
||||
Concessioni:
|
||||
|
||||
- Consente di delegare i propri permessi a un altro principale AWS all'interno del proprio account AWS. È necessario crearli utilizzando le API AWS KMS. Può essere indicato l'identificatore CMK, il principale beneficiario e il livello richiesto di operazione (Decrypt, Encrypt, GenerateDataKey...)
|
||||
- Consente di delegare i propri permessi a un altro principale AWS all'interno del proprio account AWS. È necessario crearli utilizzando le API AWS KMS. Può essere indicato l'identificatore CMK, il principale beneficiario e il livello richiesto di operazione (Decrittografia, Crittografia, GeneraDataKey...)
|
||||
- Dopo che la concessione è stata creata, vengono emessi un GrantToken e un GrantID
|
||||
|
||||
**Accesso**:
|
||||
@@ -93,24 +93,24 @@ Amministratore delle chiavi per impostazione predefinita:
|
||||
### Rotazione dei CMK
|
||||
|
||||
- Più a lungo la stessa chiave rimane in uso, più dati vengono crittografati con quella chiave, e se quella chiave viene compromessa, allora l'area di esplosione dei dati è a rischio. Inoltre, più a lungo la chiave è attiva, maggiore è la probabilità che venga compromessa.
|
||||
- **KMS ruota le chiavi dei clienti ogni 365 giorni** (o puoi eseguire il processo manualmente quando vuoi) e **chiavi gestite da AWS ogni 3 anni** e questo tempo non può essere cambiato.
|
||||
- **KMS ruota le chiavi dei clienti ogni 365 giorni** (o puoi eseguire il processo manualmente quando vuoi) e **le chiavi gestite da AWS ogni 3 anni** e questo tempo non può essere cambiato.
|
||||
- **Le chiavi più vecchie vengono mantenute** per decrittografare i dati che sono stati crittografati prima della rotazione
|
||||
- In caso di compromissione, ruotare la chiave non rimuoverà la minaccia poiché sarà possibile decrittografare tutti i dati crittografati con la chiave compromessa. Tuttavia, i **nuovi dati saranno crittografati con la nuova chiave**.
|
||||
- Se il **CMK** è in stato di **disabilitato** o **in attesa di** **cancellazione**, KMS **non eseguirà una rotazione della chiave** fino a quando il CMK non sarà riabilitato o la cancellazione non sarà annullata.
|
||||
- Se il **CMK** è in stato di **disabilitato** o **in attesa di** **cancellazione**, KMS **non eseguirà una rotazione della chiave** fino a quando il CMK non sarà riattivato o la cancellazione non sarà annullata.
|
||||
|
||||
#### Rotazione manuale
|
||||
|
||||
- È necessario **creare un nuovo CMK**, quindi, viene creato un nuovo CMK-ID, quindi dovrai **aggiornare** qualsiasi **applicazione** per **riferirsi** al nuovo CMK-ID.
|
||||
- Per semplificare questo processo puoi **utilizzare alias per riferirti a un key-id** e poi semplicemente aggiornare la chiave a cui l'alias si riferisce.
|
||||
- Devi **mantenere le vecchie chiavi per decrittografare i vecchi file** crittografati con esse.
|
||||
- È necessario **creare un nuovo CMK**, quindi, viene creato un nuovo CMK-ID, quindi sarà necessario **aggiornare** qualsiasi **applicazione** per **riferirsi** al nuovo CMK-ID.
|
||||
- Per semplificare questo processo, puoi **utilizzare alias per riferirti a un key-id** e poi aggiornare semplicemente la chiave a cui si riferisce l'alias.
|
||||
- Devi **mantenere le vecchie chiavi per decrittografare i vecchi file** crittografati con essa.
|
||||
|
||||
Puoi importare chiavi dalla tua infrastruttura di chiavi on-premises.
|
||||
|
||||
### Altre informazioni rilevanti su KMS
|
||||
|
||||
KMS è tariffato per il numero di richieste di crittografia/decrittografia ricevute da tutti i servizi al mese.
|
||||
KMS è tariffato in base al numero di richieste di crittografia/decrittografia ricevute da tutti i servizi al mese.
|
||||
|
||||
KMS ha piena audit e compliance **integrazione con CloudTrail**; qui puoi auditare tutte le modifiche effettuate su KMS.
|
||||
KMS ha piena integrazione di audit e conformità **con CloudTrail**; qui puoi auditare tutte le modifiche effettuate su KMS.
|
||||
|
||||
Con la politica KMS puoi fare quanto segue:
|
||||
|
||||
@@ -118,7 +118,7 @@ Con la politica KMS puoi fare quanto segue:
|
||||
- Limitare l'accesso ai sistemi per crittografare solo, decrittografare solo o entrambi
|
||||
- Definire per abilitare i sistemi ad accedere alle chiavi attraverso le regioni (anche se non è raccomandato poiché un guasto nella regione che ospita KMS influenzerà la disponibilità dei sistemi in altre regioni).
|
||||
|
||||
Non puoi sincronizzare o spostare/copiare chiavi tra le regioni; puoi solo definire regole per consentire l'accesso tra le regioni.
|
||||
Non puoi sincronizzare o spostare/copiare chiavi tra regioni; puoi solo definire regole per consentire l'accesso tra le regioni.
|
||||
|
||||
### Enumerazione
|
||||
```bash
|
||||
@@ -128,6 +128,11 @@ aws kms list-grants --key-id <id>
|
||||
aws kms describe-key --key-id <id>
|
||||
aws kms get-key-policy --key-id <id> --policy-name <name> # Default policy name is "default"
|
||||
aws kms describe-custom-key-stores
|
||||
|
||||
# This script enumerates AWS KMS keys across all available regions.
|
||||
for region in $(aws ec2 describe-regions --query "Regions[].RegionName" --output text); do
|
||||
echo -e "\n### Region: $region ###"; aws kms list-keys --region $region --query "Keys[].KeyId" --output text | tr '\t' '\n';
|
||||
done
|
||||
```
|
||||
### Privesc
|
||||
|
||||
|
||||
Reference in New Issue
Block a user