2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon OpenSearch Serverlessについて試してみた

Posted at

背景・目的

以前の記事で OpenSearch Serverless の基本について整理しました。今回は、その内容をさらに深掘りし、実際の動作を簡単に確認してみます。

まとめ

下記に特徴を整理します

特徴 説明
コレクション コレクションは、特定のワークロードまたはユースケースをサポートするために連携する OpenSearch インデックスのグループ
データアクセスポリシーの役割 ・データアクセスポリシーは、コレクションやインデックスへのアクセス権限を管理するためのもの

・特定のユーザーやグループに対して、どのデータにどのような操作(読み取り、書き込み、削除など)が許可されるかを定義できる
アクセス制御の適用範囲 ・データアクセスポリシーは、コレクションやインデックスに対して適用される

・特定のパターンに一致するコレクションやインデックスに対して、自動的にアクセス許可を割り当てることが可能

・これにより、大規模なコレクションを効率的に管理できる

概要

Amazon OpenSearch Serverless のデータアクセスコントロール

下記を基に整理します。

Amazon OpenSearch Serverless のデータアクセスコントロールを使用すると、アクセスメカニズムやネットワークソースに関係なく、ユーザーがコレクションやインデックスにアクセスできるようにすることができます。IAM ロールと SAML アイデンティティへのアクセスを提供できます。

アクセス許可は、コレクションとインデックスリソースに適用されるデータアクセスポリシーを通じて管理します。データアクセスポリシーは、特定のパターンに一致するコレクションとインデックスにアクセス許可を自動的に割り当てることにより、大規模なコレクションを管理するのに役立ちます。1 つのリソースに複数のデータアクセスポリシーを適用できます。OpenSearch Dashboards URL にアクセスするには、コレクションのデータアクセスポリシーが必要になります。

  • データアクセスポリシーの役割
    • データアクセスポリシーは、コレクションやインデックスへのアクセス権限を管理するためのもの
    • 特定のユーザーやグループに対して、どのデータにどのような操作(読み取り、書き込み、削除など)が許可されるかを定義できる
  • アクセス制御の適用範囲
    • データアクセスポリシーは、コレクションやインデックスに対して適用される
    • 特定のパターンに一致するコレクションやインデックスに対して、自動的にアクセス許可を割り当てることが可能
    • これにより、大規模なコレクションを効率的に管理できる

実践

下記を基に試します。

  1. AWSにサインインします

ステップ 1: アクセス許可を設定する

  1. IAMに移動します
  2. ナビゲーションペインで「ロール」をクリックします
  3. 使用するIAMロールを選択します
  4. 許可ポリシーで、「インラインポリシーを作成」をクリックします
  5. 下記のポリシーを貼り付けて、「次へ」をクリックします
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Action": [
            "aoss:CreateCollection",
            "aoss:ListCollections",
            "aoss:BatchGetCollection",
            "aoss:DeleteCollection",
            "aoss:CreateAccessPolicy",
            "aoss:ListAccessPolicies",
            "aoss:UpdateAccessPolicy",
            "aoss:CreateSecurityPolicy",
            "aoss:GetSecurityPolicy",
            "aoss:UpdateSecurityPolicy",
            "iam:ListUsers",
            "iam:ListRoles"
          ],
          "Effect": "Allow",
          "Resource": "*"
        }
      ]
    }
    
  6. ポリシー名を入力し、「ポリシーの作成」をクリックします

ステップ 2: コレクションを作成する

  1. OpenSearch Serviceに移動します

  2. ナビゲーションペインで、ダッシュボードに移動します

  3. 「コレクションを作成」をクリックします

  4. 下記を入力します

    • コレクション名:任意の名前
    • コレクションタイプ:検索
    • デプロイタプ:アクティブレプリカを有効化を外す(テスト用なので外しています)
      image.png
  5. セキュリティで「標準作成」を選択します

  6. 下記を指定し、「次へ」をクリックします

    • 暗号化
      • AWS所有キー
    • NWアクセスの設定
      • アクセスタイプ:パブリック
      • リソースタイプ:両方をチェック
        image.png
  7. データアクセスの設定では、「スキップして後で設定する」をクリックします

  8. 確認し「送信」をクリックします

データアクセス管理

  1. 「データアクセスを管理」をクリックします
    image.png

  2. 「アクセスポリシーを作成」をクリックします

  3. 下記を入力し、「作成」をクリックします

    • アクセスポリシー名:任意
    • ルール名:任意
    • プリンシパルを選択:IAMユーザとロール
      • アクセスするロールを指定
    • リソースと許可を付与:
      • 作成したcollectionとポリシー
        image.png
        image.png

ステップ 3: データをアップロードして検索する

  1. 作成したコレクションを選択します

  2. 「OpenSearchダッシュボード」をクリックします

  3. 別タブで下記の画面が開くので、「Explore on my oqn」をクリックします

  4. 下記の画面が表示されます
    image.png

  5. ナビゲーションペインの「Dev Tools」をクリックします

  6. 下記を入力し、インデックスを作成します

    PUT movies-index 
    
  7. できました
    image.png

  8. 一つのドキュメントを「movies-index」にインデクスするために、下記を実行します

    PUT movies-index/_doc/1
    { 
      "title": "Shawshank Redemption",
      "genre": "Drama",
      "year": 1994
    }
    
  9. 作成できたようです
    image.png

検索する

  1. ナビゲーションペインの「Stack Management」をクリックします

  2. Index Patternsをクリックします

  3. 「Create index pattern」をクリックします

  4. index pattern nameに「movies*」を指定し、「Next step」をクリックします
    image.png

  5. 「Create index pattern」をクリックします
    image.png

  6. 「Discover」をクリックします

  7. 表示されました
    image.png

考察

今回は、OpenSearch Serverlessのチュートリアルを試してみました。
次回は、下記のチュートリアルも試してみたいと思います。

参考

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?