タダです.
OpenSearch Serverless のダッシュボードアクセスを Azure AD の SAML 経由で行うのを試してみたのでこの記事にまとめます.
OpenSearch Serverless の ダッシュボードアクセス方法
OpenSearch Serverless のダッシュボードアクセスの方法は IAM ユーザーの認証するか SAML 認証を行うかの選択ができます.今回は後者の手法を使います.SAML 認証の設定に関するドキュメントもあるため,ドキュメントの記載に則り設定をしていきます.
Azure AD 側の設定
まずはエンタープライズアプリケーションを作ります.次に,シングルサインオンの設定で 基本的な SAML 構成
のセクションで2箇所設定します.1つ目はエンティティ ID の箇所で, aws:opensearch:[OpenSearch Serverless の AWS アカウント ID]
を埋めます.2つ目は応答 URL に https://collection.ap-northeast-1.aoss.amazonaws.com/_saml/acs
を指定します.ここまで設定できたら保存し,SAML 証明書 のフェデレーション メタデータ XML をダウンロードしておきます.
そして,ダッシュボードにアクセスするユーザーもしくはグループを追加しておきます.この記事ではユーザーを追加しました.ユーザープリンシパル名を OpenSearch Serverless 側の設定で使うためコピーしておきます.
OpenSearch Serverless 側の設定
大きく3つの設定をしていきます.
ネットワークポリシーの設定
ダッシュボードアクセスのネットワーク経路的にパブリックアクセスするか,VPC でアクセスするかを選択できます.この記事ではパブリックアクセスをしたいため,ネットワークポリシーでダッシュボードアクセスはパブリックを指定しておきます.
SAML 認証設定
次に SAML 認証設定ですが,SAML プロバイダーを作成からプロバイダー名を入力し,ダウンロードしておいた XML ファイルをインポートして終了です.
データアクセスポリシーの設定
最後にデータアクセスポリシーで SAML 認証するユーザーを追加します.以下のようなポリシーを追加しました.
[ { "Rules": [ { "Resource": [ "collection/hoge" ], "Permission": [ "aoss:CreateCollectionItems", "aoss:DeleteCollectionItems", "aoss:UpdateCollectionItems", "aoss:DescribeCollectionItems" ], "ResourceType": "collection" }, { "Resource": [ "index/hoge/*" ], "Permission": [ "aoss:CreateIndex", "aoss:DeleteIndex", "aoss:UpdateIndex", "aoss:DescribeIndex", "aoss:ReadDocument", "aoss:WriteDocument" ], "ResourceType": "index" } ], "Principal": [ "saml/1234567891011/azuread/user/[ユーザープリンシパル名]" ] } ]
ダッシュボードへアクセスしてみる
OpenSearch Serverless で生成されたダッシュボード URL にアクセスします.すると,OpenSearch のダッシュボード認証選択画面がでてくるので作成した SAML プロバイダー名を選択します.次に Azure AD の認証を突破するのですが,ここで設定で問題がなければダッシュボードに入れます.これで GUI でインデックスのデータ登録や変更,検索などなどができるようになりました.
まとめ
OpenSearch Serverless ダッシュボードへのアクセスを Azure AD の SAML で行うようにしてみました.