Amazon OpenSearch Serverless 向けの アイデンティティとアクセス管理 - Amazon OpenSearch サービス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon OpenSearch Serverless 向けの アイデンティティとアクセス管理

AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全に制御するために役立つ AWS のサービスです。IAM 管理者は、どのユーザーを認証 (サインイン受け入れ) し、また OpenSearch Serverless リソースの使用を承認する (アクセス許可を付与する) かを制御します。IAM は、追加費用なしで使用できる AWS のサービスです。

OpenSearch Serverless でのアイデンティティベースのポリシー

アイデンティティベースポリシーをサポートする

あり

アイデンティティベースポリシーは、IAM ユーザー、ユーザーグループ、ロールなど、アイデンティティにアタッチできる JSON 権限ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件を制御します。アイデンティティベースのポリシーを作成する方法については、『IAM ユーザーガイド』の「IAM ポリシーの作成」を参照してください。

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。プリンシパルは、それがアタッチされているユーザーまたはロールに適用されるため、アイデンティティベースのポリシーでは指定できません。JSON ポリシーで使用できるすべての要素については、「IAM ユーザーガイド」の「IAM JSON ポリシーの要素のリファレンス」を参照してください。

OpenSearch Serverless での ID ベースのポリシー例

OpenSearch Serverless での ID ベースのポリシー例については、「OpenSearch Serverless での ID ベースのポリシー例」を参照してください。

OpenSearch Serverless でのポリシーアクション

ポリシーアクションに対するサポート

はい

JSON ポリシーのAction要素には、ポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。ポリシーアクションの名前は通常、関連する AWS API オペレーションと同じです。一致する API オペレーションのない権限のみのアクションなど、いくつかの例外があります。また、ポリシーに複数アクションが必要なオペレーションもあります。これらの追加アクションは、依存アクションと呼ばれます。

このアクションは、関連付けられたオペレーションを実行するための権限を付与するポリシーで使用されます。

OpenSearch Serverless のポリシーアクションでは、アクションの前に次のプレフィックスを使用します。

aoss

単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。

"Action": [ "aoss:action1", "aoss:action2" ]

ワイルドカード文字 (*) を使用すると、複数のアクションを指定することができます。例えば、Describe という単語で始まるすべてのアクションを指定するには、次のアクションを含めます。

"Action": "aoss:List*"

OpenSearch Serverless での ID ベースのポリシー例については、「 OpenSearch Serverless での ID ベースのポリシー例」を参照してください。

OpenSearch Serverless のポリシーリソース

ポリシーリソースに対するサポート

あり

管理者は AWS JSON ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどんなリソースにどんな条件アクションを実行できるかということです。

JSON ポリシーの Resource 要素は、アクションが適用される 1 つ以上のオブジェクトを指定します。ステートメントには、Resource または NotResource 要素を含める必要があります。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。これは、リソースレベルの権限と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。

オペレーションのリスト化など、リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。

"Resource": "*"

Amazon OpenSearch Serverless のポリシー条件キー

サービス固有のポリシー条件キーのサポート

はい

管理者は AWS JSON ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどんなリソースにどんな条件アクションを実行できるかということです。

Condition 要素 (または Condition ブロック) を使用すると、ステートメントが有効になる条件を指定できます。Condition 要素はオプションです。equal や less than などの条件演算子を使用して条件式を作成することによって、ポリシーの条件とリクエスト内の値を一致させることができます。

1 つのステートメントに複数の Condition 要素を指定するか、1 つの Condition 要素に複数のキーを指定すると、AWS は AND 論理演算子を使用してそれらを評価します。単一の条件キーに複数の値を指定すると、AWS は OR 論理演算子を使用して条件を評価します。ステートメントの権限が付与される前にすべての条件が満たされる必要があります。

条件を指定する際にプレースホルダー変数も使用できます。例えば IAM ユーザーに、IAM ユーザー名がタグ付けされている場合のみリソースにアクセスできる権限を付与することができます。詳細については、「IAM ユーザーガイド」の「IAM ポリシー要素: 変数およびタグ」を参照してください。

AWS はグローバル条件キーとサービス固有の条件キーをサポートしています。すべての AWS グローバル条件キーを確認するには、「IAM ユーザーガイド」の「AWS グローバル条件コンテキストキー」を参照してください。

OpenSearch Serverless では、属性ベースのアクセス制御 (ABAC) に加えて、以下の条件キーをサポートしています。

  • aoss:collection

  • aoss:CollectionId

  • aoss:index

これらの条件キーは、アクセスポリシーおよびセキュリティポリシーに許可を与える場合でも使用できます。例:

[ { "Effect":"Allow", "Action":[ "aoss:CreateAccessPolicy", "aoss:CreateSecurityPolicy" ], "Resource":"*", "Condition":{ "StringLike":{ "aoss:collection":"log" } } } ]

この例の条件は、コレクション名またはパターンに一致するルールを含むポリシーに適用されます。コンディションは、以下の動作を行います。

  • StringEquals – リソース文字列として「log」が正確に配置された (つまり collection/log) ルールを使用する、ポリシーに適用されます。

  • StringLike –「log」という文字列が含まれたリソース文字列で構成されたルール (例: collection/log に加え collection/logs-application または collection/applogs123) を使用する、ポリシーに対し適用されます。

注記

コレクション条件キーは、インデックスレベルでは適用されません。例として上記のポリシーでは、リソース文字列 index/logs-application/* を含むアクセスポリシーまたはセキュリティポリシーに対して、この条件は適用されません。

OpenSearch Serverless の条件キーのリストは、「サービス認証リファレンス」の「Condition keys for Amazon OpenSearch Serverless」(Amazon OpenSearch Serverless での条件キー) でご確認ください。条件キーの使用が可能なアクションおよびリソースついては、「Actions defined by Amazon OpenSearch Serverless」(Amazon OpenSearch Serverless で定義されるアクション) を参照してください。

ABAC と OpenSearch Serverless

ABAC のサポート (ポリシー内のタグ)

はい

属性ベースのアクセス制御 (ABAC) は、属性に基づいてアクセス許可を定義するアクセス許可戦略です。AWS では、これらの属性はタグと呼ばれます。タグは、IAM エンティティ (ユーザーまたはロール)、および多数の AWS リソースにアタッチできます。エンティティとリソースのタグ付けは、ABAC の最初の手順です。その後、プリンシパルのタグがアクセスしようとしているリソースのタグと一致した場合に操作を許可するように ABAC ポリシーを設計します。

ABAC は、急成長する環境やポリシー管理が煩雑になる状況で役立ちます。

タグに基づいてアクセスを管理するには、aws:ResourceTag/key-nameaws:RequestTag/key-name、または aws:TagKeys の条件キーを使用して、ポリシーの Condition 要素でタグ情報を提供します。

サービスがすべてのリソースタイプに対して 3 つの条件キーのすべてをサポートする場合、そのサービスでのサポート状況の値は「はい」になります。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「部分的」になります。

ABAC の詳細については、『IAM ユーザーガイド』の「ABAC とは?」を参照してください。ABAC をセットアップするステップを説明するチュートリアルについては、『IAM ユーザーガイド』の「属性に基づくアクセスコントロール (ABAC) を使用する」を参照してください。

OpenSearch Serverless リソースでのタグ付けの詳細については、「Amazon OpenSearch Serverless コレクション」を参照してください。

OpenSearch Serverless での一時的な認証情報の使用

一時的な認証情報のサポート

あり

AWS のサービス には、一時的な認証情報を使用してサインインしても機能しないものがあります。一時的な認証情報で機能する AWS のサービスなどの詳細については、「IAM ユーザーガイド」の「IAM と連携する AWS のサービス」を参照してください。

ユーザー名とパスワード以外の方法で AWS Management Console にサインインする場合は、一時的な認証情報を使用していることになります。例えば、会社の Single Sign-On (SSO) リンクを使用して AWS にアクセスすると、そのプロセスは自動的に一時認証情報を作成します。また、ユーザーとしてコンソールにサインインしてからロールを切り替える場合も、一時的な認証情報が自動的に作成されます。ロールの切り替えに関する詳細については、『IAM ユーザーガイド』の「ロールへの切り替え (コンソール)」を参照してください。

一時認証情報は、AWS CLI または AWS API を使用して手動で作成できます。作成後、一時的な認証情報を使用して AWS にアクセスできるようになります。AWS は、長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成することをお勧めします。詳細については、「IAM の一時的なセキュリティ認証情報」を参照してください。

Amazon OpenSearch Serverless でのサービスにリンクされたロール

サービスリンクロールのサポート

はい

サービスリンクロールは、AWS のサービス にリンクされているサービスロールの一種です。サービスがロールを引き受け、ユーザーに代わってアクションを実行できるようになります。サービスリンクロールは、AWS アカウント に表示され、サービスによって所有されます。IAM 管理者は、サービスリンクロールの権限を表示できますが、編集することはできません。

OpenSearch Serverless でのサービスにリンクされたロールの作成または管理の詳細については、「サービスにリンクされたロールを使用した OpenSearch サーバーレスコレクションの作成」を参照してください。

OpenSearch Serverless での ID ベースのポリシー例

デフォルトでは、OpenSearch Serverless リソースを作成または変更する許可は、ユーザーおよびロールに付与されていません。また、AWS Management Console、AWS Command Line Interface (AWS CLI)、または AWS API を使用してタスクを実行することもできません。IAM 管理者は、リソースで必要なアクションを実行するための権限をユーザーに付与する IAM ポリシーを作成できます。その後、管理者がロールに IAM ポリシーを追加すると、ユーザーはロールを引き受けることができます。

これらサンプルの JSON ポリシードキュメントを使用して、IAM アイデンティティベースのポリシーを作成する方法については、『IAM ユーザーガイド』の「IAM ポリシーの作成」を参照してください。

Amazon OpenSearch Serverless が定義するアクションとリソースタイプ (リソースタイプごとの ARN の形式など) の詳細については、「サービス認証リファレンス」の「Actions, resources, and condition keys for Amazon OpenSearch Serverless」(Amazon OpenSearch Serverless でのアクション、リソース、および条件キー) を参照してください。

ポリシーのベストプラクティス

アイデンティティベースポリシーは非常に強力です。このポリシーは、アカウント内の OpenSearch Serverless リソースを作成、アクセス、または削除することが可能なユーザーを決定します。これらのアクションを実行すると、AWS アカウント に料金が発生する可能性があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:

アイデンティティベースのポリシーは、アカウント内で誰かが OpenSearch Serverless リソースの作成、アクセス、または削除を実行できるどうかを決定します。これらのアクションを実行すると、AWS アカウント に料金が発生する可能性があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:

  • AWS マネージドポリシーを使用して開始し、最小特権の権限に移行する – ユーザーとワークロードへの権限の付与を開始するには、多くの一般的なユースケースのために権限を付与する AWS マネージドポリシーを使用します。これらは AWS アカウントで使用できます。ユースケースに応じた AWS カスタマーマネージドポリシーを定義することで、権限をさらに減らすことをお勧めします。詳細については、『IAM ユーザーガイド』の「AWS マネージドポリシー」または「AWS ジョブ機能の管理ポリシー」を参照してください。

  • 最小特権を適用する – IAM ポリシーで権限を設定するときは、タスクの実行に必要な権限のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権権限とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、『IAM ユーザーガイド』の「IAM でのポリシーと権限」を参照してください。

  • IAM ポリシーで条件を使用してアクセスをさらに制限する - ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。例えば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定できます。また、AWS CloudFormation などの特定の AWS のサービス を介して使用する場合、条件を使用してサービスアクションへのアクセスを許可することもできます。詳細については、『IAM ユーザーガイド』の [IAM JSON policy elements: Condition] (IAM JSON ポリシー要素:条件) を参照してください。

  • IAM Access Analyzer を使用して IAM ポリシーを検証し、安全で機能的な権限を確保する - IAM Access Analyzer は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM アクセスアナライザーは 100 を超えるポリシーチェックと実用的な推奨事項を提供し、安全で機能的なポリシーの作成をサポートします。詳細については、『IAM ユーザーガイド』の「IAM Access Analyzer ポリシーの検証」を参照してください。

  • 多要素認証 (MFA) を要求する - AWS アカウント内の IAM ユーザーまたはルートユーザーを要求するシナリオがある場合は、セキュリティを強化するために MFA をオンにします。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、『IAM ユーザーガイド』の「MFA 保護 API アクセスの設定」を参照してください。

IAM でのベストプラクティスの詳細については、『IAM ユーザーガイド』の「IAM でのセキュリティのベストプラクティス」を参照してください。

コンソールでの OpenSearch Serverless の使用

OpenSearch Service コンソールで OpenSearch Serverless にアクセスするには、最小限の許可セットが必要です。このセットでは、AWS アカウントにある OpenSearch Serverless リソースについて、一覧と詳細の表示を許可する必要があります。必要最低限の許可よりも制限が厳しいアイデンティティベースポリシーを作成すると、そのポリシーを持つエンティティ (IAM ロールなど) に対してコンソールが意図したとおりに機能しなくなります。

AWS CLI または AWS API のみを呼び出すユーザーには、最小限のコンソール許可を付与する必要はありません。代わりに、実行しようとしている API オペレーションに一致するアクションのみへのアクセスが許可されます。

以下のポリシーでは、ユーザーが OpenSearch Service コンソール内で OpenSearch Serverless にアクセスすることを許可しています。

{ "Version": "2012-10-17", "Statement": [ { "Resource": "*", "Effect": "Allow", "Action": [ "aoss:ListCollections", "aoss:BatchGetCollection", "aoss:ListAccessPolicies", "aoss:ListSecurityConfigs", "aoss:ListSecurityPolicies", "aoss:ListTagsForResource", "aoss:ListVpcEndpoints", "aoss:GetAccessPolicy", "aoss:GetAccountSettings", "aoss:GetSecurityConfig", "aoss:GetSecurityPolicy" ] } ] }

OpenSearch Serverless コレクションの管理

このポリシーは、ユーザーに対し Amazon OpenSearch Serverless コレクションの処理および管理を許可する、「コレクション管理者」ポリシーの一例です。これによりユーザーは、コレクションを作成、表示、削除できます。

{ "Version": "2012-10-17", "Statement": [ { "Resource": "arn:aws:aoss:region:123456789012:collection/*", "Action": [ "aoss:CreateCollection", "aoss:DeleteCollection", "aoss:UpdateCollection" ], "Effect": "Allow" }, { "Resource": "*", "Action": [ "aoss:BatchGetCollection", "aoss:ListCollections", "aoss:CreateAccessPolicy", "aoss:CreateSecurityPolicy" ], "Effect": "Allow" } ] }

OpenSearch Serverless コレクションの表示

このポリシー例では、ユーザーに対し、自身のアカウント内のすべての Amazon OpenSearch Serverless コレクションについて、その詳細を表示することを許可します。このユーザーには、コレクション自体や関連するセキュリティポリシーの変更は許可されません。

{ "Version": "2012-10-17", "Statement": [ { "Resource": "*", "Action": [ "aoss:ListAccessPolicies", "aoss:ListCollections", "aoss:ListSecurityPolicies", "aoss:ListTagsForResource", "aoss:BatchGetCollection" ], "Effect": "Allow" } ] }

OpenSearch API オペレーションの使用

データプレーン API オペレーションは、OpenSearch Serverless でサービスからリアルタイムの値を引き出すために使用する関数で構成されています。コントロールプレーン API オペレーションは、環境のセットアップに使用する関数で構成されています。

Amazon OpenSearch Serverless データプレーン API と OpenSearch Dashboards にブラウザからアクセスするときは、コレクションリソース用に 2 つの IAM アクセス権限を追加する必要があります。これらのアクセス権限は、aoss:APIAccessAllaoss:DashboardsAccessAll です。

注記

2023 年 5 月 10 日以降、OpenSearch Serverless では、コレクションリソースにこれら 2 つの新しい IAM 許可が必要になります。aoss:APIAccessAll のアクセス許可はデータプレーンアクセスを許可し、aoss:DashboardsAccessAll アクセス許可はブラウザから OpenSearch Dashboards を許可します。2 つの新しい IAM アクセス権限を追加しなかった場合、403 エラーが表示されます。

こちらのポリシー例では、アカウント内の指定されたコレクションの、データプレーン API へのアクセスと、アカウント内のすべてのコレクションの、OpenSearch Dashboards へのアクセスをユーザーに許可しています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "aoss:APIAccessAll", "Resource": "arn:aws:aoss:region:account-id:collection/collection-id" }, { "Effect": "Allow", "Action": "aoss:DashboardsAccessAll", "Resource": "arn:aws:aoss:region:account-id:dashboards/default" } ] }

aoss:APIAccessAll と aoss:DashboardsAccessAll はどちらも、コレクションリソースに完全な IAM アクセス権限を付与します。Dashboards アクセス権限は、OpenSearch Dashboards アクセスも提供します。各アクセス権限は独立して機能するので、aoss:APIAccessAll での明示的な拒否によって開発ツールなどのリソースへの aoss:DashboardsAccessAll アクセスがブロックされることはありません。aoss:DashboardsAccessAll での拒否についても同じことが言えます。

OpenSearch Serverless は、データプレーン呼び出し用のプリンシパルの IAM ポリシーにおける条件設定で送信元 IP アドレスのみをサポートします。

"Condition": { "IpAddress": { "aws:SourceIp": "52.95.4.14" } }