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 API le operazioni che emettono dati di configurazione personalizzati (come DescribeCluster eListInstanceGroups) e lo fanno in testo semplice. Amazon EMR si integra AWS Secrets Manager in modo da poter archiviare i dati in Secrets Manager e utilizzare il segreto ARN nelle configurazioni. In questo modo, non trasmetti dati di configurazione sensibili ad Amazon EMR in testo semplice per poi esporli a fonti esterne. APIs Se indichi che una coppia chiave-valore contiene un segreto ARN per 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 un dispositivo esterno APIs 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 la lunghezza combinata della chiave di proprietà (esclusa l'annotazione) e il valore segreto recuperato a 1024 caratteri.

Concedi EMR ad Amazon l'accesso per recuperare il segreto

Amazon EMR utilizza un ruolo IAM di servizio per fornire e gestire i cluster per te. Il ruolo di servizio per Amazon EMR definisce le azioni consentite per Amazon EMR quando fornisce risorse ed esegue attività a livello di servizio che non vengono eseguite nel contesto di un'EC2istanza Amazon in esecuzione all'interno di un cluster. Per ulteriori informazioni sui ruoli di servizio, consulta Service role for Amazon EMR (EMRrole) e Customize IAM roles.

Per consentire EMR ad Amazon di recuperare il valore segreto da Secrets Manager, aggiungi la seguente dichiarazione politica al tuo EMR ruolo Amazon all'avvio del cluster.

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

Se crei il segreto con un account gestito dal cliente AWS KMS key, devi anche aggiungere kms:Decrypt l'autorizzazione al EMR ruolo Amazon 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

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

L'esempio seguente mostra come fornire un segreto ARN 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 il cluster e invii la configurazione annotata, Amazon EMR convalida le proprietà di configurazione. Se la configurazione è valida, Amazon EMR rimuove 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 richiami un'azione comeDescribeCluster, Amazon EMR restituisce la configurazione corrente dell'applicazione sul cluster. Se una proprietà di configurazione dell'applicazione è contrassegnata come contenente un segretoARN, la configurazione dell'applicazione restituita dalla DescribeCluster chiamata contiene il valore segreto ARN e non il valore 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 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.