Come memorizzare dati di configurazione sensibili in AWS Secrets Manager - Amazon EMR

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

Come memorizzare dati di configurazione sensibili in AWS Secrets Manager

Amazon EMR descrive ed elenca operazioni API che emettono dati di configurazione personalizzati (ad esempio DescribeCluster e ListInstanceGroups) in testo normale. Amazon EMR si integra AWS Secrets Manager in modo da poter archiviare i dati in Secrets Manager e utilizzare l'ARN segreto nelle configurazioni. In tal modo, non trasmetti dati di configurazione sensibili ad Amazon EMR in testo normale e non li esponi ad API esterne. Se indichi che una coppia chiave-valore contiene un ARN di un segreto archiviato in Secrets Manager, Amazon EMR recupera questo segreto quando invia i dati di configurazione al cluster. Amazon EMR non invia l'annotazione quando utilizza API esterne per visualizzare la configurazione.

Creazione di un segreto

Per creare un segreto, segui la procedura in Creazione di un segreto AWS Secrets Manager nella Guida per l'utente di AWS Secrets Manager . Nel passaggio 3 devi scegliere il campo Plaintext (Testo normale) per inserire il tuo valore sensibile.

Tieni presente che mentre Secrets Manager consente a un segreto di contenere fino a 65536 byte, Amazon EMR limita a 1024 caratteri la lunghezza combinata della chiave della proprietà (esclusa l'annotazione) e del valore del segreto recuperato.

Come concedere ad Amazon EMR l'accesso per recuperare il segreto

Amazon EMR utilizza un ruolo di servizio IAM per il provisioning e la gestione automatica dei cluster. Il ruolo di servizio di Amazon EMR definisce le azioni consentite ad Amazon EMR quando effettua il provisioning delle risorse ed esegue attività a livello di servizio che non vengono eseguite nel contesto di un'istanza Amazon EC2 in esecuzione in un cluster. Per ulteriori informazioni sui ruoli di servizio, consulta Ruolo di servizio per Amazon EMR (ruolo EMR) e Personalizzazione dei ruoli IAM.

Per consentire ad Amazon EMR di recuperare il valore del segreto da Secrets Manager, aggiungi la seguente dichiarazione di policy al tuo ruolo Amazon EMR quando avvii il cluster.

{ "Sid":"AllowSecretsRetrieval", "Effect":"Allow", "Action":"secretsmanager:GetSecretValue", "Resource":[ "arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" ] }

Se crei il segreto con una chiave gestita dal cliente AWS KMS key, devi anche aggiungere kms:Decrypt l'autorizzazione al ruolo Amazon EMR per la chiave che usi. Per ulteriori informazioni, consulta Autenticazione e controllo degli accessi AWS Secrets Manager nella Guida per l'utente di AWS Secrets Manager .

Come utilizzare il segreto in una classificazione di configurazione

Puoi aggiungere l'annotazione EMR.secret@ a qualunque proprietà di configurazione per indicare che la coppia chiave-valore contiene un ARN di un segreto memorizzato in Secrets Manager.

Nell'esempio seguente viene mostrato come fornire l'ARN di un segreto in una classificazione di configurazione:

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "EMR.secret@presto.s3.secret-key":"arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" } }

Quando crei un cluster e invii la configurazione annotata, Amazon EMR convalida le proprietà di configurazione. Se la configurazione è valida, Amazon EMR elimina l'annotazione dalla configurazione e recupera il segreto da Secrets Manager per creare la configurazione effettiva prima di applicarla al cluster:

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "presto.s3.secret-key":"<my-secret-key-retrieved-from-Secrets-Manager>" } }

Quando invochi un'azione come DescribeCluster, Amazon EMR restituisce la configurazione dell'applicazione corrente sul cluster. Se una proprietà di configurazione dell'applicazione è contrassegnata come contenente l'ARN di un segreto, la configurazione dell'applicazione restituita dalla chiamata DescribeCluster contiene l'ARN e non il valore del segreto. Ciò garantisce che il valore del segreto sia visibile solo sul cluster:

{ "Classification":"core-site", "Properties":{ "presto.s3.access-key":"<sensitive-access-key>", "presto.s3.secret-key":"arn:aws:secretsmanager:<region>:<aws-account-id>:secret:<secret-name>" } }

Come aggiornare il valore del segreto

Amazon EMR recupera il valore del segreto da una configurazione annotata ogni volta che il gruppo di istanze collegato viene avviato, riconfigurato o ridimensionato. Puoi utilizzare Secrets Manager per modificare il valore di un segreto utilizzato nella configurazione di un cluster in esecuzione. In tal caso, puoi inviare una richiesta di riconfigurazione a ogni gruppo di istanze che devono ricevere il valore aggiornato. Per ulteriori informazioni sulla modalità di riconfigurazione di un gruppo di istanze e sulle valutazioni da effettuare per tale operazione, consulta Riconfigurazione di un gruppo di istanze in un cluster in esecuzione.