Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Autorizzazioni con privilegi minimi
Poiché KMS le tue chiavi proteggono le informazioni sensibili, ti consigliamo di seguire il principio dell'accesso con privilegi minimi. Delega le autorizzazioni minime richieste per eseguire un'attività quando definisci le tue politiche chiave. Consenti tutte le azioni (kms:*
) su una politica KMS chiave solo se prevedi di limitare ulteriormente le autorizzazioni con politiche aggiuntive. IAM Se prevedi di gestire le autorizzazioni tramite IAM policy, limita chi ha la possibilità di creare e allegare IAM le policy ai IAM principali e monitora le modifiche alle policy.
Se consenti tutte le azioni (kms:*
) sia nella policy chiave che nella IAM policy, il mandante dispone sia delle autorizzazioni amministrative che di utilizzo per la chiave. KMS Come best practice in materia di sicurezza, consigliamo di delegare queste autorizzazioni solo a responsabili specifici. È possibile farlo nominando esplicitamente il principale nella politica chiave o limitando i principi a cui è associata la politica. IAM Puoi anche usare i tasti condizionali per limitare le autorizzazioni. Ad esempio, è possibile utilizzare aws:PrincipalTag
per consentire tutte le azioni se il principale che effettua la API chiamata ha il tag specificato nella regola di condizione.
Per informazioni su come vengono valutate le dichiarazioni politiche AWS, vedere Logica di valutazione delle politiche nella Guida per l'IAMutente. Ti consigliamo di esaminare questo argomento prima di scrivere le politiche per ridurre la possibilità che la politica abbia effetti indesiderati, ad esempio fornendo l'accesso a dirigenti che non dovrebbero avere accesso.
Suggerimento
Quando testate un'applicazione in un ambiente non di produzione, utilizzate IAMAccess Analyzer
Se utilizzi IAM gli utenti anziché i IAM ruoli, ti consigliamo vivamente di abilitare l' AWS autenticazione a più fattori () per mitigare la vulnerabilità delle credenziali a lungo termine. MFA Puoi usare MFA per fare quanto segue:
-
Richiedete agli utenti di convalidare le proprie credenziali MFA prima di eseguire azioni privilegiate, come la pianificazione dell'eliminazione delle chiavi.
-
Dividi la proprietà di un account amministratore, della password e del MFA dispositivo tra individui per implementare l'autorizzazione suddivisa.
Ulteriori informazioni
Implementazione di autorizzazioni con privilegio minimo
Quando concedi a un AWS servizio l'autorizzazione a utilizzare una KMS chiave, assicurati che l'autorizzazione sia valida solo per le risorse a cui il servizio deve accedere per tuo conto. Questa strategia con privilegi minimi aiuta a prevenire l'uso non autorizzato di una KMS chiave quando le richieste vengono trasferite tra AWS i servizi.
Per implementare una strategia con privilegi minimi, si consiglia di utilizzare le chiavi di condizione del contesto di AWS KMS crittografia e le chiavi di condizione globali di origine ARN o dell'account di origine.
Utilizzo delle chiavi di condizione del contesto di crittografia
Il modo più efficace per implementare le autorizzazioni con meno privilegi quando si utilizzano le AWS KMS risorse consiste nell'includere kms:EncryptionContext:chiave contestuale o kms:EncryptionContextKeyschiavi di condizione nella politica che consente ai principali di AWS KMS richiamare operazioni crittografiche. Queste chiavi di condizione sono particolarmente efficaci perché associano l'autorizzazione al contesto di crittografia che è legato al testo criptato quando la risorsa è crittografata.
Utilizzate le chiavi delle condizioni del contesto di crittografia solo quando l'azione nella dichiarazione politica è CreateGranto un'operazione crittografica AWS KMS simmetrica che richiede un EncryptionContext
parametro, ad esempio operazioni come Decrypt o Decrypt. GenerateDataKey (Per un elenco delle operazioni supportate, vedere kms:EncryptionContext:chiave contestuale o kms:EncryptionContextKeys). Se si utilizzano questi tasti di condizione per consentire altre operazioni, ad esempio DescribeKey, l'autorizzazione verrà negata.
Impostare il valore sul contesto di crittografia utilizzato dal servizio quando crittografa la risorsa. Queste informazioni sono generalmente disponibili nel capitolo Sicurezza della documentazione del servizio. Ad esempio, il contesto di crittografia per AWS Proton identifica la risorsa AWS Proton e il modello associato. Il contesto di crittografia di AWS Secrets Manager identifica il segreto e la sua versione. Il contesto di crittografia per Amazon Location identifica la localizzazione o la raccolta.
Il seguente esempio di istruzione della chiave delle policy permette ad Amazon Location Service di creare concessioni per conto di utenti autorizzati. Questa dichiarazione politica limita l'autorizzazione utilizzando le chiavi kms: ViaService, kms: CallerAccount e kms:EncryptionContext:context-key
condition per collegare l'autorizzazione a una particolare risorsa tracker.
{ "Sid": "Allow Amazon Location to create grants on behalf of authorized users", "Effect": "Allow", "Principal": { "AWS": "
arn:aws:iam::111122223333:role/LocationTeam
" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "geo.us-west-2.amazonaws.com", "kms:CallerAccount": "111122223333
", "kms:EncryptionContext:aws:geo:arn": "arn:aws:geo:us-west-2:111122223333:tracker/SAMPLE-Tracker
" } } }
Utilizzo delle chiavi di condizione aws:SourceArn
o aws:SourceAccount
Quando il principale di una dichiarazione politica chiave è un responsabile del AWS servizio, si consiglia vivamente di utilizzare il aws:SourceArn o aws:SourceAccountchiavi di condizione globali, oltre alla chiave di kms:EncryptionContext:context-key
condizione. I valori ARN e dell'account vengono inclusi nel contesto di autorizzazione solo quando arriva una richiesta AWS KMS da un altro AWS servizio. Questa combinazione di condizioni implementa autorizzazioni meno privilegiate ed evita un potenziale scenario "confused deputy". I service principal non vengono in genere utilizzati come principali in una policy chiave, ma alcuni AWS servizi, ad esempio AWS CloudTrail, lo richiedono.
Per utilizzare le chiavi aws:SourceArn
o aws:SourceAccount
global condition, imposta il valore sull'Amazon Resource Name (ARN) o sull'account della risorsa da crittografare. Ad esempio, in un'informativa chiave che AWS CloudTrail autorizza a crittografare un percorso, imposta il valore di aws:SourceArn
to ARN of the trail. Quando possibile, utilizzare aws:SourceArn
, che è più specifico. Imposta il valore su ARN o su un ARN pattern con caratteri jolly. Se non conosci la natura ARN della risorsa, usa aws:SourceAccount
invece.
Nota
Se una risorsa ARN include caratteri non consentiti in una politica AWS KMS chiave, non è possibile utilizzare quella risorsa ARN nel valore della chiave di aws:SourceArn
condizione. Devi invece utilizzare la chiave di condizione aws:SourceAccount
. Per maggiori informazioni sulle regole delineate nel documento delle policy delle chiavi, consulta la sezione Formato della policy della chiave.
Nell'esempio seguente di policy della chiave, il principale che ottiene le autorizzazioni è il principale del servizio AWS CloudTrail , cloudtrail.amazonaws.com
. Per implementare il privilegio minimo, questa policy utilizza le chiavi di condizione aws:SourceArn
e kms:EncryptionContext:context-key
. L'informativa sulla politica CloudTrail consente di utilizzare la KMS chiave per generare la chiave di dati che utilizza per crittografare una traccia. Le condizioni aws:SourceArn
e kms:EncryptionContext:context-key
sono valutate in modo indipendente. Qualsiasi richiesta di utilizzo della KMS chiave per l'operazione specificata deve soddisfare entrambe le condizioni.
Per limitare l'autorizzazione del servizio alla finance
traccia nell'account di esempio (111122223333) e us-west-2
nella regione, questa dichiarazione politica imposta la chiave ARN di aws:SourceArn
condizione sulla traccia specifica. L'istruzione condizionale utilizza l'ArnEqualsoperatore per garantire che ogni elemento di ARN venga valutato indipendentemente durante la corrispondenza. L'esempio utilizza anche la chiave di condizione kms:EncryptionContext:context-key
per limitare l'autorizzazione ai percorsi in un determinato account e Regione.
Prima di utilizzare questa policy della chiave, è necessario sostituire l'ID dell'account, la Regione e il nome del percorso di esempio con valori validi riferiti al proprio account.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow CloudTrail to encrypt logs", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:cloudtrail:
us-west-2
:111122223333
:trail/finance
" ] }, "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": [ "arn:aws:cloudtrail:*:111122223333
:trail/*" ] } } } ] }