【Security Hub修復手順】[EMR.3] Amazon EMR セキュリティ設定は保管時に暗号化する必要があります / [EMR.4] Amazon EMR セキュリティ設定は転送中に暗号化する必要があります

【Security Hub修復手順】[EMR.3] Amazon EMR セキュリティ設定は保管時に暗号化する必要があります / [EMR.4] Amazon EMR セキュリティ設定は転送中に暗号化する必要があります

Clock Icon2025.02.25

こんにちは、あかいけです。

皆さん、お使いのAWS環境のセキュリティチェックはしていますか?

当エントリでは、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修復手順をご紹介します。

本記事の対象コントロール

[EMR.3] Amazon EMR security configurations should be encrypted at rest
[EMR.3] Amazon EMR セキュリティ設定は保管時に暗号化する必要があります

[EMR.4] Amazon EMR security configurations should be encrypted in transit
[EMR.4] Amazon EMR セキュリティ設定は転送中に暗号化する必要があります

前提条件

本記事はAWS Security Hubで「AWS基礎セキュリティのベストプラクティススタンダード」を利用されている方向けの内容となります。
AWS Security Hubの詳細についてはこちらのブログをご覧ください。

https://dev.classmethod.jp/articles/lets-learn-aws-security-hub/
https://dev.classmethod.jp/articles/aws-security-operation-with-securityhub-2021/

対象コントロールの説明

[EMR.3] Amazon EMR セキュリティ設定は保管時に暗号化する必要があります

https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/emr-controls.html#emr-3

Amazon EMR セキュリティ設定にて保管中の暗号化が有効化されているかどうかをチェックします。
EMRのセキュリティ設定において保管中の暗号化は以下の二種類があります。

  • Amazon S3 へのデータ保存時の暗号化
  • ローカルディスクへのデータ保存時の暗号化

どちらか一方、または両方の暗号化が有効化されていればコントロールは成功、
両方の暗号化が無効化されている場合は失敗します。

データ管理はユーザー側の責任であるため、基本的には保管時の暗号化は必須です。
ただし、重要データを扱わない場合や本番環境以外であれば必須ではありません。

[EMR.4] Amazon EMR セキュリティ設定は転送中に暗号化する必要があります]

https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/emr-controls.html#emr-4

Amazon EMR セキュリティ設定にて転送中の暗号化が有効化されているかどうかをチェックします。

暗号化することで悪意のあるユーザーからの盗聴リスクを軽減できるため、基本的には対応を必須とします。
ただし通信がプライベートに閉じている場合など攻撃のリスクが低い場合、必須ではありません。

また暗号化によりトラフィックの盗聴を防げる一方、パフォーマンス低下を考慮する必要があります。
そのため、有効化する場合は十分にテストを実施してください。

修復手順

まず、EMRのセキュリティ設定は作成後に設定変更することができません。
そのため既存のセキュリティ設定をクローン、
または新規作成して暗号化を有効にしたセキュリティ設定を作成する必要があります。

なお起動中のEMRクラスターのセキュリティ設定の付け替えはできないため、
クラスター作成時に適用することとなります。

1.KMSカスタマー管理型キー 作成

今回は保管時の暗号化にKMSカスタマー管理型キー利用するので作成します。

https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-encryption-enable.html#emr-encryption-create-keys

EMRは対称KMSキーのみサポートしているので、キータイプは対称を選びます。
スクリーンショット 2025-02-24 20.02.00

エイリアスはお好みで設定して下さい。
スクリーンショット 2025-02-24 20.03.15

キーユーザーとしてEMR用のIAMロールを指定します。
以下ではデフォルトIAMロールを指定していますが、各自実際に利用するIAMロールを指定して下さい。
残りの項目はデフォルト値で作成します。
スクリーンショット 2025-02-24 20.07.17

2.PEMファイル 作成

転送中の暗号化はPEMファイルを利用します。

https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-encryption-enable.html#emr-encryption-certificates

まずは暗号化用のPEMファイルを作成します。
なお検証用なので自己証明書を利用していますが、
本番システムの証明書は信頼できる認証機関(CA)を使用して発行してください。

※コマンドは公式ドキュメント通りですが、
リージョンに合わせてopensslコマンド内の*.us-west-2.compute.internal*.ap-northeast-1.compute.internalへ変更しています

PEMファイル作成
% openssl req -x509 -newkey rsa:2048 -keyout privateKey.pem -out certificateChain.pem -days 365 -nodes -subj '/C=US/ST=Washington/L=Seattle/O=MyOrg/OU=MyDept/CN=*.ap-northeast-1.compute.internal'
% cp certificateChain.pem trustedCertificates.pem
% zip -r -X emr-certs.zip certificateChain.pem privateKey.pem trustedCertificates.pem

あとはS3バケットを作成してPEMファイルをアップロードします。

S3バケット 作成
% aws s3api create-bucket \
    --bucket <bucket-name> \
    --region ap-northeast-1 \
    --create-bucket-configuration LocationConstraint=ap-northeast-1

% aws s3 cp ./emr-certs.zip s3://<bucket-name>/emr-certs.zip

3.セキュリティ設定 作成

今回は既存のセキュリティ設定をクローンして作成してみます。

元となるのは以下の全ての暗号化を有効化していないセキュリティ設定です。
右上の「クローン」をクリックします。
スクリーンショット 2025-02-24 20.28.11

Amazon S3へのデータ保存時の暗号化はSSE-S3も利用できますが、
今回はSSE-KMSで先ほど作成したKMSキーを指定します。
スクリーンショット 2025-02-24 20.29.16

ローカルディスクへのデータ保存時の暗号化も同様に、
先ほど作成したKMSキーを指定します。
スクリーンショット 2025-02-24 20.29.34

転送中の暗号化にて先ほどアップロードしたPEMファイルのパスを指定します。
またEMR WAL 内のデータの保存時の暗号化は今回直接は関係ないですが、合わせて有効化しています。
残りの項目はデフォルト値で作成します。
スクリーンショット 2025-02-24 20.30.11

作成完了後、詳細から各種暗号化が設定されていることが確認できます。
スクリーンショット 2025-02-24 20.31.26

またSecurity Hubの該当のコントロールを確認すると、
新しく作成したセキュリティ設定はパスしていることが確認できます。
スクリーンショット 2025-02-24 20.43.16

スクリーンショット 2025-02-24 20.43.30

あとは新規作成したセキュリティ設定を指定して、EMRクラスターを作成して動作確認を進めて下さい。
動作確認をして問題がなければ、古いセキュリティ設定は削除しましょう。

最後に

今回は、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介しました。

コントロールを修正して、お使いのAWS環境のセキュリティをパワーアップさせましょう。

最後までお読みいただきありがとうございました!どなたかのお役に立てれば幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.