

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

# Amazon OpenSearch Serverless でのネットワークアクセス
<a name="serverless-network"></a>

Amazon OpenSearch Serverless コレクションでは、ネットワーク設定によって、そのコレクションに対しインターネット経由でパブリックネットワークからのアクセスが可能か、プライベートでアクセスする必要があるかが決まります。

プライベートアクセスは、次のいずれかまたは両方に適用できます。
+ OpenSearch Serverless マネージド VPC エンドポイント
+ Amazon Bedrock AWS のサービス などでサポートされる

コレクションでは、*OpenSearch* のエンドポイントと、対応する *OpenSearch Dashboards* のエンドポイントで、個別のネットワークアクセス設定が行えます。

ネットワークアクセスは、さまざまなソースネットワークからのアクセスを、分離して許可するためのメカニズムです。例えば、コレクションの OpenSearch Dashboards エンドポイントはパブリックアクセスが可能で、OpenSearch API エンドポイントはパブリックアクセスが可能でない場合、パブリックネットワークから接続するユーザーは、Dashboards を経由しなければコレクションデータにアクセスできません。パブリックネットワークから直接 OpenSearch API を呼び出そうとしても、ブロックされます。ソースからリソースタイプへのこのような配列には、ネットワーク設定を使用できます。Amazon OpenSearch Serverless は、IPv4 と IPv6 の両方の接続をサポートしています。

**Topics**
+ [

## ネットワークポリシー
](#serverless-network-policies)
+ [

## 考慮事項
](#serverless-network-considerations)
+ [

## ネットワークポリシーの設定に必要なアクセス許可
](#serverless-network-permissions)
+ [

## ポリシーの優先順位
](#serverless-network-precedence)
+ [

## ネットワークポリシーの作成 (コンソール)
](#serverless-network-console)
+ [

## ネットワークポリシーの作成 (AWS CLI)
](#serverless-network-cli)
+ [

## ネットワークポリシーの表示
](#serverless-network-list)
+ [

## ネットワークポリシーの更新
](#serverless-network-update)
+ [

## ネットワークポリシーの削除
](#serverless-network-delete)

## ネットワークポリシー
<a name="serverless-network-policies"></a>

ネットワークポリシーでは、その中でルールを定義し、そのルールに一致するコレクションに対し、ネットワークアクセス設定を自動的に割り当てることにより、多数のコレクションを大規模に管理できます。

ネットワークポリシーでは、一連の*ルール*を指定します。これらのルールにより、コレクションのエンドポイントと OpenSearch Dashboards のエンドポイントへのアクセス許可を定義します。各ルールは、アクセスタイプ (パブリックまたはプライベート) とリソースタイプ (コレクション、および/または OpenSearch Dashboards のエンドポイント) で構成されます。リソースタイプ (`collection` および `dashboard`) ごとに、一連のルールを指定し、ポリシーを適用する対象となるコレクションを定義します。

このポリシー例では、最初のルールで、語句 `marketing*` で始まるすべてのコレクションについて、コレクションエンドポイントとダッシュボードエンドポイントの両方で、VPC エンドポイントアクセスを使用するように指定しています。また、Amazon Bedrock アクセスも指定します。

**注記**  
Amazon Bedrock AWS のサービス などの へのプライベートアクセスは、コレクションの OpenSearch エンドポイント*にのみ*適用され、OpenSearch Dashboards エンドポイントには適用されません。`ResourceType` が であっても`dashboard`、OpenSearch Dashboards へのアクセスを許可 AWS のサービス することはできません。

2 番目のルールでは、`finance` コレクションに対してパブリックアクセスを指定していますが、これには、コレクションエンドポイントのみが使用されます (ダッシュボードからのアクセスは許可されません)。

```
[
   {
      "Description":"Marketing access",
      "Rules":[
         {
            "ResourceType":"collection",
            "Resource":[
               "collection/marketing*"
            ]
         },
         {
            "ResourceType":"dashboard",
            "Resource":[
               "collection/marketing*"
            ]
         }
      ],
      "AllowFromPublic":false,
      "SourceVPCEs":[
         "vpce-050f79086ee71ac05"
      ],
      "SourceServices":[
         "bedrock.amazonaws.com"
      ],
   },
   {
      "Description":"Sales access",
      "Rules":[
         {
            "ResourceType":"collection",
            "Resource":[
               "collection/finance"
            ]
         }
      ],
      "AllowFromPublic":true
   }
]
```

このポリシーでは、OpenSearch Dashboards からのパブリックアクセスは、「finance」で始まるコレクションに対してのみ許可しています。OpenSearch API に直接アクセスする試みは、すべて失敗します。

```
[
  {
    "Description": "Dashboards access",
    "Rules": [
      {
        "ResourceType": "dashboard",
        "Resource": [
          "collection/finance*"
        ]
      }
    ],
    "AllowFromPublic": true
  }
]
```

ネットワークポリシーは、将来作成するコレクションだけでなく、既存のコレクションにも適用が可能です。コレクションを作成した後に、そのコレクション名と一致するルールを含むネットワークポリシーを作成できます。コレクションを作成する前に、必ずしもネットワークポリシーを用意しておく必要はありません。

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

コレクションのためにネットワークアクセスを設定する際は、以下の点を考慮してください。
+ コレクションのために VPC エンドポイントアクセスを設定する場合は、最初に、少なくとも 1 つの [OpenSearch Serverless マネージド VPC エンドポイント](serverless-vpc.md)を作成しておく必要があります。
+ へのプライベートアクセスは、OpenSearch Dashboards エンドポイントではなく、コレクションの OpenSearch エンドポイント AWS のサービス にのみ適用されます。`ResourceType` が であっても`dashboard`、OpenSearch Dashboards へのアクセスを許可 AWS のサービス することはできません。
+ パブリックネットワークからアクセスできるコレクションに対しては、OpenSearch Serverless マネージド VPC エンドポイントとすべての AWS のサービスからもアクセスできます。
+ 単一のコレクションに対して、複数のネットワークポリシーを適用できます。詳細については、「[ポリシーの優先順位](#serverless-network-precedence)」を参照してください。

## ネットワークポリシーの設定に必要なアクセス許可
<a name="serverless-network-permissions"></a>

OpenSearch Serverless のネットワークアクセスでは、次の AWS Identity and Access Management (IAM) アクセス許可を使用します。IAM 条件を指定しすることで、特定のコレクションに関連付けられたネットワークポリシーのみをユーザーが使用するように制限できます。
+ `aoss:CreateSecurityPolicy` – ネットワークアクセスポリシーを作成します。
+ `aoss:ListSecurityPolicies` – 現在のアカウントにある、すべてのネットワークポリシーを一覧表示します。
+ `aoss:GetSecurityPolicy` – ネットワークアクセスポリシーの設定を表示します。
+ `aoss:UpdateSecurityPolicy` – 特定のネットワークアクセスポリシーを変更し、VPC ID またはパブリックアクセスの指定を変更します。
+ `aoss:DeleteSecurityPolicy` – ネットワークアクセスポリシーを (すべてのコレクションからデタッチした後に) 削除します。

次の ID ベースのアクセスポリシーにより、ユーザーはすべてのネットワークポリシーを表示し、リソースパターン `collection/application-logs` を含むポリシーの更新が行えるようになります。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "aoss:UpdateSecurityPolicy"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aoss:collection": "application-logs"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "aoss:ListSecurityPolicies",
                "aoss:GetSecurityPolicy"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**注記**  
さらに、OpenSearch Serverless には、コレクションリソースの `aoss:APIAccessAll` および `aoss:DashboardsAccessAll` アクセス許可が必要です。詳細については、「[OpenSearch API オペレーションの使用](security-iam-serverless.md#security_iam_id-based-policy-examples-data-plane)」を参照してください。

## ポリシーの優先順位
<a name="serverless-network-precedence"></a>

ポリシー内またはポリシー間に、複数のネットワークポリシールールが同時に存在する場合があります。この場合、パブリックアクセスを指定するルールとプライベートアクセスを指定するルールでは、(これら*両方*のルールに共通して適用されるコレクションにおいて) 前者のルールが優先されます。

例えば、次のポリシーでは、2 種類のルールが `finance` コレクションにネットワークアクセスを割り当てています。一方のルールでは VPC アクセスを、もう一方のルールではパブリックアクセスをそれぞれ指定しています。この場合、*finance コレクションでのみ*、パブリックアクセスは VPC アクセスをオーバーライドします (両方のルールに含まれるのがこのコレクションであるため)。つまり、finance コレクションにアクセスできるのは、パブリックネットワークからとなります。sales コレクションには、指定されたエンドポイントからの VPC アクセスが許可されます。

```
[
   {
      "Description":"Rule 1",
      "Rules":[
         {
            "ResourceType":"collection",
            "Resource":[
               "collection/sales",
               "collection/finance"
            ]
         }
      ],
      "AllowFromPublic":false,
      "SourceVPCEs":[
         "vpce-050f79086ee71ac05"
      ]
   },
   {
      "Description":"Rule 2",
      "Rules":[
         {
            "ResourceType":"collection",
            "Resource":[
               "collection/finance"
            ]
         }
      ],
      "AllowFromPublic":true
   }
]
```

異なるルールの複数の VPC エンドポイントが 1 つのコレクションに適用されている場合、これらのルールは追加的に認識され、指定されたすべてのエンドポイントから、そのコレクションへのアクセスが可能になります。`AllowFromPublic` を `true` に設定し、さらに 1 つ以上の `SourceVPCEs` または `SourceServices` を指定した場合には、OpenSearch Serverless により VPC エンドポイントは無視され、関連するコレクションにはパブリックアクセスが提供されます。

## ネットワークポリシーの作成 (コンソール)
<a name="serverless-network-console"></a>

ネットワークポリシーは、将来作成するコレクションだけでなく、既存のコレクションにも適用が可能です。コレクションの作成を開始する前に、ネットワークポリシーを作成しておくことをお勧めします。

**OpenSearch Serverless のネットワークポリシーを作成するには**

1. [https://console.aws.amazon.com/aos/home](https://console.aws.amazon.com/aos/home ) で Amazon OpenSearch Service コンソールを開きます。

1. 左側のナビゲーションパネルで **[Serverless]** (サーバーレス) を展開し、**[Network policie]** (ネットワークポリシー) を選択します。

1. **[Create network policy]** (ネットワークポリシーを作成) を選択します。

1. ポリシーの名前と説明を入力します。

1. 1 つ以上の*ルール*を指定します。これらのルールは、OpenSearch Serverless コレクションと、その OpenSearch Dashboards エンドポイントへのアクセス許可を定義しています。

   各ルールには以下の要素が含まれます。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/opensearch-service/latest/developerguide/serverless-network.html)

   選択したリソースタイプごとに、ポリシー設定を適用する既存のコレクションを選択すること、および/または 1 つ以上のリソースパターンを作成することができます。リソースパターンはプレフィックスとワイルドカード (\$1) で構成され、ポリシー設定の適用対象となるコレクションを定義します。

   例えば、`Marketing*` というパターンを含めると、名前が「Marketing」で始まる新規または既存のコレクションには、このポリシーのネットワーク設定が自動的に適用されます。ワイルドカード (`*`) によって、既存のコレクションや将来作成されるコレクションすべてにポリシーが適用されます。

   また、ワイルドカードなしで、*将来*作成されるコレクションの名前 (例: `Finance`) を指定することもできます。OpenSearch Serverless は、これと同じ名前を使用して新しく作成されたすべてのコレクションに、同じポリシー設定を適用します。

1. ポリシー設定を確認し、変更点がない場合は、**[Create]** (作成) を選択します。

## ネットワークポリシーの作成 (AWS CLI)
<a name="serverless-network-cli"></a>

OpenSearch Serverless API オペレーションを使用してネットワークポリシーを作成するには、JSON 形式でルールを指定します。[CreateSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_CreateSecurityPolicy.html) リクエストは、インラインポリシーと.json ファイルの両方を受け入れます。すべてのコレクションとパターンは、`collection/<collection name|pattern>` の形式にする必要があります。

**注記**  
リソースタイプ `dashboards` では OpenSearch Dashboards へのアクセスのみが許可されます。ただし、OpenSearch Dashboards が機能するためには、同じソースからコレクションに対するアクセスも許可する必要があります。例については、以下に示す 2 番目のポリシーを参照してください。

プライベートアクセスを指定するには、次の要素の 1 つまたは両方を含めます。
+ `SourceVPCEs` – 1 つ以上の OpenSearch Serverless マネージド VPC エンドポイントを指定します。
+ `SourceServices` – サポートされている 1 つ以上の識別子を指定します AWS のサービス。現在、次のサービス識別子がサポートされています。
  + `bedrock.amazonaws.com` – Amazon Bedrock

次のネットワークポリシー例では、VPC エンドポイントと Amazon Bedrock へのプライベートアクセスを、`log*` プレフィックスで始まるコレクションのコレクションエンドポイントにのみ提供しています。認証されたユーザーは OpenSearch Dashboards にサインインできず、コレクションエンドポイントにはプログラムでしかアクセスできません。

```
[
   {
      "Description":"Private access for log collections",
      "Rules":[
         {
            "ResourceType":"collection",
            "Resource":[
               "collection/log*"
            ]
         }
      ],
      "AllowFromPublic":false,
      "SourceVPCEs":[
         "vpce-050f79086ee71ac05"
      ],
      "SourceServices":[
         "bedrock.amazonaws.com"
      ],
   }
]
```

以下のポリシーでは、`finance` という名前の単一のコレクションに対して、OpenSearch エンドポイント*と* OpenSearch Dashboards の両方でのパブリックアクセスを提供します。対象のコレクションが存在しない場合、ネットワーク設定は、そのコレクションが作成された時点で適用されます。

```
[
   {
      "Description":"Public access for finance collection",
      "Rules":[
         {
            "ResourceType":"dashboard",
            "Resource":[
               "collection/finance"
            ]
         },
         {
            "ResourceType":"collection",
            "Resource":[
               "collection/finance"
            ]
         }
      ],
      "AllowFromPublic":true
   }
]
```

次のリクエストにより、上記のネットワークポリシーが作成されます。

```
aws opensearchserverless create-security-policy \
    --name sales-inventory \
    --type network \
    --policy "[{\"Description\":\"Public access for finance collection\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection\/finance\"]},{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/finance\"]}],\"AllowFromPublic\":true}]"
```

このポリシーを JSON ファイルで指定するには、`--policy file://my-policy.json` の形式を使用します。

## ネットワークポリシーの表示
<a name="serverless-network-list"></a>

コレクションを作成する前に、アカウント内の既存のネットワークポリシーをプレビューして、コレクション名と一致するリソースパターンが含まれているポリシーを確認しておきたい場合があります。次の [ListSecurityPolicies](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_ListSecurityPolicies.html) リクエストにより、アカウント内のすべてのネットワークポリシーが一覧表示されます。

```
aws opensearchserverless list-security-policies --type network
```

このリクエストは、設定されているすべてのネットワークポリシーに関する情報を返します。1 つの特定のポリシーで定義されているパターンルールを表示するには、レスポンスの `securityPolicySummaries` 要素の内容でポリシー情報を探します。このポリシーの `name` と `type` を書き留め、[GetSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_GetSecurityPolicy.html) リクエストでこれらのプロパティを使用して、次のポリシーの詳細を含むレスポンスを受信します。

```
{
    "securityPolicyDetail": [
        {
            "type": "network",
            "name": "my-policy",
            "policyVersion": "MTY2MzY5MTY1MDA3Ml8x",
            "policy": "[{\"Description\":\"My network policy rule\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection/*\"]}],\"AllowFromPublic\":true}]",
            "createdDate": 1663691650072,
            "lastModifiedDate": 1663691650072
        }
    ]
}
```

特定のポリシーの詳細情報を表示するには、[GetSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_GetSecurityPolicy.html) コマンドを使用します。

## ネットワークポリシーの更新
<a name="serverless-network-update"></a>

ネットワークの VPC エンドポイントまたはパブリックアクセスの指定を変更すると、関連するすべてのコレクションが影響を受けます。OpenSearch Serverless コンソールでネットワークポリシーを更新するには、**[Network policies]** (ネットワークポリシー) を展開してから変更するポリシーを選択した後、**[Edit]** (編集) を選択します。変更を行ってから、**[保存]** を選択します。

OpenSearch Serverless API を使用してネットワークポリシーを更新するには、[UpdateSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_UpdateSecurityPolicy.html) コマンドを使用します。リクエストには、ポリシーのバージョンを含める必要があります。ポリシーのバージョンは、`ListSecurityPolicies` または `GetSecurityPolicy` コマンドを使用して取得できます。最新のポリシーバージョンを含めると、他のユーザーによる変更を意図せず上書きしてしまうことがなくなります。

次のリクエストは、ネットワークポリシーを新しいポリシーの JSON ドキュメントで更新します。

```
aws opensearchserverless update-security-policy \
    --name sales-inventory \
    --type network \
    --policy-version MTY2MzY5MTY1MDA3Ml8x \
    --policy file://my-new-policy.json
```

## ネットワークポリシーの削除
<a name="serverless-network-delete"></a>

ネットワークポリシーを削除する前に、そのポリシーをすべてのコレクションからデタッチする必要があります。OpenSearch Serverless コンソールでポリシーを削除するには、ポリシーを選択し、**[Delete]** (削除) を選択します。

[DeleteSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_DeleteSecurityPolicy.html) コマンドを使用することもできます。

```
aws opensearchserverless delete-security-policy --name my-policy --type network
```