

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

# OpenSearch UI アプリケーションへのネットワークアクセスの制限
<a name="application-network-access"></a>

デフォルトでは、OpenSearch UI アプリケーションは、任意のネットワークロケーションからのリクエストを受け入れるパブリックエンドポイントを公開します。ユーザーは引き続き認証 (IAM または AWS IAM アイデンティティセンター) と認可の対象となりますが、パブリックインターネット上の誰でもアプリケーションとその APIs *にアクセスできます*。

OpenSearch UI へのアクセスが承認されたネットワークからのみ行われるように要求する場合は、既に使用している AWS Identity and Access Management (IAM) ポリシーツールを使用してこれを適用できます。例えば、アクセスがインターフェイス VPC エンドポイント (AWS PrivateLink) を介してのみ、または企業 IP アドレスの範囲からのみ到着するように要求できます。OpenSearch UI は標準の IAM リクエスト条件キーを使用してアクセスを評価するため、既に他の場所で使用しているのと同じポリシー言語と条件キー (`aws:SourceVpce`、`aws:SourceVpc`、`aws:SourceIp`) を使用します AWS。サービス固有のポリシー形式を学習する必要はありません。

最もターゲットを絞ったレベルから最も広範なレベルまで、3 つのレベルでアクセスを制限できます。
+ **アイデンティティベースのポリシー**は、特定のプリンシパル (ユーザーまたはロール) を制限します。
+ **VPC エンドポイントポリシー**は、ユーザーが特定のエンドポイント経由でアクセスできるアプリケーションを制限します。
+ **リソースコントロールポリシー (RCP)** は、組織内のすべてのアカウントでアクセスを統一し、認証*前に*ネットワーク外のユーザーをブロックできます。

このトピックでは、OpenSearch UI がネットワークアクセスを評価し、最も一般的なタスクを実行し、承認されたネットワーク外のユーザーのログインページをブロックする方法について説明します。3 つのコントロールタイプそれぞれのポリシーの例と AWS CLI コマンドについては、「」を参照してください[OpenSearch UI アプリケーションのネットワークアクセスコントロール設定リファレンス](application-network-access-reference.md)。プライベート接続自体の作成については、「」を参照してください[VPC エンドポイントからの OpenSearch UI へのアクセスの管理](application-access-ui-from-vpc-endpoint.md)。

**Topics**
+ [OpenSearch UI がネットワークアクセスを評価する方法](#application-network-access-how)
+ [前提条件](#application-network-access-prereqs)
+ [承認されたネットワーク外からのログインページアクセスのブロック](#application-network-access-block-login-page)
+ [考慮事項](#application-network-access-considerations)
+ [OpenSearch UI アプリケーションのネットワークアクセスコントロール設定リファレンス](application-network-access-reference.md)

## OpenSearch UI がネットワークアクセスを評価する方法
<a name="application-network-access-how"></a>

OpenSearch UI はアクセスを 2 つのステージで評価し、各ステージはアプリケーションリソースに対して個別の IAM アクションを承認します。
+ **`opensearch:ViewLoginPage`**。 ユーザーがサインイン*する前に*、ブラウザがアプリケーションログインページを最初にリクエストしたときに承認されます。ユーザーには AWS 認証情報がまだないため、このリクエストは匿名です。OpenSearch UI は認証前にこのアクションを評価するため、ネットワーク外のリクエストに対して拒否するリソースコントロールポリシーにより、ネットワーク外のユーザーがログインページにアクセスできなくなります。この拒否は、IAM ユーザーと AWS IAM アイデンティティセンター ユーザーの両方に均一に適用されます。
+ **`opensearch:ApplicationAccessAll`**。 ユーザーがサインイン*した後*、アプリケーションとその APIs。このアクションは、アイデンティティベースのポリシー、VPC エンドポイントポリシー、または RCP を使用して制限できます。

OpenSearch UI は、アプリケーションリソース ARN に対する両方のアクションを承認します。

```
arn:aws:opensearch:{{region}}:{{account-id}}:application/{{application-id}}
```

リクエストが到着すると、OpenSearch UI は接続の信頼されたネットワークメタデータから次の IAM リクエスト条件キーを入力するため、ポリシー条件で参照できます。
+ `aws:SourceVpce`。 リクエストが到着したインターフェイス VPC エンドポイントの ID。
+ `aws:SourceVpc`。 リクエストが到着した VPC の ID。
+ `aws:SourceIp`。 VPC エンドポイント経由で到着しないリクエストのパブリックソース IP アドレス。

## 前提条件
<a name="application-network-access-prereqs"></a>
+ 特定のプリンシパルを制限するには、アプリケーションにアクセスするユーザーまたはロールの IAM ポリシーを管理するアクセス許可が必要です。エンドポイントを制限するには、エンドポイントに到達するために使用する VPC エンドポイントのポリシーを管理するアクセス許可が必要です。
+ リソースコントロールポリシーを使用して組織全体へのアクセスを強制するには、アカウントがすべての機能が有効になっている AWS 組織のメンバーであり、リソースコントロールポリシーを管理するアクセス許可を持っている必要があります。詳細については、[RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)*AWS *」を参照してください。
**注記**  
リソースコントロールポリシーは、組織の管理アカウントのリソースには影響しません。RCP を使用して OpenSearch UI アプリケーションへのネットワークアクセスを制限するには、アプリケーションがメンバーアカウントにある必要があります。
+ VPC エンドポイントへのアクセスを制限するには、まず OpenSearch UI のインターフェイス VPC エンドポイントを作成します。詳細については、「[VPC エンドポイントからの OpenSearch UI へのアクセスの管理](application-access-ui-from-vpc-endpoint.md)」を参照してください。
+ このトピックの AWS Command Line Interface (AWS CLI) 例を実行するには、 をインストールして設定します AWS CLI。詳細については、*AWS Command Line Interface ユーザーガイド*の[AWS Command Line Interfaceの開始](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)を参照してください。

## 承認されたネットワーク外からのログインページアクセスのブロック
<a name="application-network-access-block-login-page"></a>

次の手順では、承認されたネットワーク外のユーザーのログインページをブロックします。OpenSearch UI はユーザーがサインイン`opensearch:ViewLoginPage`する前に、リクエストがまだ匿名であるときに認可するため、IAM または AWS IAM アイデンティティセンター 認証を使用するアプリケーションに適用されます。

**承認されたネットワーク外からのログインページアクセスをブロックするには**

1. アプリケーションが組織のメンバーである AWS アカウントにあり、組織でリソースコントロールポリシーが有効になっていることを確認します。詳細については、*AWS 「 Organizations ユーザーガイド*[」の「ポリシータイプの有効化](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_enable-disable.html)」を参照してください。

1. ユーザーが接続する承認済みのネットワークパスを決定し、一致する条件キーを選択します。`aws:SourceVpce` インターフェイス VPC エンドポイント、`aws:SourceVpc`VPC、または企業ネットワークの出力範囲などのパブリック IP アドレスの範囲`aws:SourceIp`に を使用します。

1. リクエストが承認されたネットワークと という名前のローカルファイルと一致し`opensearch:ApplicationAccessAll`ない限り、 `opensearch:ViewLoginPage`と を拒否するリソースコントロールポリシーを保存します`policy.json`。次の の例では、単一のインターフェイス VPC エンドポイントを承認します。その他の条件キーについては、「」を参照してください[OpenSearch UI アプリケーションのネットワークアクセスコントロール設定リファレンス](application-network-access-reference.md)。{{プレースホルダー値を}}独自の VPC エンドポイント ID に置き換えます。

   ```
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Sid": "DenyOpenSearchUIAccessOutsideVpce",
               "Effect": "Deny",
               "Principal": "*",
               "Action": [
                   "opensearch:ViewLoginPage",
                   "opensearch:ApplicationAccessAll"
               ],
               "Resource": "arn:aws:opensearch:*:*:application/*",
               "Condition": {
                   "StringNotEqualsIfExists": {
                       "aws:SourceVpce": "{{vpc-endpoint-id}}"
                   }
               }
           }
       ]
   }
   ```

1. リソースコントロールポリシーを作成します。組織の管理アカウントまたは委任管理者アカウントから次のコマンドを実行します。

   ```
   aws organizations create-policy \
     --name {{DenyOpenSearchUIOffNetwork}} \
     --description "{{Denies OpenSearch UI access from outside the approved network}}" \
     --type RESOURCE_CONTROL_POLICY \
     --content file://policy.json
   ```

   レスポンスには、 で始まるポリシー ID が含まれます`p-`。次のステップでは、この値を書き留めます。

1. ポリシーを組織ルート、組織単位、またはアプリケーションを含むアカウントにアタッチします。最初の変更の範囲を制限するには、1 つのアカウントにアタッチし、動作を確認した後にスコープを展開します。

   ```
   aws organizations attach-policy \
     --policy-id {{p-example12345}} \
     --target-id {{111122223333}}
   ```

1. ポリシーが有効になるまで最大 1 分待ちます。

1. 承認されたネットワーク外から、 でアプリケーションログインページをリクエストします`https://{{application-endpoint}}/_login/`。ログインページの代わりに`403 forbidden`レスポンスが表示されます。
**注記**  
`/_login/` パスをリクエストして、ポリシーがログインページを拒否することを確認します。パスなしでアプリケーション URL を開くと、ブラウザがログインページをリクエストする前にサインインにリダイレクトされる場合があります。この場合、サインイン後`opensearch:ApplicationAccessAll`、 はアクセスを拒否します。

1. 承認されたネットワーク内から、同じ URL をリクエストします。ログインページがレンダリングされ、正常にサインインできます。

**注記**  
 AWS IAM アイデンティティセンター 認証を使用するアプリケーションの場合、ユーザーがサインインするネットワークパスを制限します。OpenSearch UI は、すべてのアプリケーションの認証`opensearch:ViewLoginPage`前に評価されるため、ネットワーク外のユーザーがサインインできないようにします。有効なセッションを既に保持している IAM Identity Center ユーザーからのリクエストも制限するには、VPC エンドポイントを介してアプリケーションに到達させます。

## 考慮事項
<a name="application-network-access-considerations"></a>

ネットワークアクセスコントロールを設定するときは、次の点に注意してください。
+ **コントロールの選択**。アイデンティティベースのポリシーを使用して、特定のプリンシパルを制限し、VPC エンドポイントポリシーを使用してユーザーがエンドポイント経由でアクセスできるアプリケーションを制御し、リソースコントロールポリシーを使用して組織全体にアクセスを強制します。これらを組み合わせて、多層防御を行うことができます。
+ **認証前アクセスと認証済みアクセス**。RCP で`opensearch:ViewLoginPage`強制される のみが、サインインする前にネットワーク外のユーザーをブロックし、IAM と AWS IAM アイデンティティセンター ユーザーの両方に均一に適用されます。認証されたプリンシパルがアプリケーションにアクセスできる場所`opensearch:ApplicationAccessAll`を制限するためにのみ適用される条件。
+ **ポリシーの評価**。明示的な `Deny`は常に を上書きします`Allow`。リソースコントロールポリシーは、組織内のリソースに対して使用可能なアクセス許可の最大数を設定します。RCP `Deny`の明示的な をアイデンティティベースのポリシーで上書きすることはできません。広範囲に適用する前に、非本番稼働用アプリケーションに対してポリシーをテストします。
+ **モニタリング**。 AWS CloudTrail および IAM Access Analyzer を使用して、アクセスに対するネットワーク条件の影響を確認します。