OpenSearch Service での Amazon Security Lake データソース統合の作成 - Amazon OpenSearch Service

OpenSearch Service での Amazon Security Lake データソース統合の作成

Amazon OpenSearch Serverless を使用して、Amazon Security Lake のセキュリティデータを直接クエリできます。これを行うには、Security Lake データに対して OpenSearch ゼロ ETL 機能を使用できるようにするデータソースを作成します。データソースを作成すると、Security Lake に保存されているデータを直接検索、インサイトの取得、分析できます。オンデマンドインデックス作成を使用することで、一部の Security Lake データセットに対するクエリのパフォーマンスを加速させ、高度な OpenSearch 分析を使用できます。

前提条件

作業を始める前に、以下の文書を確認したか確かめてください:

データソースを作成する前に、Security Lake で次のアクションを実行します。

  • Security Hub を有効にします。OpenSearch リソースと同じ AWS リージョン でログを収集するように Security Lake を設定します。手順については、「Amazon Security Lake ユーザーガイド」の「Amazon Security Lake の開始方法」を参照してください。

  • Security Lake のアクセス許可を設定します。リソース管理のためにサービスにリンクされたロールのアクセス許可を受け入れ、コンソールで問題ページに問題が表示されていないことを確認します。詳細については、「Amazon Security Lake ユーザーガイド」の「Service-linked role for Security Lake」を参照してください。

  • Security Lake データソースを共有します。Security Lake と同じアカウント内で OpenSearch にアクセスする場合は、Security Lake コンソールに Lake Formation への Security Lake バケット登録を促すメッセージが表示されていないことを確認します。クロスアカウント OpenSearch アクセスの場合は、Security Lake コンソールで Lake Formation クエリサブスクライバーを設定します。OpenSearch リソースに関連付けられたアカウントをサブスクライバーとして使用します。詳細については、「Amazon Security Lake ユーザーガイド」の「Subscriber management in Security Lake」を参照してください。

さらに、AWS アカウント には次のリソースも必要です。

  • (オプション) 手動で作成された IAM ロール。このロールを使用して、データソースへのアクセスを管理できます。または、OpenSearch Service で必要なアクセス許可を持つロールを自動的に作成することも可能です。手動で作成した IAM ロールを使用する場合は、手動で作成された IAM ロールに必要なアクセス許可 にあるガイダンスに従ってください。

手順

データソースを設定して、AWS マネジメントコンソール 内から Security Lake データベースに接続できます。

AWS マネジメントコンソール を使用してデータソースを設定するには

  1. Amazon OpenSearch Service コンソール (https://console.aws.amazon.com/aos/) に移動します。

  2. 左側のナビゲーションペインで、[中央管理] に移動し、[接続されたデータソース] を選択します。

  3. [接続] を選択します。

  4. データソースタイプとして [Security Lake] を選択します。

  5. [次へ] を選択します。

  6. [データ接続の詳細] で、名前とオプションの説明を入力します。

  7. [IAM アクセス許可の設定] で、データソースへのアクセスを管理する方法を選択します。

    1. このデータソースのロールを自動的に作成する場合は、次の手順に従います。

      1. [新しいロールを作成する] を選択します。

      2. IAM ロールの名前を入力します。

      3. 1 つ以上の AWS Glue テーブルを選択して、クエリできるデータを定義します。

    2. 自分で管理している既存のロールを使用する場合は、次の手順に従います。

      1. [既存のロールを使用] を選択します。

      2. ドロップダウンメニューから既存のロールを選択します。

    注記

    独自のロールを使用する場合は、IAM コンソールから必要なポリシーをアタッチして、すべての必要なアクセス許可があることを確認する必要があります。詳細については、「手動で作成された IAM ロールに必要なアクセス許可」を参照してください。

  8. (オプション) [タグ] で、データソースにタグを追加します。

  9. [次へ] を選択します。

  10. [OpenSearch のセットアップ] で、OpenSearch のセットアップ方法を選択します。

    1. デフォルトのリソース名とデータ保持設定を確認します。

      デフォルト設定を使用すると、新しい OpenSearch アプリケーションと専用の Essentials ワークスペースが追加料金なしで作成されます。OpenSearch を使用すると、複数のデータソースを分析できます。これにはワークスペースが含まれており、一般的なユースケースに合わせてカスタマイズされたエクスペリエンスを提供します。WorkSpaces はアクセス制御に対応しているため、ユースケースに応じたプライベートスペースを作成し、共同作業者とのみ共有することができます。

  11. カスタマイズされた設定を使用します:

    1. [カスタマイズ] を選択します。

    2. 必要に応じて、コレクション名とデータ保持設定を編集します。

    3. 使用する OpenSearch アプリケーションとワークスペースを選択します。

  12. [次へ] を選択します。

  13. 選択内容を確認し、変更を加える必要がある場合は [編集] を選択します。

  14. [コネクタ] を選択して、データソースをセットアップします。データソースの作成中は、このページにとどまってください。準備ができたら、データソースの詳細ページに移動します。

次のステップ

OpenSearch Dashboards にアクセスしてダッシュボードを作成する

データソースを作成すると、OpenSearch Service は OpenSearch Dashboards URL を提供します。これを使用することで、SQL または PPL を使用してデータをクエリします。Security Lake 統合には、ログの分析をすぐに始められるように SQL と PPL 用のパッケージ化されたクエリテンプレートが付属しています。

詳細については、「OpenSearch Dashboards での Security Lake データソースの設定とクエリ」を参照してください。

その他のリソース

手動で作成された IAM ロールに必要なアクセス許可

データソースを作成するときは、データへのアクセスを管理する IAM ロールを選択します。これには 2 つのオプションがあります。

  1. 新しい IAM ロールを自動で作成する

  2. 手動で作成した既存の IAM ロールを使用する

手動で作成したロールを使用する場合は、そのロールに正しいアクセス許可をアタッチする必要があります。アクセス許可は、特定のデータソースへのアクセスを許可するとともに、OpenSearch Service がロールを引き受けて、OpenSearch Service がデータに安全にアクセスして操作できるようにする必要があります。さらに、クエリを実行するデータベースとテーブルのロールに LakeFormation アクセス許可を付与します。ダイレクトクエリ接続からクエリを実行する SecurityLake データベースのロールに DESCRIBE のアクセス許可を付与します。データベース内のテーブルに対して、少なくとも SELECT and DESCRIBE のアクセス許可をデータソースロールに付与します。

次のサンプルポリシーは、データソースの作成と管理に必要な最小特権の許可を示しています。AdminstratorAccess ポリシーなどのより広範な許可を持っている場合、これらの許可にはサンプルポリシーの最小特権が含まれます。

次のサンプルポリシーでは、placeholder text をユーザー自身の情報に置き換えます。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AmazonOpenSearchDirectQueryServerlessAccess", "Effect": "Allow", "Action": [ "aoss:APIAccessAll", "aoss:DashboardsAccessAll" ], "Resource": "arn:aws:aoss:us-east-1:111122223333:collection/collectionname/*" }, { "Sid": "AmazonOpenSearchDirectQueryGlueAccess", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartition", "glue:GetPartitions", "glue:GetTable", "glue:GetTableVersions", "glue:GetTables", "glue:SearchTables", "glue:BatchGetPartition" ], "Resource": [ "arn:aws:glue:us-east-1:111122223333:table/databasename/*", "arn:aws:glue:us-east-1:111122223333:database/databasename", "arn:aws:glue:us-east-1:111122223333:catalog", "arn:aws:glue:us-east-1:111122223333:database/default" ] }, { "Sid": "AmazonOpenSearchDirectQueryLakeFormationAccess", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": [ "*" ] } ] }

また、ロールには、ターゲット ID を指定する次の信頼ポリシーが必要です。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "directquery.opensearchservice.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

ロールを作成する手順については、「カスタム信頼ポリシーを使用したロールの作成」を参照してください。

デフォルトでは、ロールは直接クエリデータソースインデックスにのみアクセスできます。データソースへのアクセスを制限または許可するようにロールを設定できますが、このロールのアクセスは調整しないことをお勧めします。データソースを削除すると、このロールは削除されます。これにより、他のユーザーがロールにマッピングされている場合、そのユーザーのアクセスは削除されます。

カスタマーマネージドキーで暗号化された Security Lake データのクエリ

データ接続に関連付けられた Security Lake バケットが、カスタマーマネージド AWS KMS key によるサーバー側の暗号化を使用して暗号化されている場合は、LakeFormation サービスロールをキーポリシーに追加する必要があります。これにより、サービスはクエリ用にデータにアクセスして読み取ることができます。

次のサンプルポリシーでは、placeholder text をユーザー自身の情報に置き換えます。

{ "Sid": "Allow LakeFormation to access the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }