Risoluzione dei problemi relativi alle AWS KMS autorizzazioni - AWS Key Management Service

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à.

Risoluzione dei problemi relativi alle AWS KMS autorizzazioni

Quando si autorizza l'accesso a una KMS chiave, AWS KMS valuta quanto segue:

  • La politica chiave allegata alla KMS chiave. La politica chiave è sempre definita nella regione Account AWS e nella regione che possiede la KMS chiave.

  • Tutte IAMle politiche allegate all'utente o al ruolo che effettua la richiesta. IAMle politiche che regolano l'uso di una KMS chiave da parte di un principale sono sempre definite nella chiave principale. Account AWS

  • Tutte le sovvenzioni che si applicano alla KMS chiave.

  • Altri tipi di politiche che potrebbero essere applicate alla richiesta di utilizzo della KMS chiave, come le politiche di controllo dei AWS Organizations servizi e le politiche degli VPC endpoint. Queste policy sono facoltative e consentono tutte le operazioni per impostazione predefinita, ma puoi utilizzarle per limitare le autorizzazioni altrimenti concesse ai principali.

AWS KMS valuta insieme questi meccanismi di policy per determinare se l'accesso alla KMS chiave è consentito o negato. A tale scopo, AWS KMS utilizza un processo simile a quello illustrato nel seguente diagramma di flusso. Il seguente diagramma di flusso fornisce una rappresentazione visiva del processo di valutazione delle policy.

Diagramma di flusso che descrive il processo di valutazione delle policy

Questo diagramma di flusso è diviso in due parti. Le parti appaiono in sequenza, ma sono in genere valutate nello stesso momento.

  • L'autorizzazione all'uso determina se è consentito utilizzare una KMS chiave in base alla politica chiave, alle IAM politiche, alle concessioni e ad altre politiche applicabili.

  • La fiducia nelle chiavi determina se è necessario considerare attendibile una KMS chiave che è consentito utilizzare. In generale, ti fidi delle risorse di cui disponi Account AWS. Tuttavia, puoi sentirti sicuro di utilizzare KMS le chiavi anche in un altro modo Account AWS se una sovvenzione o una IAM politica del tuo account ti consentono di utilizzare la KMS chiave.

Puoi utilizzare questo diagramma di flusso per scoprire perché a un chiamante è stata concessa o negata l'autorizzazione a utilizzare una KMS chiave. È anche possibile utilizzarlo per valutare le policy e le autorizzazioni. Ad esempio, il diagramma di flusso mostra che a un chiamante può essere negato l'accesso mediante una DENY dichiarazione esplicita o in assenza di una ALLOW dichiarazione esplicita nella politica, nella politica o nella concessione della chiave. IAM

Il diagramma di flusso è in grado di spiegare alcuni scenari comuni.

Esempio 1: all'utente viene negato l'accesso a una chiave nel proprio KMS Account AWS

Alice è un IAM utente del 111122223333 Account AWS. Le è stato negato l'accesso a una KMS chiave dello stesso. Account AWS Perché Alice non può usare la KMS chiave?

In questo caso, ad Alice viene negato l'accesso alla KMS chiave perché non esiste una politica, una IAM politica o una concessione chiave che le dia le autorizzazioni richieste. La politica chiave della KMS chiave consente di utilizzare IAM le politiche Account AWS per controllare l'accesso alla KMS chiave, ma nessuna IAM politica dà ad Alice il permesso di usare la KMS chiave.

Diagramma di flusso che descrive il processo di valutazione delle policy

Considerare le relative policy per questo esempio.

  • La KMS chiave che Alice vuole usare ha la politica delle chiavi predefinita. Questa politica consente a chi possiede Account AWS la KMS chiave IAM di utilizzare le politiche per controllare l'accesso alla KMS chiave. Questa politica chiave soddisfa la politica Does the key account ALLOW the callers to use IAM policy per controllare l'accesso alla chiave? condizione nel diagramma di flusso.

    { "Version" : "2012-10-17", "Id" : "key-test-1", "Statement" : [ { "Sid" : "Delegate to IAM policies", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" } ] }
  • Tuttavia, nessuna politica, IAM politica o concessione chiave dà ad Alice il permesso di usare la KMS chiave. Pertanto, ad Alice viene negato il permesso di usare la KMS chiave.

Esempio 2: L'utente assume un ruolo con il permesso di utilizzare una KMS chiave in un'altra Account AWS

Bob è un utente nell'account 1 (111122223333). Gli è consentito utilizzare una KMS chiave nell'account 2 (444455556666) nelle operazioni crittografiche. In che modo è possibile?

Suggerimento

Quando valuti le autorizzazioni per più account, ricorda che la politica della chiave è specificata nell'account della chiave. KMS La IAM politica è specificata nell'account del chiamante, anche quando il chiamante utilizza un account diverso. Per informazioni dettagliate su come fornire l'accesso alle KMS chiavi su più account, consulta. Consentire agli utenti di altri account di utilizzare una KMS chiave

  • La politica chiave per la KMS chiave nell'account 2 consente all'account 2 IAM di utilizzare le politiche per controllare l'accesso alla KMS chiave.

  • La politica chiave per la KMS chiave nell'account 2 consente all'account 1 di utilizzare la KMS chiave nelle operazioni crittografiche. Tuttavia, l'account 1 deve utilizzare IAM politiche per consentire ai suoi principali di accedere alla KMS chiave.

  • Una IAM policy nell'account 1 consente al Engineering ruolo di utilizzare la KMS chiave nell'account 2 per operazioni crittografiche.

  • Bob, un utente nell'account 1, ha l'autorizzazione per assumere il ruolo Engineering.

  • Bob può fidarsi di questa KMS chiave, perché anche se non è presente nel suo account, una IAM politica del suo account gli dà il permesso esplicito di usare questa KMS chiave.

Diagramma di flusso che descrive il processo di valutazione delle policy

Considerate le politiche che consentono a Bob, un utente dell'account 1, di utilizzare la KMS chiave nell'account 2.

  • La politica chiave per la KMS chiave consente all'account 2 (444455556666, l'account che possiede la KMS chiave) di utilizzare IAM le politiche per controllare l'accesso alla chiave. KMS Questa politica chiave consente inoltre all'account 1 (111122223333) di utilizzare la KMS chiave nelle operazioni crittografiche (specificate nell'Actionelemento dell'informativa). Tuttavia, nessuno nell'account 1 può utilizzare la KMS chiave nell'account 2 finché l'account 1 non definisce IAM le politiche che consentono ai principali di accedere alla chiave. KMS

    Nel diagramma di flusso, questa politica chiave dell'account 2 soddisfa la politica chiave utilizzata IAM dall'account ALLOW del chiamante per controllare l'accesso alla chiave? condizione.

    { "Id": "key-policy-acct-2", "Version": "2012-10-17", "Statement": [ { "Sid": "Permission to use IAM policies", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow account 1 to use this KMS key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:DescribeKey" ], "Resource": "*" } ] }
  • Una IAM politica del chiamante Account AWS (account 1, 111122223333) fornisce l'autorizzazione principale a eseguire operazioni crittografiche utilizzando la KMS chiave nell'account 2 (444455556666). L'elemento Action delega al principale le stesse autorizzazioni che la policy della chiave nell'account 2 ha fornito all'account 1. Per dare queste autorizzazioni al ruolo Engineering nell'account 1, questa policy in linea è incorporata nel ruolo Engineering.

    Le IAM politiche relative a più account come questa sono efficaci solo quando la politica chiave per la chiave dell'account 2 autorizza l'account 1 a utilizzare la KMS chiave. KMS Inoltre, l'account 1 può dare ai propri principal solo l'autorizzazione per eseguire le azioni che la policy della chiave ha dato all'account.

    Nel diagramma di flusso, ciò soddisfa la IAMpolitica Does an a the caller di eseguire questa azione? condizione.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:us-west-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab" ] } ] }
  • Ultimo elemento obbligatorio è la definizione del ruolo Engineering nell'account 1. Il AssumeRolePolicyDocument nel ruolo consente a Bob di assumere il ruolo Engineering.

    { "Role": { "Arn": "arn:aws:iam::111122223333:role/Engineering", "CreateDate": "2019-05-16T00:09:25Z", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": { "Principal": { "AWS": "arn:aws:iam::111122223333:user/bob" }, "Effect": "Allow", "Action": "sts:AssumeRole" } }, "Path": "/", "RoleName": "Engineering", "RoleId": "AROA4KJY2TU23Y7NK62MV" } }