AWS Security Hub がDocumentDB とNeptune をサポート! AWS Security Hub のセキュリティ標準に12個の項目が追加されました(2023/7/31)
みなさん、こんにちは。
明るい笑顔がトレードマーク、ルイボスティーが大好きな芦沢(@ashi_ssan)です。
みなさん、Security Hubの運用されていますか?
AWS Security Hubのセキュリティ標準に新たに 12個のチェック項目(コントロール)が 追加されました。
2023年8月3日現在AWS公式ブログでのアナウンスはありませんが、Security Hub公式ドキュメントのDocument Historyから更新を確認できました。
The following new Security Hub controls are available:
- [Athena.1] Athena workgroups should be encrypted at rest
- [DocumentDB.1] Amazon DocumentDB clusters should be encrypted at rest
- [DocumentDB.2] Amazon DocumentDB clusters should have an adequate backup retention period
- [Neptune.1] Neptune DB clusters should be encrypted at rest
- [Neptune.2] Neptune DB clusters should publish audit logs to CloudWatch Logs
- [Neptune.3] Neptune DB cluster snapshots should not be public
- [Neptune.4] Neptune DB clusters should have deletion protection enabled
- [Neptune.5] Neptune DB clusters should have automated backups enabled
- [Neptune.6] Neptune DB cluster snapshots should be encrypted at rest
- [Neptune.7] Neptune DB clusters should have IAM database authentication enabled
- [Neptune.8] Neptune DB clusters should be configured to copy tags to snapshots
- [RDS.27] RDS DB clusters should be encrypted at rest
読者のみなさんがよく使っているであろう『AWS 基礎セキュリティのベストプラクティス v1.0.0』に上記すべてのコントロールが追加されています。
参考: AWS Foundational Security Best Practices (FSBP) standard - AWS Security Hub
本エントリでは、新規追加されたコントロールについて公式ドキュメントの情報ベースで内容を確認していきます。
早速確認してみましょう。
各コントロール毎に以下の情報をまとめていきます。
AWSドキュメント: Security HubコントロールのドキュメントのURLのリンクを記載します。 重要度: Security Hubが定める検出結果の重要度を表します。Critical(重大) > High(高) > Medium(中) > Low(低)の順に重要度が高いことを示します。 Configルール: 環境のリソースに対してセキュリティチェックを実行するためにSecurity Hubによって作成されるConfigカスタムルール(サービスリンクルール)が稼働しています。Sedcurity Hubによるチェックが実際にどのようにリソースをチェックしているかはConfigルールを確認すると良いです。 概要: コントロールでチェックされる内容を簡単にまとめています。 参考ドキュメント: 内容を理解する上で参考になるドキュメントをまとめています。
Amazon Athena
[Athena.1] Athena workgroups should be encrypted at rest
- 重要度:Medium(中)
- Configルール:athena-workgroup-encrypted-at-rest
- AWSドキュメント:Amazon Athena controls - AWS Security Hub
- 概要:
- Athena ワークグループが保存時の暗号化を有効化しているかどうかをチェックします。有効化されていない場合は違反となります。
- Athenaは実行するクエリの結果を事前に設定したS3バケットに保存します。保存時の暗号化を有効化すると、Athenaがクエリ結果をS3に保存する際に暗号化されます。
- 暗号化で利用できる鍵は以下です。SSE-S3だとコストが発生しません。
- SSE-S3(S3管理キーによるサーバー側暗号化)
- SSE-KMS(顧客管理のKMSキーによるサーバー側暗号化)
- CSE-KMS(顧客管理のKMSキーによるクライアント側暗号化)
- 暗号化で利用できる鍵は以下です。SSE-S3だとコストが発生しません。
- 参考ドキュメント:
Amazon DocumentDB
[DocumentDB.1] Amazon DocumentDB clusters should be encrypted at rest
- 重要度:Medium(中)
- Configルール: docdb-cluster-encrypted
- AWSドキュメント:Amazon DocumentDB controls - AWS Security Hub
- 概要:
- DocumentDBクラスターが保存時に暗号化されていることをチェックします。暗号化されていない場合違反となります。
- 暗号化に利用できる鍵は、KMSで管理されている対象暗号化キーです。
- DocumentDBクラスター作成後は暗号化設定を変更できません。変更したい場合はクラスターの再作成が必要になります。
- 参考ドキュメント:
[DocumentDB.2] Amazon DocumentDB clusters should have an adequate backup retention period
- 重要度:Medium(中)
- Configルール: docdb-cluster-backup-retention-check
- AWSドキュメント:Amazon DocumentDB controls - AWS Security Hub
- 概要:
- DocumentDBクラスターのバックアップ保持期間が7日以上かどうかをチェックします。7日未満の場合違反となります。
- バックアップ保持期間のデフォルトは1日です。準拠させるために初期設定から変更する必要がある点にご注意ください。
- 参考ドキュメント:
Amazon Neptune
[Neptune.1] Neptune DB clusters should be encrypted at rest
- 重要度:Medium(中)
- Configルール: neptune-cluster-encrypted
- AWSドキュメント:Amazon Neptune controls - AWS Security Hub
- 概要:
- Neptune DBクラスターが保存時に暗号化されていることをチェックします。暗号化されていない場合違反となります。
- KMSで管理されている鍵を暗号化に利用できます。
- Neptune DBクラスターの作成後は暗号化設定を変更できません。変更したい場合はクラスターの再作成が必要になります。
- 参考ドキュメント:
[Neptune.2] Neptune DB clusters should publish audit logs to CloudWatch Logs
- 重要度:Medium(中)
- Configルール: neptune-cluster-cloudwatch-log-export-enabled
- AWSドキュメント:Amazon Neptune controls - AWS Security Hub
- 概要:
- Neptune DBクラスターが監査ログをCloudWatch Logsに出力していることをチェックします。設定できていない場合は違反となります。
- Neptune DBクラスターでは、現在CloudWatch Logsへの監査ログおよびスロークエリログの出力がサポートされています。有効化してクラスターの監視に役立てましょう。
- 有効化した場合、CloudWatch Logsへのログ出力のためのコストが発生するため、ご注意ください。
- 参考ドキュメント:
[Neptune.3] Neptune DB cluster snapshots should not be public
- 重要度:Critical(重大)
- Configルール: neptune-cluster-snapshot-public-prohibited
- AWSドキュメント:Amazon Neptune controls - AWS Security Hub
- 概要:
- Neptune DBクラスターがスナップショットをパブリック公開しているかをチェックします。
- スナップショットを共有する場合、以下のどちらかを指定できます。
パブリック
: 誰でもアクセス可能プライベート
: 指定したアカウントIDのみ
- 上記のオプションの前者(
パブリック
)が指定されている場合、違反となります - 機密情報が含まれるようなNeptune DBクラスターのスナップショットのパブリック公開は推奨されません。違反となった際は是正してください。
- 参考ドキュメント:
[Neptune.4] Neptune DB clusters should have deletion protection enabled
- 重要度:Low(低)
- Configルール: neptune-cluster-deletion-protection-enabled
- AWSドキュメント:Amazon Neptune controls - AWS Security Hub
- 概要:
- Neptune DBクラスターで削除保護が有効になっているかチェックします。有効化されていない場合違反となります。
- 有効化することでクラスターの誤削除対策が可能です。
- 追加の費用は発生しません
- 特別な理由がない限り、違反となった場合は有効化して是正しましょう。
- 参考ドキュメント:
[Neptune.5] Neptune DB clusters should have automated backups enabled
- 重要度:Medium(中)
- Configルール: neptune-cluster-backup-retention-check
- AWSドキュメント:Amazon Neptune controls - AWS Security Hub
- 概要:
- Neptune DBクラスターのバックアップ保持期間が7日以上かどうかをチェックします。7日未満の場合違反となります。
- バックアップ保持期間のデフォルトは1日です。準拠させるために初期設定から変更する必要がある点にご注意ください。
- 参考ドキュメント:
[Neptune.6] Neptune DB cluster snapshots should be encrypted at rest
- 重要度:Medium(中)
- Configルール: neptune-cluster-snapshot-encrypted
- AWSドキュメント:Amazon Neptune controls - AWS Security Hub
- 概要:
- Neptune DBクラスターのスナップショットが暗号化されているかチェックします。暗号化されていない場合違反となります。
- 暗号化されたスナップショットは暗号化されたNeptune DBクラスターからのみ作成可能です。Neptune DBクラスターが暗号化されていない場合は、まずスナップショットから暗号化された状態で復元する必要があります。復元後、暗号化されたスナップショットを作成してください。
- 参考ドキュメント:
[Neptune.7] Neptune DB clusters should have IAM database authentication enabled
- 重要度:Medium(中)
- Configルール: neptune-cluster-iam-database-authentication
- AWSドキュメント:Amazon Neptune controls - AWS Security Hub
- 概要:
- Neptune DBクラスターでIAMデータベース認証が有効になっていることをチェックします。有効化されていない場合違反となります。
- デフォルトではIAMデータベース認証は無効で、認証なしでアクセス可能な状態です。
- ユーザー/パスワード認証はサポートされていない
- IAMデータベース認証を有効化すると、クラスターレベルのアクセス制御が可能になります。要件に応じて有効化を検討ください。
- 参考ドキュメント:
- Managing Access Using IAM Policies - Amazon Neptune
- Amazon Neptune Limits - Amazon Neptune
- openCypher on Amazon Neptune - openCypher にフォーカスした移⾏
- ↑ はopenCypher移行を主旨としたドキュメントですが、Neptuneの概要についても参考になります
[Neptune.8] Neptune DB clusters should be configured to copy tags to snapshots
- 重要度:Low(低)
- Configルール: neptune-cluster-copy-tags-to-snapshot-enabled
- AWSドキュメント:Amazon Neptune controls - AWS Security Hub
- 概要:
- Neptune DBクラスターのスナップショット作成時にすべてのタグをコピーするようにクラスターが構成されているかをチェックします。構成されていない場合違反となります。
- Neptune DBクラスターでは、ソースDBインスタンスで
--copy-tags-to-snapshot
(CopyTagsToSnapshot
) オプションが有効になっている場合、タグが自動でコピーされる設定となります。
- 参考ドキュメント:
Amazon RDS
[RDS.27] RDS DB clusters should be encrypted at rest
- 重要度:Medium(中)
- Configルール:rds-cluster-encrypted-at-rest
- AWSドキュメント:Amazon Relational Database Service controls - AWS Security Hub
- 概要:
- Aurora DBクラスターが保存時に暗号化されていることをチェックします。暗号化されていない場合違反となります。
- KMSで管理されている鍵を暗号化に利用できます。
- Aurora DBクラスターの作成後は暗号化設定を変更できません。変更したい場合はクラスターの再作成が必要になります。
- 参考ドキュメント:
- 備考:
- ドキュメント上の構成からAurora DBクラスターに関する項目であると判断しました。
- RDSマルチマスタークラスターが本コントロールの対象かどうかはドキュメント上から判断できませんでした、、有識者の意見求む。
最後に
以上、今回追加されたSecurity Hubの新規コントロールについて確認してみました。
今回の目玉はやはり、Security Hubのチェック対象サービスとして新しく追加されたAmazon DocomentDB と Amazon Neptune ですね。
フルマネージドDBサービスであるこれらのサービスは、汎用的なRDSと比べるとそれぞれの目的に特化しています。
- DocumentDB: ドキュメント指向データベース
- Neptune: グラフ型データベース
DocumentDB、Neptuneを利用しているけど現状のセキュリティ設定に不安がある方にとって待望のアップデートだったのではないでしょうか。
現時点では、DocumentDBは最低限のポイントを押さえた2項目、Neptuneは基本的な項目を充実させた9項目となっています。 サーバーサイド暗号化、スナップショットのパブリック公開防止など、チェック・是正した方が良さそうな項目が多く見受けられました。
RDSで間に合うような一般的な用途でDBを運用している方には、あまり馴染みがないサービスだと思います。せっかくなのでこれを機にキャッチアップしておきましょう。
ちなみに重要度が高い(HIGH / CRITICAL)のコントロールは、以下となっております。
- [Neptune.3] Neptune DB cluster snapshots should not be public
重要度にかかわらず内容のチェックは必要ですが、特に重要度が高いものについては優先度を上げて確認しておきましょう。
ここまで読んでくださりありがとうございました。どなたかのお役に立てば幸いです。
以上、芦沢(@ashi_ssan)でした。