はじめに
Amazon Opensearch Serviceを検証していたのですが、Cognitoでダッシュボードにアクセスする際に躓いたのでブログ化してみました。
初学者のご参考になれば幸いです。
手順
今回は、Cognitoでユーザー管理を行うため、以下のような順序で作成していきます。
- Cognito User Poolの作成
- Cognito Identity Poolの作成
- 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 |
|
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