Amazon OpensearchServiceでCognito認証からダッシュボードを見に行く

記事タイトルとURLをコピーする

はじめに

Amazon Opensearch Serviceを検証していたのですが、Cognitoでダッシュボードにアクセスする際に躓いたのでブログ化してみました。

初学者のご参考になれば幸いです。

手順

今回は、Cognitoでユーザー管理を行うため、以下のような順序で作成していきます。

  1. Cognito User Poolの作成
  2. Cognito Identity Poolの作成
  3. Opensearch Serviceでドメインの作成

Amazon Cognito User Pool作成

次にAmazon Cognitoのコンソールに遷移して、Create user poolを押下し、User Poolを作成します。 こちらの設定はあくまでテスト利用のものです。ご留意ください。

項目 設定値 備考
Provide types Cognito user pool
Cognito user pool sign-in options User name
Email
Password policy mode Cognito defaults
Multi-factor authentication No MFA
self-service account recovery 有効
self-registration 無効
Email provider Send email with Cognito
User pool name 任意 128文字以下
英数字及びスペース、特殊文字 (+ = , . @ -)が利用可能
App type Public client
App client name 任意

作成後、App integrationタブへ遷移し、Domainセクションで「Action」⇒ 「Create Cognito domain」を押下します。 (Create Custom domainでも可)

リージョンで一意になるようなドメインを設定し、作成します。

Amazon Cognito ID Poolの作成

項目 設定値 備考
Identity pool name 任意
Authentication providers Cognito 作成したUser PoolからIDとApp Client IDを設定

作成した直後に表示されるページでIAM Roleの設定を行います。 詳細を確認し、画面右下の「Allow」を押下してください。

Amazon OpensearchServiceでドメイン作成

設定値については以下としてみました。 項目に挙げたもの以外はデフォルトの値としています。

項目 設定値 備考
Domain Name 任意の文字列 以下三点を満たすように設定
・アカウントおよび AWS リージョン に固有
・先頭が小文字
・3~28 文字
・小文字の a~z、0~9 の数字、ハイフン (-) のみ含まれる
Custom endpoint 無効 有効にする場合、HTTPS化する必要があるため、ACMの設定が必要になることに注意
Deployment type Custom 最小構成で検証するためCustomとしています
Version 2.5 (latest)
Data nodes 1-AZ
Instance type t3.small.search
Number of nodes 1
Storage type EBS
EBS volume type gp3
EBS storage per node 10
Dedicated master nodes 無効
Network Public access
Fien-grained access control Enable
Master usr Set IAM ARN as master user
IAM ARN Cognito Identity Pool作成時に生成されたAuthロール
SAML authentication for OpenSearch Dashboards/Kibana 無効
Amazon Cognito authentication 有効 作成したUser PoolとIdentity Pool を選択
Access Policy Do not set domain level access policy

作成後、以下のようにアクセスポリシーを編集します。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:ap-northeast-1:{AccountId}:domain/{DomainName}/*"
    }
  ]
}

User Poolでの操作 (ユーザー作成/権限追加/Identity Poolの設定)

ユーザー作成

AWSマネジメントコンソールのCognito画面からUser Poolにてユーザー作成をします。 ユーザー名、メールアドレス、パスワードを設定します。

確認

これでOpensearchダッシュボードにアクセスできることを確認してみましょう。

画面キャプチャ赤枠にあるDashboards URLをクリックし、User Poolで作成したユーザーでログインしてください。

こちらで、手順としては以上となります。

今回の手順では、ユーザーすべてが同じ操作権限を持った人となってしまうといった事態が起こってしまいますので、ご注意ください。

今後、操作権限を分けることについてもブログ化していきたいと思います。

参考資料

Amazon OpenSearch Service ドメインの作成と管理 - Amazon OpenSearch Service

チュートリアル: IAM マスターユーザーと Amazon Cognito 認証を使用してドメインを設定する - Amazon OpenSearch Service

篠﨑 勇輔(書いた記事を見る)

クラウドインテグレーション部 SRE2課

入社4年目