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

【Security Hub修復手順】[EMR.3] 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 セキュリティ設定は保管時に暗号化する必要があります

前提条件

本記事は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/

対象コントロールの説明

Amazon EMR セキュリティ設定にて、保管中の暗号化が有効化されているかどうかをチェックします。
本コントロールはEMRクラスター自体の設定状況をチェックするのではなく、
あくまでセキュリティ設定の設定状況をチェックしているという点に注意が必要です。

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

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

またEMRのセキュリティ設定において、保管中の暗号化は以下の二種類があります。

  • Amazon S3 へのデータ保存時の暗号化 (S3 data encryption)
  • ローカルディスクへのデータ保存時の暗号化 (Local disk encryption)

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

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

以下はこの挙動についての調査結果です。
長いので折りたたんでいますが、気になる方は見てみて下さい。

本コントロールの挙動について

なぜこのような挙動になるのか調べてみたところ、
セキュリティ設定の仕様によるものでした。

まずSecurity Hub コントロール EMR.3 は、
AWS Config ルール emr-security-configuration-encryption-rest の実行結果を参照しています。

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

このConfig ルールはセキュリティ設定の設定項目である、
EnableAtRestEncryptionfalse かどうかチェックします。

https://docs.aws.amazon.com/ja_jp/config/latest/developerguide/emr-security-configuration-encryption-rest.html

セキュリティ設定を参照してみるとEnableAtRestEncryptionという設定項目がありますが、
保管時の暗号化に関する具体的な設定項目は以下が担当していることがわかります。

  • AtRestEncryptionConfiguration
    • S3EncryptionConfiguration
    • LocalDiskEncryptionConfiguration
{
  "Name": "encryption-enable-security-config",
  "SecurityConfiguration": {
    "EncryptionConfiguration": {
      "EnableAtRestEncryption": true,
      "AtRestEncryptionConfiguration": {
        "S3EncryptionConfiguration": {
          "EncryptionMode": "SSE-S3"
        },
        "LocalDiskEncryptionConfiguration": {
          "EncryptionKeyProviderType": "AwsKms",
          "AwsKmsKey": "arn:aws:kms:ap-northeast-1:XXXXXXXXXXXX:alias/kms-alias",
          "EnableEbsEncryption": true
        }
      },
      "EnableInTransitEncryption": false
    },
    "InstanceMetadataServiceConfiguration": {
      "MinimumInstanceMetadataServiceVersion": 2,
      "HttpPutResponseHopLimit": 1
    }
  },
  "CreationDateTime": "2025-01-01T00:00:00.0000000+09:00"
}

また以下ドキュメントを確認したところ、EnableAtRestEncryptionは保管時の暗号化に有効にするためのフラグのような役割だと考えられます。

https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-create-security-configuration.html#:~:text="EnableAtRestEncryption"%3A true | false

結論として、EnableAtRestEncryptionの値は、
S3EncryptionConfiguration またはLocalDiskEncryptionConfiguration の少なくとも一方を設定するためにtrueと設定する必要があります。
そのため両方の設定がされていなくても本コントロールは成功します。

修復手順

まず、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.セキュリティ設定 作成

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

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

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

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

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

最後に

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

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

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

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.