EMRFS プロパティを使用して Amazon S3 の暗号化を指定する - Amazon EMR

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

EMRFS プロパティを使用して Amazon S3 の暗号化を指定する

重要

Amazon EMR リリースバージョン 4.8.0 から、セキュリティ設定を使用して、より簡単により豊富なオプションで暗号化設定を適用できるようになりました。セキュリティ設定を使用することをお勧めします。詳細については、「データ暗号化の設定」を参照してください。このセクションで説明するコンソールの手順は、リリース 4.8.0 より前のリリースバージョンで使用できます。AWS CLI を使用して、クラスター設定とそれ以降のバージョンのセキュリティ設定の両方で Amazon S3 の暗号化を設定すると、セキュリティ設定がクラスター設定より優先されます。

クラスターを作成するときに、コンソールを使用するか、AWS CLI または EMR SDK 経由で emrfs-site 分類プロパティを使用して、Amazon S3 内の EMRFS データのサーバー側の暗号化 (SSE) かクライアント側の暗号化 (CSE) を指定できます。Amazon S3 の SSE と CSE は相互排他的であるため、いずれかを選択できますが、両方は選択できません。

AWS CLI の手順については、使用する暗号化タイプに該当するセクションを以下で参照してください。

AWS Management Console を使用して EMRFS 暗号化オプションを指定するには
  1. 新しい Amazon EMR コンソールに移動し、サイドナビゲーションから [古いコンソールに切り替える] を選択します。古いコンソールに切り替えたときに何が起こるかについての詳細は、「古いコンソールの使用」を参照してください。

  2. [Create cluster (クラスターの作成)]、[Go to advanced options (詳細オプションに移動する)] の順に選択します。

  3. 4.7.2 以前の [Release] を選択します。

  4. アプリケーションに合わせて [Software and Steps] の他のオプションを選択し、[Next] を選択します。

  5. アプリケーションに合わせて、[Hardware] ペインおよび [General Cluster Settings] ペインで設定を選択します。

  6. [Security] ペインの [Authentication and encryption] で、使用する [S3 Encryption (with EMRFS)] オプションを選択します。

    注記

    Amazon EMR リリースバージョン 4.4 以前を使用しているときは、[KMS Key Management を使用した S3 サーバー側の暗号化] (SSE-KMS) を使用できません。

    • AWS Key Management を使用するオプションを選択する場合は、[AWS KMS キー ID] を選択します。詳細については、「EMRFS AWS KMS keys 暗号化に使用する」を参照してください。

    • [S3 client-side encryption with custom materials provider] を選択した場合、[Class name] と [JAR location] に入力してください。詳細については、「Amazon S3 クライアント側暗号化」を参照してください。

  7. 必要に応じて、アプリケーションの他のオプションを選択し、[Create Cluster] を選択します。

EMRFS AWS KMS keys 暗号化に使用する

AWS KMS 暗号化キーは、Amazon EMR クラスターインスタンス、および EMRFS で使用する Amazon S3 バケットと同じリージョンに作成する必要があります。指定するキーが、クラスターの設定に使用するアカウントとは異なるアカウントにある場合は、その ARN を使用してキーを指定する必要があります。

Amazon EC2 インスタンスプロファイルのロールには、指定した KMS キーを使用する権限が必要です。Amazon EMR 内のインスタンスプロファイルのデフォルトのロールは EMR_EC2_DefaultRole です。インスタンスプロファイルに別のロールを使用する場合、または Amazon S3 への EMRFS リクエストに IAM ロールを使用する場合は、必要に応じて各ロールがキーユーザーとして追加されていることを確認してください。これにより、ロールに KMS キーを使用する権限が付与されます。詳細については、「AWS Key Management Service デベロッパーガイド」の「キーポリシーの使用」と、「Amazon S3 への EMRFS リクエストの IAM ロールの設定」を参照してください。

を使用して指定した KMS キーのキーユーザーのリストにインスタンスプロファイルまたは EC2 インスタンスプロファイルを追加できます。または AWS SDK を使用して適切なキーポリシーをアタッチすることもできます。AWS Management Console AWS CLI

Amazon EMR は、対称 KMS キーのみをサポートします。非対称 KMS キーを使用して、Amazon EMR クラスター内の保管中のデータを暗号化することはできません。KMS キーが対称か非対称かを判別するには、「対称および非対称 KMS キーを識別する」を参照してください。

以下の手順では、を使用してデフォルトの Amazon EMR EMR_EC2_DefaultRole インスタンスプロファイルをキーユーザーとして追加する方法について説明します。AWS Management ConsoleKMS キーを既に作成していることを前提としています。新しい KMS キーを作成するには、『AWS Key Management Service開発者ガイド』の「キーの作成」を参照してください。

暗号化キーユーザーのリストに Amazon EMR の EC2 インスタンスプロファイルを追加するには
  1. AWS Management Console にサインインし、AWS Key Management Service (AWS KMS) コンソール (https://console.aws.amazon.com/kms) を開きます。

  2. AWS リージョン を変更するには、ページの右上隅にあるリージョンセレクターを使用します。

  3. 変更する KMS キーのエイリアスを選択します。

  4. [Key Users] のキーの詳細ページで、[Add] を選択します。

  5. [Add key users] ダイアログボックスで、適切なロールを選択します。デフォルトロールの名前は EMR_EC2_DefaultRole です。

  6. [追加] を選択します。

Amazon S3 のサーバー側の暗号化

Amazon S3 のサーバー側の暗号化をセットアップすると、Amazon S3 はデータをディスクに書き込むときにオブジェクトレベルで暗号化し、アクセスするときに復号します。SSE に関する詳細は、「Amazon Simple Storage Service ユーザーガイド」の「サーバー側の暗号化を使用したデータの保護」を参照してください。

Amazon EMR で SSE を指定するときに、次の 2 つの異なるキー管理システムから選択できます。

  • SSE-S3 — Amazon S3 がキーを管理します。

  • SSE-KMS — Amazon EMR AWS KMS key に適したポリシーを設定するには、を使用します。Amazon EMR のキー要件の詳細については、「AWS KMS keys暗号化に使用する」を参照してください。

SSE とお客様が用意したキーとの組み合わせ (SSE-C) は、Amazon EMR では使用できません。

AWS CLI を使用して有効な SSE-S3 でクラスターを作成する
  • 次のコマンドを入力します。

    aws emr create-cluster --release-label emr-4.7.2 or earlier \ --instance-count 3 --instance-type m5.xlarge --emrfs Encryption=ServerSide

fs.s3 を設定して SSE-S3 を有効にすることもできます。 enableServerSideemrfs-siteプロパティの暗号化プロパティを true に設定します。以下の SSE-KMS の例を参照して、キー ID のプロパティを省略します。

AWS CLI を使用して有効な SSE-KMS でクラスターを作成する
注記

SSE-KMS は、Amazon EMR リリースバージョン 4.5.0 以降でのみ使用できます。

  • AWS CLI次のコマンドを入力して SSE-KMS でクラスターを作成します。KeyID は、たとえば AWS KMS key a4567b8-9900-12ab-1234-123a45678901 です。

    aws emr create-cluster --release-label emr-4.7.2 or earlier --instance-count 3 \ --instance-type m5.xlarge --use-default-roles \ --emrfs Encryption=ServerSide,Args=[fs.s3.serverSideEncryption.kms.keyId=keyId]

    --または--

    emrfs-site 分類を使用して次の AWS CLI コマンドを入力し、以下の例の myConfig.json のようなコンテンツの設定 JSON ファイルを提供します。

    aws emr create-cluster --release-label emr-4.7.2 or earlier --instance-count 3 --instance-type m5.xlarge --applications Name=Hadoop --configurations file://myConfig.json --use-default-roles

    myConfig.json のサンプルコンテンツ:

    [ { "Classification":"emrfs-site", "Properties": { "fs.s3.enableServerSideEncryption": "true", "fs.s3.serverSideEncryption.kms.keyId":"a4567b8-9900-12ab-1234-123a45678901" } } ]

SSE-S3 と SSE-KMS の設定プロパティ

これらのプロパティは emrfs-site 設定分類を使用して設定できます。SSE-KMS は、Amazon EMR リリースバージョン 4.5.0 以降でのみ使用できます。

プロパティ デフォルト値 説明
fs.s3.enableServerSideEncryption false

true に設定すると、Amazon S3 に保存されたオブジェクトはサーバー側の暗号化を使用して暗号化されます。キーが指定されていない場合、SSE-S3 が使用されます。

fs.s3.serverSideEncryption.kms.keyId n/a

AWS KMS キー ID または ARN を指定します。キーを指定した場合、SSE-KMS が使用されます。