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

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

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

重要

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

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

AWS CLI 手順については、以下の暗号化タイプに適したセクションを参照してください。

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

  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 ロールの設定」を参照してください。

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

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

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

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

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

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

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

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

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

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

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

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

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

  • SSE-KMS – を使用して AWS KMS key 、Amazon EMR に適したポリシーをセットアップします。Amazon EMR の主要な要件の詳細については、「暗号化に を使用する AWS KMS keys」を参照してください。

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

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

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

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

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

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 が使用されます。