Amazon Web Services ブログ

AWS IAM Identity Center との SAML 統合による Amazon OpenSearch Service のロールベースアクセス制御

本記事は 2023 年 3 月 14 日 に公開された「Role-based access control in Amazon OpenSearch Service via SAML integration with AWS IAM Identity Center」を翻訳したものです。

Amazon OpenSearch Service は、AWS クラウドで OpenSearch クラスターを大規模にセキュアにデプロイおよび運用することを簡単にするマネージドサービスです。AWS IAM Identity Center (AWS Single Sign-On の後継) は、ワークフォース ID を安全に作成または接続し、AWS アカウントとアプリケーション全体でアクセスを一元管理するのに役立ちます。強力な最小権限のセキュリティ体制を構築するために、お客様はユーザーロールによるダッシュボード権限を管理するきめ細かなアクセス制御も求めていました。この記事では、IAM Identity Center から OpenSearch Service へのネイティブ SAML 統合を実装し、IAM Identity Center のグループ属性を使用して OpenSearch Dashboards でロールベースアクセス制御を設定する手順を段階的に説明します。この記事の手順に従うことで、IAM Identity Center で設定されたグループに基づいて OpenSearch Service の認証と認可の両方を実現できます。

ソリューションの概要

IAM Identity Center のユーザーとグループを OpenSearch Service のセキュリティロールにマッピングする方法を確認しましょう。OpenSearch Service のバックエンドロールは、外部 ID またはワークグループの属性を事前定義された OpenSearch Service セキュリティロールにマッピングするために使用されます。

次の図はソリューションアーキテクチャを示しています。2 つのグループを作成し、各グループにユーザーを割り当て、IAM Identity Center で属性マッピングを編集します。IAM Identity Center を ID プロバイダー (IdP) と統合している場合は、このテストに IdP にマッピングされた既存のユーザーとグループを使用できます。このソリューションでは、管理者用の all_access と、OpenSearch Service アラートの管理のみが許可された開発者用の alerting_full_access の 2 つのロールを使用します。OpenSearch Dashboards でグループ ID によるバックエンドロールマッピングを設定できます。次の図に基づいて、ロール all_access を Admin グループに、alerting_full_access を Developer グループにマッピングできます。ユーザー janedoe は Admin グループに、ユーザー johnstiles は Developer グループに所属しています。

その後、各ユーザーとしてログインし、異なるダッシュボードビューを確認してアクセス制御を検証します。

それでは始めましょう!

前提条件

以下の前提条件を完了してください:

  1. AWS アカウントを持っていること。
  2. Amazon OpenSearch Service ドメインを持っていること。
  3. OpenSearch Service ドメインと同じリージョンで IAM Identity Center を有効にしていること。
  4. IAM Identity Center でテストユーザーを用意していること (ユーザーの作成については、ユーザーの追加を参照してください)。

Amazon OpenSearch Service で SAML を有効にして SAML パラメータをコピーする

OpenSearch Service で SAML を設定するには、以下の手順を完了します:

  1. OpenSearch Service コンソールで、ナビゲーションペインの Domains を選択します。
  2. ドメインを選択します。
  3. Security configuration タブで、Fine-grained access control が有効になっていることを確認します。

  4. Actions メニューから Edit security configuration を選択します。

  5. Enable SAML authentication を選択します。

新しい OpenSearch ドメインを作成する場合は、ドメイン作成時に SAML を設定することもできます。詳細については、OpenSearch Dashboards の SAML 認証を参照してください。

  1. Service provider entity IDIdP-Initiated SSO URL の値をコピーします。

IAM Identity Center で SAML アプリケーションを作成する

IAM Identity Center で SAML アプリケーションを作成するには、以下の手順を完了します:

  1. IAM Identity Center コンソールで、ナビゲーションペインの Applications を選択します。
  2. Add application を選択します。

  3. Add customer SAML 2.0 application を選択し、Next を選択します。

  4. Display name にアプリケーション名を入力します。
  5. IAM Identity Center metadata で、Download を選択して SAML メタデータファイルをダウンロードします。

  6. Application metadata で、Manually type your metadata values を選択します。
  7. Application ACS URL に、先ほどコピーした IdP-initiated URL を入力します。
  8. Application SAML audience に、先ほどコピーしたサービスプロバイダーエンティティ ID を入力します。
  9. Submit を選択します。

  10. Actions メニューから Edit attribute mappings を選択します。

  11. 属性を作成し、以下の値をマッピングします:
    1. Subject を ${user:email} にマッピングし、形式は emailAddress です。
    2. Role を ${user:groups} にマッピングし、形式は unspecified です。
  12. Save changes を選択します。

  13. IAM Identity Center コンソールで、ナビゲーションペインの Groups を選択します。
  14. DeveloperAdmin の 2 つのグループを作成します。そして、作成した SAML アプリケーションに 2 つのグループを割り当てます。

  15. ユーザー janedoeAdmin グループに割り当てます。

  16. ユーザー johnstilesDeveloper グループに割り当てます。

  17. Admin グループを開き、グループ ID をコピーします。

SAML 設定を完了し、SAML プライマリバックエンドロールをマッピングする

SAML 設定を完了し、SAML プライマリバックエンドロールをマッピングするには、以下の手順を完了します:

  1. OpenSearch Service コンソールで、ナビゲーションペインの Domains を選択します。
  2. ドメインを開き、Edit security configuration を選択します。
  3. SAML authentication for OpenSearch Dashboards/Kibana で、Import IdP metadataImport from XML file を選択します。
  4. IAM Identity Center メタデータファイルからダウンロードした IdP メタデータをアップロードします。

IdP エンティティ ID が自動的に入力されます。

  1. SAML master backend role に、先ほどコピーした Admin グループのグループ ID を入力します。
  2. Roles key に、SAML アサーション用の Role を入力します。

これは、IAM Identity Center で SAML 属性として Role を ${user:groups} に定義してマッピングしたためです。

  1. Save changes を選択します。

Developer グループのバックエンドロールマッピングを設定する

IAM Identity Center と OpenSearch Service の統合が完了し、Admin グループを OpenSearch Service のプライマリロール (all_access) としてマッピングしました。次に、Admin として OpenSearch Dashboards にログインし、Developer グループのマッピングを設定します。

OpenSearch Dashboards にログインするには 2 つの方法があります:

  • OpenSearch Dashboards URL – OpenSearch Service コンソールでドメインに移動し、General Information の Dashboards URL を選択します。(例: https://opensearch-domain-name-random-keys.us-west-2.es.amazonaws.com/_dashboards)
  • AWS アクセスポータル URL – IAM Identity Center コンソールで、ナビゲーションペインの Dashboard を選択し、Settings summary のアクセスポータル URL を選択します。(例: https://d-1234567abc.awsapps.com/start)

以下の手順を完了します:

  1. Admin グループのユーザー (janedoe) としてログインします。

  2. OpenSearch Service アプリケーションのタイルを選択して、OpenSearch Dashboards にリダイレクトされます。

  3. メニューアイコンを選択し、SecurityRoles を選択します。

  4. alerting_full_access ロールを選択し、Mapped users タブで Manage mapping を選択します。

  5. Backend roles に、Developer のグループ ID を入力します。
  6. Map を選択して変更を適用します。

これで、Developer グループを OpenSearch Service の alerting_full_access ロールに正常にマッピングできました。

権限を確認する

権限を確認するには、以下の手順を完了します:

  1. OpenSearch Service の Admin アカウントからログアウトし、Developer ユーザーとしてログインします。
  2. OpenSearch Service アプリケーションのタイルを選択して、OpenSearch Dashboards にリダイレクトされます。

ドロップダウンメニューにはアラート関連の機能のみが表示されていることがわかります。この Developer ユーザーは、Security などの Admin 機能をすべて見ることはできません。

クリーンアップ

ソリューションをテストした後、将来の課金を避けるために作成したすべてのリソースを削除することを忘れないでください:

  1. Amazon OpenSearch Service ドメインを削除します。
  2. IAM Identity Center の SAML アプリケーション、ユーザー、グループを削除します。

まとめ

この記事では、SAML 属性を使用して Amazon OpenSearch Service のロールを IAM Identity Center のグループにマッピングし、OpenSearch Dashboards へのアクセスに対するロールベースアクセス制御を実現するソリューションについて説明しました。IAM Identity Center ユーザーを OpenSearch Dashboards に接続し、グループ属性に基づいて事前定義された OpenSearch Service セキュリティロールを IAM Identity Center グループにマッピングしました。これにより、同じワークグループに属する新しいユーザーが OpenSearch Dashboards にログインする際に、マッピングを更新することなく権限を管理しやすくなります。同じ手順に従って、チームの機能やコンプライアンス要件に基づいてワークグループにきめ細かなアクセスを提供できます。


著者について

Scott ChangScott Chang は、サンフランシスコを拠点とする AWS のソリューションアーキテクトです。ネットワーキングで 14 年以上の実務経験があり、セキュリティとサイト信頼性エンジニアリングにも精通しています。西部地域の主要な戦略的顧客の 1 社と協力して、高度にスケーラブルで革新的かつセキュアなクラウドソリューションを設計しています。

Muthu PitchaimaniMuthu Pitchaimani は、Amazon OpenSearch Service のサーチスペシャリストです。大規模な検索アプリケーションとソリューションを構築しています。Muthu はネットワーキングとセキュリティのトピックに興味があり、テキサス州オースティンを拠点としています。


この記事は Kiro が翻訳を担当し、Solutions Architect の 榎本 貴之 がレビューしました。