Amazon Web Services ブログ

IBM Guardium によるモニタリングのための Amazon Aurora PostgreSQL データベースアクティビティストリーミングの設定

この投稿では、IBM Guardium でモニタリングするための Amazon Aurora PostgreSQL 互換エディションのデータベースアクティビティストリーミング (DAS) をセットアップする手順を説明します。 ここでは IBM Guardium バージョン 11.5 を使用しています。

Aurora PostgreSQL 互換エディションは、Amazon Aurora のスピード、信頼性、管理性と、オープンソースデータベースのシンプルさと費用対効果を兼ね備えた、フルマネージドの PostgreSQL 互換、ACID 準拠のリレーショナルデータベースエンジンです。

IBM Guardium は、データベースアクティビティのモニタリングとデータ保護機能を提供する IBM セキュリティ製品です。 IBM Guardium は Aurora データベース内のアクティビティをリアルタイムで継続的に監視します。 SQL ステートメント、ログイン試行、管理アクションをキャプチャして分析します。 Guardiumはデータベースのアクティビティを即座に可視化することで、疑わしいアクティビティや不正なアクティビティを迅速に特定して対応できるようにします。 高度な分析と機械学習 (ML) 技術を採用して、潜在的なセキュリティ脅威を検出して防止します。 また、データ保護ポリシーを実施することで、Amazon Relational Database Service (Amazon RDS) に保存されている機密データを保護するのにも役立ちます。

Amazon RDS 環境内のきめ細かなアクセス制御を確立し、特権ユーザーのアクティビティを監視できます。 IBM Guardiumは、組織がGDPR、HIPAA、PCI DSSなどを含む幅広い規制や標準へのコンプライアンスを維持できるよう支援します。 コンプライアンス要件を満たすのに役立つ、事前に作成されたコンプライアンス・レポートとテンプレートのほか、カスタマイズ可能なポリシーとルールも用意されています。 IBM Guardiumがサポートするプラットフォームについては、「Guardium Data Protection 11.5のサポート対象プラットフォームと要件」を参照してください。

ソリューション概要

以下の図は、IBM Guardium でモニタリング用に Aurora DAS を構成するための大まかな手順を示しています。

ワークフローには以下のステップが含まれます。

  1. データベースアクティビティストリーミングを有効にする。 「この構成ではデータベースアクティビティストリーミングを開始できません」というエラーが表示される場合は、「データベースアクティビティストリーミングでサポートされている DB インスタンスクラス」をチェックして、DB クラスターがサポートされているインスタンスクラスを使用しているかどうかを確認してください。
  2. Aurora は Amazon Kinesis データストリームを自動的に作成します。 RDS データベースインスタンスのデータベースアクティビティストリーミングのステータスは、Amazon RDS コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) を使用して取得できます。
  3. IBM Guardium で Kinesis データストリームを設定します。 IBM Guardium は Amazon Elastic Compute Cloud (Amazon EC2) 上で動作するデータコレクターで、RDS インスタンスからデータベースアクティビティをキャプチャします。
  4. IBM Guardium で DAS を設定したら、収集するデータとその処理方法を定義する IBM Guardium ポリシーを設定する準備が整います。

IBM Guardium では、Amazon RDS からキャプチャされたデータを分析して、データベースのアクティビティについてより深い洞察を得ることができます。 IBM Guardium に組み込まれている分析機能を使用して、傾向やパターンを特定し、異常を検出し、レポートを生成できます。 これにより、データベースがどのように使用されているかをよりよく理解し、セキュリティーやコンプライアンスを強化する必要がある分野を特定できます。 また、潜在的なセキュリティ脅威やコンプライアンス違反を通知するアラートや通知を設定することもできます。

IBM Guardiumがセキュリティー上の脅威やコンプライアンス違反を検出すると、アラートや通知をトリガーできます。 問題のあるユーザーや IP アドレスをブロックしたり、セキュリティー・チームに電子メール通知を送信したりして、これらのアラートに自動的に対応するようにIBM Guardiumを構成できます。 これにより、潜在的なセキュリティー上の脅威に迅速に対応し、ビジネスへの影響を最小限に抑えることができます。

以下のセクションでは、データベースデータベースアクティビティストリーミングを有効にし、Amazon EC2 で IBM Guardium インスタンスを設定する手順を示します。

前提条件

この投稿は、以下の前提条件を満たしていることを前提としています。

データベースアクティビティストリーミングの開始

データベースアクティビティモニタリングを有効にするには、「データベースアクティビティストリーミングの開始」の手順に従ってください。

IAM ロールの作成

IAM ロールを使用すると、AWS のサービスにアクセスするための一時的な権限を委任できるため、認証情報が長期間使用されなくなります。 詳細については、「IAM ロールの作成」を参照してください。 以下のステップを完了してください。

  1. 次の IAM ポリシーを使用してロールを作成します。
    a. Guardium-das-policy:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "kinesis:ListStreams",
                    "cloudwatch:PutMetricData",
                    "cloudwatch:GetMetricStatistics"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "kinesis:RegisterStreamConsumer",
                    "kinesis:DescribeStreamConsumer",
                    "kinesis:DescribeStreamSummary",
                    "kinesis:DescribeStream",
                    "kinesis:GetShardIterator",
                    "kinesis:GetRecords",
                    "kinesis:ListShards",
    		   "kinesis:ListStreamConsumers",
                    "kinesis:SubscribeToShard"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "kms:Decrypt"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "dynamodb:CreateTable",
                    "dynamodb:DescribeTable",
                    "dynamodb:GetItem",
                    "dynamodb:PutItem",
                    "dynamodb:Scan",
                    "dynamodb:UpdateItem",
                    "dynamodb:DeleteItem"
                ],
                "Resource": "*"
            }
        ]
    }
    JSON

    b. assume-role:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "sts:AssumeRole"
                ],
                "Resource": "*"
            }
        ]
    }
    JSON
  2. 次の IAM 信頼ポリシーステートメントを追加してください。
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "ec2.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
            },
            {
                "Effect": "Allow",
                "Principal": {
                    "AWS":"arn:aws:sts::<<account-id>>:assumed-role/<<iam-rolename>>/<<Guardium-instance-id>>"
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }
    JSON

    これらの権限は必要に応じてさらに制限できます。

    これで、IBM Guardium EC2 インスタンスにロールをアタッチできるようになりました。

  3. Amazon EC2 コンソールのナビゲーションペインで [インスタンス] を選択します。
  4. Guardium インスタンスを選択します。
  5. 「アクション」メニューで「セキュリティ」を選択し、「IAM ロールの変更」を選択します。
  6. Guardium インスタンスにアタッチするために作成した IAM ロールを選択します。
  7. [保存] を選択します。

IBM Guardium でデータ・アクティビティ・ストリームを設定します。

Guardiumのデータ・アクティビティ・ストリームを設定するには、以下の手順を実行します。

  1. IBM Guardium ウェブコンソールにログインします。
  2. Discover」、「Database Discovery」、「Cloud DB Service Protection」を選択します。
  3. 以下の詳細を使用して Cloud DB サービスアカウントを作成します。
    • [Name] には、Cloud DB Service Account と入力します。
    • [Provider] には [Amazon] を選択します。
    • [Audit type] には、[Data Streams] を選択します。
    • [Authentication type] には [IAM Instance Profile] を選択します。
    • [Role ARN] には、作成したロールの ARN を入力します。
  4. [Create] を選択します。
  5. ストリームを発見したい各リージョンの行を選択し、「Discover」を選択します。
  6. オプションで、フィルターを使用して検索を絞り込むこともできます。 たとえば、「us」という文字を含むデータストリームのみを表示するには、us と入力します。

    IBM Guardium はリージョンを検索し、選択したリージョンの新しいストリームをすべて Streams テーブルに追加します。
  7. ストリームを選択し、「Enable Monitoring」を選択します。
  8. [Start monitoring stream] で、次の情報を入力します。
    1. [DB Type] では、データベースタイプを選択します (この投稿では Aurora PostgreSQL を選択します)。
    2. [DB DNS endpoint] には、DB DNS エンドポイントを入力します。
      DB DNS エンドポイントは Amazon RDS コンソールの [接続とセキュリティ] タブにあります。 Writer インスタンスのエンドポイントを選択する必要があります。
    3. [Port] には、DB DNS エンドポイントのポート (5432 など) を入力します。
    4. [Cluster resource ID] には、ストリームに関連付けられた RDS クラスターのクラスターリソース ID を入力します。
      クラスターリソース ID は、Amazon RDS の [設定] タブに [リソース ID] というラベルが付いています。 無効または不明なクラスターリソース ID を入力すると、ストリームのステータスにエラーが報告されます。
    5. [Consumer group Name] には、わかりやすい名前を入力します。
      これにより、このデータストリームを複数のコンシューマーが共有または別々に表示できるかが決まります。 コンシューマーグループ名には任意の固有の名前を使用できます。 データストリームビューを共有するには、同じコンシューマーグループ名を使用してください。
  9. 「OK」を選択します。

データストリームを有効にして実行したら、stream テーブルを使用してデータストリームを追跡および管理できます。 ステータスカラーの意味は次のとおりです。

  • – 正常またはストリーミングが有効で、受信レコードを受信しています。
  • – まだ設定されていません
  • グレー – 使用不可
  • 黄色 – 警告。通常は ConsumerNoInboundRecords というメッセージが表示される
  • – エラー状態

IBM Guardium のポリシー

IBM Guardium で DAS を設定すると、Guardium システムが監視するデータベーストラフィックにリアルタイムで適用されるポリシー、ルール、アクションを設定できます。 ポリシーは、どのトラフィックを無視またはログに記録するか、どのアクティビティがより詳細なロギングを必要とするか、どのアクティビティがアラートをトリガーするか、またはデータベースへのアクセスをブロックするかを定義します。 ポリシーとルールの種類、およびポリシーを作成または変更する方法について詳しくは、「ポリシー」を参照してください。

クリーンアップ

リソースをクリーンアップするには、以下の手順を実行します。

  1. Streams」テーブルで、「Disable Monitoring」を選択します。
  2. Cloud DB Service Account を削除します。
  3. Amazon RDS コンソールで RDS インスタンスに移動し、データベースアクティビティストリーミングを無効にします。
  4. RDS インスタンスを削除します。
  5. Amazon EC2 コンソールで IBM Guardium EC2 インスタンスを終了します。

サマリー

Amazon RDS を IBM Guardium と統合することで、データベースインフラストラクチャのセキュリティ、コンプライアンス、データ保護機能が全体的に強化されます。 Guardium の高度なモニタリング、脅威検出、コンプライアンスレポート機能により、Amazon RDS 環境におけるデータを自信を持って管理し、リスクを軽減できます。 この記事では、監視用に Aurora PostgreSQL と互換性のある DAS を IBM Guardium でセットアップする方法と、IBM Guardium でポリシーを定義する方法を学びました。

IBM Guardium のオファリングについて詳しくは、以下を参照してください。

この投稿についてご意見がありましたら、コメント欄で送信してください。

翻訳はソリューションアーキテクトの山根 英彦が担当しました。原文はこちらです。


著者

Supriya Kanjilal は IBM の AWS セキュリティアーキテクトで、15 年以上の業界経験を持ち、サイバーセキュリティとクラウド移行戦略を専門としています。 現在は IBM と AWS の戦略的パートナーシップに取り組んでいます。 彼の役職は、お客様が AWS クラウドで IBM ソフトウェアソリューションを設計、計画、設計できるよう支援することです。

Rishit G. Barochia は IBM のクラウドソフトウェアアーキテクトです。 彼の経験には、テクニカルアーキテクチャ、クラウド、マイクロサービスアーキテクチャ、ハイブリッドソリューションが含まれます。 IBMとAWSの戦略的パートナーシップに取り組んでいます。 彼の役職は、お客様が AWS クラウドで IBM ソフトウェアソリューションを設計、計画、設計できるよう支援することです。

Sethil Nagaraj はアマゾンウェブサービスのパートナーソリューションアーキテクトで、バージニア州を拠点としています。 彼は顧客の問題に対して創造的なソリューションを提供することを楽しんでいる一方で、クラウドコンピューティングがいかに可能性の技術を促進しているかに魅了されています。