Limitazione dell'accesso a Parameter Store parametri che utilizzano le politiche IAM - AWS Systems Manager

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

Limitazione dell'accesso a Parameter Store parametri che utilizzano le politiche IAM

È possibile limitare l'accesso ai AWS Systems Manager parametri utilizzando AWS Identity and Access Management (IAM). Più precisamente, puoi creare IAM policy che limitano l'accesso alle seguenti API operazioni:

Quando si utilizzano IAM policy per limitare l'accesso ai parametri di Systems Manager, si consiglia di creare e utilizzare IAM Policy restrittive. Ad esempio, la seguente politica consente a un utente di richiamare GetParameters API le operazioni DescribeParameters and per un set limitato di risorse. Ciò significa che l'utente può ottenere informazioni e utilizzare tutti i parametri che iniziano con prod-*.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:DescribeParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetParameters" ], "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/prod-*" } ] }
Importante

Se un utente ha accesso a un percorso, potrà accedere a tutti i livelli del percorso. Ad esempio, se un utente è autorizzato ad accedere al percorso /a, potrà accedere anche ad /a/b. Anche se a un utente è stato esplicitamente negato l'accesso al parametro IAM for/a/b, può comunque richiamare l'GetParametersByPathAPIoperazione in modo ricorsivo e visualizzare. /a /a/b

Agli amministratori fidati è possibile concedere l'accesso a tutte le API operazioni relative ai parametri di Systems Manager mediante una policy simile a quella riportata nell'esempio seguente. Questa policy concede all'utente l'accesso completo a tutti i parametri di produzione che iniziano con dbserver-prod-*.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter", "ssm:DeleteParameter", "ssm:GetParameterHistory", "ssm:GetParametersByPath", "ssm:GetParameters", "ssm:GetParameter", "ssm:DeleteParameters" ], "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/dbserver-prod-*" }, { "Effect": "Allow", "Action": "ssm:DescribeParameters", "Resource": "*" } ] }

Negare le autorizzazioni

Ciascuna API è univoca e dispone di operazioni e autorizzazioni distinte che può consentire o negare singolarmente. Un rifiuto esplicito in una policy sostituisce il permesso.

Nota

La chiave default AWS Key Management Service (AWS KMS) dispone dell'Decryptautorizzazione per tutti IAM i principali all'interno di. Account AWS Se desideri avere livelli di accesso diversi ai parametri SecureString nel tuo account, non è consigliabile utilizzare la chiave di default.

Se si desidera che tutte API le operazioni recuperino i valori dei parametri al fine di avere lo stesso comportamento, è possibile utilizzare un modello come GetParameter* in una policy. L'esempio seguente mostra come negare GetParameter, GetParameters, GetParameterHistory e GetParametersByPath per tutti i parametri che iniziano con prod-*.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ssm:GetParameter*" ], "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/prod-*" } ] }

Nell'esempio seguente viene illustrato come negare alcuni comandi consentendo all'utente di eseguire altri comandi su tutti i parametri che iniziano con prod-*.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ssm:PutParameter", "ssm:DeleteParameter", "ssm:DeleteParameters", "ssm:DescribeParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetParametersByPath", "ssm:GetParameters", "ssm:GetParameter", "ssm:GetParameterHistory" ], "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/prod-*" } ] }
Nota

La cronologia dei parametri include tutte le versioni dei parametri, inclusa quella corrente. Pertanto, se a un utente viene negata l'autorizzazione per GetParameter, GetParameters, e GetParameterByPath ma è consentito il permesso per GetParameterHistory, possono vedere il parametro corrente, inclusi i parametri SecureString, tramite GetParameterHistory.

Consentire l'esecuzione solo di parametri specifici sui nodi

È possibile controllare l'accesso in modo che i nodi gestiti possano eseguire solo i parametri specificati.

Se scegli il tipo di SecureString parametro al momento della creazione di un parametro, Systems Manager utilizza AWS KMS per criptare il valore del parametro. AWS KMS crittografa il valore utilizzando una chiave Chiave gestita da AWS o una chiave gestita dal cliente. Per ulteriori informazioni su AWS KMS e AWS KMS key, consulta la Guida per gli AWS Key Management Service sviluppatori.

Puoi visualizzare le Chiave gestita da AWS utilizzando il comando seguente da AWS CLI.

aws kms describe-key --key-id alias/aws/ssm

L'esempio seguente consente ai nodi di ottenere un valore di parametro solo per i parametri che iniziano con prod-. Se il parametro è un parametro SecureString, il nodo decrittografa la stringa utilizzando AWS KMS.

Nota

Le policy dell'istanza, come nell'esempio seguente, sono assegnate al ruolo dell'istanza inIAM. Per ulteriori informazioni sulla configurazione dell'accesso alle funzioni di Systems Manager, tra le quali come assegnare policy a utenti e istanze, consulta Gestione delle EC2 istanze con Systems Manager.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters" ], "Resource": [ "arn:aws:ssm:us-east-2:123456789012:parameter/prod-*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-2:123456789012:key/4914ec06-e888-4ea5-a371-5b88eEXAMPLE" ] } ] }

IAMautorizzazioni per l'utilizzo di chiavi AWS predefinite e chiavi gestite dal cliente

Parameter Store SecureStringi parametri vengono crittografati e decrittografati utilizzando AWS KMS le chiavi. È possibile scegliere di crittografare i SecureString parametri utilizzando una chiave AWS KMS key o la KMS chiave predefinita fornita da. AWS

Quando si utilizza una chiave gestita dal cliente, la IAM politica che concede a un utente l'accesso a un parametro o al percorso del parametro deve fornire kms:Encrypt autorizzazioni esplicite per la chiave. Ad esempio, la seguente politica consente a un utente di creare, aggiornare e visualizzare SecureString i parametri che iniziano con la e prod- specificata. Regione AWS Account AWS

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter", "ssm:GetParameter", "ssm:GetParameters" ], "Resource": [ "arn:aws:ssm:us-east-2:111122223333:parameter/prod-*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" Footnote callout 1 to explain a line in a JSON policy ], "Resource": [ "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE" ] } ] }

1L'autorizzazione kms:GenerateDataKey è necessaria per creare parametri avanzati crittografati utilizzando la chiave gestita dal cliente specificata.

Al contrario, tutti gli utenti all'interno dell'account cliente hanno accesso alla chiave gestita AWS predefinita. Se si utilizza questa chiave predefinita per crittografare SecureString i parametri e non si desidera che gli utenti utilizzino i SecureString parametri, le IAM policy devono negare esplicitamente l'accesso alla chiave predefinita, come illustrato nell'esempio seguente.

Nota

È possibile individuare l'Amazon Resource Name (ARN) della chiave predefinita nella AWS KMS console nella pagina chiavi AWS gestite. La chiave predefinita è quella identificata con aws/ssm nella colonna Alias.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-2:111122223333:key/abcd1234-ab12-cd34-ef56-abcdeEXAMPLE" ] } ] }

Se è necessario un controllo di accesso dettagliato sui parametri SecureString del proprio account, è necessario utilizzare una chiave gestita dal cliente per proteggere e limitare l'accesso a tali parametri. Consigliamo inoltre di AWS CloudTrail utilizzarlo per monitorare le attività SecureString dei parametri.

Per ulteriori informazioni, consulta i seguenti argomenti: