機密設定データを AWS Secrets Managerに保存する - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

機密設定データを AWS Secrets Managerに保存する

Amazon は、カスタム設定データ ( や などListInstanceGroups) を出力するAPIオペレーションをプレーンテキストでEMR記述DescribeClusterおよび一覧表示します。Amazon は とEMR統合 AWS Secrets Manager されているため、データを Secrets Manager に保存し、設定ARNでシークレットを使用できます。これにより、機密性の高い設定データをプレーンテキストEMRで Amazon に渡し、外部 に公開することはありませんAPIs。キーと値のペアに Secrets Manager に保存されているシークレットARNの が含まれていることを示すと、Amazon は設定データをクラスターに送信するときにこのシークレットEMRを取得します。Amazon EMRは、外部 を使用して設定を表示する場合APIs、注釈を送信しません。

シークレットを作成する

シークレットを作成するには、「AWS Secrets Manager ユーザーガイド」の「AWS Secrets Manager シークレットを作成する」の手順に従います。ステップ 3 では、[プレーンテキスト] フィールドを選択して機密値を入力する必要があります。

Secrets Manager ではシークレットに最大 65536 バイトを含めることができますが、Amazon はプロパティキー ( 注釈を除く) と取得されたシークレット値の合計長を 1024 文字EMRに制限します。

Amazon にシークレットを取得するためのEMRアクセス権を付与する

Amazon EMR は、 IAMサービスロールを使用してクラスターをプロビジョニングおよび管理します。Amazon のサービスロールは、リソースをプロビジョニングし、クラスター内で実行されている Amazon EC2インスタンスのコンテキストで実行されないサービスレベルのタスクを実行するEMRときに、Amazon で許可されるアクションEMRを定義します。サービスロールの詳細については、「Amazon のサービスロール EMR (EMR ロール)」および「ロールのカスタマイズIAM」を参照してください。

Amazon が Secrets Manager からシークレット値EMRを取得できるようにするには、クラスターの起動時に次のポリシーステートメントを Amazon EMRロールに追加します。

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

カスタマー管理の でシークレットを作成する場合は AWS KMS key、使用するキーの Amazon EMRロールにもkms:Decryptアクセス許可を追加する必要があります。詳細については、AWS Secrets Manager ユーザーガイドの「AWS Secrets Managerに対する認証とアクセスコントロール」を参照してください。

シークレットを設定分類で使用する

任意の設定プロパティにEMR.secret@注釈を追加して、そのキーと値のペアに Secrets Manager に保存されているシークレットARNの が含まれていることを示すことができます。

次の例は、設定分類ARNでシークレットを指定する方法を示しています。

{ "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>" } }

クラスターを作成して注釈付き設定を送信すると、Amazon は設定プロパティEMRを検証します。設定が有効な場合、Amazon は設定からアノテーションEMRを削除し、Secrets Manager からシークレットを取得して実際の設定を作成してから、クラスターに適用します。

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

などのアクションを呼び出すとDescribeCluster、Amazon はクラスターの現在のアプリケーション設定EMRを返します。アプリケーション設定プロパティがシークレット を含むとマークされている場合ARN、DescribeCluster呼び出しによって返されるアプリケーション設定にはシークレット値ではなく ARN が含まれます。これにより、クラスター上でのみシークレット値を目視できるようになります。

{ "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>" } }

シークレット値を更新する

Amazon は、アタッチされたインスタンスグループが起動、再設定、またはサイズ変更されるたびに、注釈付き設定からシークレット値EMRを取得します。稼働中のクラスターの設定で使用するシークレット値は、Secrets Manager を使用すると変更できます。その場合、更新済みの値を受け取りたい各インスタンスグループに、再設定リクエストを送信できます。インスタンスグループを再設定する方法と、その際に考慮すべき点の詳細については、「実行中のクラスター内のインスタンスグループの再設定」を参照してください。