

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

# エンドポイントポリシーを使用して VPC エンドポイントでアクセスを制御する
<a name="vpc-vpce.policy"></a>

このトピックでは、VPC エンドポイントにポリシーをアタッチして、アプリケーション (サービス) と Elastic Beanstalk 環境へのアクセスを制御する方法について説明します。

エンドポイントポリシーは、エンドポイントから指定されたサービスへのアクセスを制御する AWS Identity and Access Management (IAM) リソースポリシーです。エンドポイントポリシーは、エンドポイントに固有のものです。これは、環境が持つ可能性のあるユーザーまたはインスタンスの IAM ポリシーとは別のものであり、上書きしたり置き換えたりすることはありません。

デフォルトでは、VPC エンドポイントは、関連付けられているサービスへのフルアクセスを許可します。エンドポイントを作成または変更するときは、エンドポイントポリシーをアタッチして、サービスに関連付けられた特定のリソースへのアクセスを制御できます。VPC エンドポイントポリシーの作成と使用の詳細については、「AWS PrivateLink ガイド」の「[エンドポイントポリシーを使用して VPC エンドポイントへのアクセスを制御する](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)」を参照してください。

**注記**  
制限のあるエンドポイントポリシーを作成するときは、必要なリソースに特定のアクセス許可を追加する必要がある場合があります。これにより、これらのリソースへのアクセスがエンドポイントポリシーによってブロックされなくなります。これにより、環境は引き続き正常にデプロイされ機能します。

次の例では、VPC エンドポイントを経由して環境を終了するアクセス許可をすべてのユーザーに拒否し、他のすべてのアクションへのフルアクセスを許可します。

```
{
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Principal": "*"
        },
        {
            "Action": "elasticbeanstalk:TerminateEnvironment",
            "Effect": "Deny",
            "Resource": "*",
            "Principal": "*"
        }
    ]
}
```

## 制限付き VPC エンドポイントポリシーに必要な Amazon S3 バケットアクセス許可
<a name="AWSHowTo.S3.VPCendpoints"></a>

VPC エンドポイントポリシーに制限を追加する場合は、環境が引き続き正常にデプロイされ機能するように、特定の Amazon S3 バケットアクセス許可を含める必要があります。このセクションでは、必要な S3 バケットについて説明し、ポリシーの例を示します。

**Topics**
+ [環境プラットフォームを管理するためにアセットを保存する S3 バケット](#AWSHowTo.S3.VPCendpoints.required-permissions.assets)
+ [が所有する S3 バケット CloudFormation](#AWSHowTo.S3.VPCendpoints.required-permissions.cloudformation)
+ [ソースコードやその他の項目を保存するためにカスタマーアカウントが所有する S3 バケット](#AWSHowTo.S3.VPCendpoints.required-permissions.items)
+ [Docker レジストリ認証をサポートするためにカスタマーアカウントが所有する S3 バケット](#AWSHowTo.S3.VPCendpoints.required-permissions.docker-auth)
+ [VPC エンドポイントポリシーの更新](#AWSHowTo.S3.VPCendpoints.required-permissions.assets.permissions)

### 環境プラットフォームを管理するためにアセットを保存する S3 バケット
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.assets"></a>

Elastic Beanstalk サービスは、ソリューションスタック (プラットフォームバージョン) に関連付けられたアセットを保存する S3 バケットを所有しています。これらのアセットには、設定ファイル、サンプルアプリケーション、使用可能なインスタンスタイプが含まれます。Elastic Beanstalk が環境を作成および管理すると、対応する各アセットバケットから特定のプラットフォームバージョンの必要な情報を取得します AWS リージョン。

#### S3 バケット ARN
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.assets.arn"></a>

 `arn:aws:s3:::elasticbeanstalk-samples-{{region}}` 

Amazon Linux 2 以降
+  `arn:aws:s3:::elasticbeanstalk-platform-assets-{{region}}` 
**注記**  
バケット名は、BJS リージョンの別の規則に従います。文字列 public-beta-cn-north-1 が、{{リージョン}}の代わりに使用されます。例えば、`arn:aws:s3:::elasticbeanstalk-platform-assets-public-beta-cn-north-1` です。

Windows Server、Amazon Linux (AMI)、Amazon Linux 2 以降
+  `arn:aws:s3:::elasticbeanstalk-env-resources-{{region}}` 
+  `arn:aws:s3:::elasticbeanstalk-{{region}}` 

**注記**  
platform-assets バケットと env-resources バケットのバケット名は、一部のリージョンでは異なる規則に従います。詳細については、以下のリージョン固有のバケット命名パターンセクションを参照してください。

##### リージョン固有のバケット ARN パターン
<a name="AWSHowTo.S3.VPCendpoints.region-specific-buckets.collapsed"></a>



- **me-central-1**
  - **バケットタイプ:** platform-assets / **バケット ARN パターン:** arn:aws:s3:::elasticbeanstalk-platform-assets-me-central-1-f08b818c
  - **バケットタイプ:** env-resources / **バケット ARN パターン:** arn:aws:s3:::elasticbeanstalk-env-resources-me-central-1-f08b818c



#### オペレーション
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.assets.operations"></a>

GetObject

#### VPC エンドポイントポリシーの例
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.assets.example"></a>

次の例は、米国東部 (オハイオ) リージョン (us-east-2) で Elastic Beanstalk の運用に必要な S3 バケットへのアクセス権を付与する方法を示しています。この例では、Amazon Linux プラットフォームと Windows Server プラットフォームの両方のすべてのバケットを一覧表示します。環境のオペレーティングシステムに適用されるバケットのみを含めるようにポリシーを更新します。

##### ポリシーの例
<a name="aAWSHowTo.S3.VPCendpoints.required-permissions.assets.example.collapsed"></a>

**重要**  
このポリシーの特定のリージョンの代わりにワイルドカード文字 (\*) を使用しないことをお勧めします。例えば、`arn:aws:s3:::cloudformation-waitcondition-us-east-2/*` を使用して、`arn:aws:s3:::cloudformation-waitcondition-*/*` は使用しないでください。ワイルドカードを使用すると、アクセスを付与する S3 バケットへのアクセス権が付与される場合があります。複数のリージョンでポリシーを使用する場合は、各リージョンの最初の `Statement` ブロックを繰り返すことをお勧めします。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRequestsToAWSResources",
            "Effect": "Allow",
            "Principal": {"AWS": "*"},
            "Action": ["s3:GetObject"],
            "Resource": [
                "arn:aws:s3:::elasticbeanstalk-platform-assets-{{us-east-2}}/*",
                "arn:aws:s3:::elasticbeanstalk-env-resources-{{us-east-2}}/*",
                "arn:aws:s3:::elasticbeanstalk-env-resources-{{us-east-2}}/*",
                "arn:aws:s3:::elasticbeanstalk-samples-{{us-east-2}}/*"
            ]
         }
    ]
}
```

------

### が所有する S3 バケット CloudFormation
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.cloudformation"></a>

Elastic Beanstalk は CloudFormation を使用して環境のリソースを作成します。CloudFormation は、それぞれに S3 バケットを所有 AWS リージョン し、待機条件に対する応答をモニタリングします。

Elastic Beanstalk などのサービスは CloudFormation が所有する S3 バケットの 署名付き Amazon S3 URL にリクエストを送信することで、CloudFormation と通信します。CloudFormation は、`cloudformation.amazonaws.com` サービスプリンシパルを使用して署名付き Amazon S3 URL を作成します。

詳細については、「AWS CloudFormation ユーザーガイド」の「[CloudFormation VPC エンドポイントに関する考慮事項](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-vpce-bucketnames.html#cfn-setting-up-vpc-considerations)」を参照してください。署名付き URL の詳細については、「Amazon S3 ユーザーガイド」の[署名付き URL に関するページ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html)を参照してください。

#### S3 バケット ARN
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.cloudformation.arn"></a>
+  `arn:aws:s3:::cloudformation-waitcondition-{{region}}` 

  待機条件を使用する場合、リージョン名にはダッシュが含まれます。例えば、*us-west-2* などです。
+  `arn:aws:s3:::cloudformation-custom-resource-response-{{region}}` 

  カスタムリソースを使用する場合、リージョン名にダッシュは含まれません。例えば、uswest2 です。

#### オペレーション
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.cloudformation.operations"></a>

GetObject

#### VPC エンドポイントポリシーの例
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.cloudformation.example"></a>

次の例は、米国東部 (オハイオ) リージョン (us-east-2) で Elastic Beanstalk の運用に必要な S3 バケットへのアクセス権を付与する方法を示しています。

##### ポリシーの例
<a name="aAWSHowTo.S3.VPCendpoints.required-permissions.cloudformation.example.collapsed"></a>

**重要**  
このポリシーの特定のリージョンの代わりにワイルドカード文字 (\*) を使用しないことをお勧めします。例えば、`arn:aws:s3:::cloudformation-waitcondition-us-east-2/*` を使用して、`arn:aws:s3:::cloudformation-waitcondition-*/*` は使用しないでください。ワイルドカードを使用すると、アクセスを付与する S3 バケットへのアクセス権が付与される場合があります。複数のリージョンでポリシーを使用する場合は、各リージョンの最初の `Statement` ブロックを繰り返すことをお勧めします。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRequestsToCloudFormation",
            "Effect": "Allow",
            "Principal": {"AWS": "*"},
            "Action": ["s3:GetObject"],
            "Resource": [
                "arn:aws:s3:::cloudformation-waitcondition-{{us-east-2}}/*",
                "arn:aws:s3:::cloudformation-custom-resource-response-{{us-east-2}}/*"
            ]
         }
    ]
}
```

------

### ソースコードやその他の項目を保存するためにカスタマーアカウントが所有する S3 バケット
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.items"></a>

このバケットは、環境を所有する AWS 顧客アカウントによって所有されています。ソースコードやリクエストされたログなど、環境に固有のリソースが保存されます。

#### S3 バケット ARN
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.items.arn"></a>

 `arn:aws:s3:::elasticbeanstalk-{{region}}-{{account-id}}` 

#### オペレーション
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.items.operations"></a>
+ GetObject
+ GetObjectAcl
+ PutObject
+ PutObjectAcl
+ ListBucket

#### VPC エンドポイントポリシーの例
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.items.example"></a>

次の例は、米国東部 (オハイオ) リージョン (us-east-2) の Elastic Beanstalk オペレーションおよびサンプル AWS アカウント ID 123456789012 に必要な S3 バケットへのアクセスを提供する方法を示しています。

##### ポリシーの例
<a name="aAWSHowTo.S3.VPCendpoints.required-permissions.items.example.collapsed"></a>

**重要**  
このポリシーの特定のリージョンの代わりにワイルドカード文字 (\*) を使用しないことをお勧めします。例えば、`arn:aws:s3:::cloudformation-waitcondition-us-east-2/*` を使用して、`arn:aws:s3:::cloudformation-waitcondition-*/*` は使用しないでください。ワイルドカードを使用すると、アクセスを付与する S3 バケットへのアクセス権が付与される場合があります。複数のリージョンでポリシーを使用する場合は、各リージョンの最初の `Statement` ブロックを繰り返すことをお勧めします。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRequestsToCustomerItems",
            "Effect": "Allow",
            "Principal": {"AWS": "*"},
            "Action": [
               "s3:GetObject",
               "s3:GetObjectAcl",
               "s3:PutObject",
               "s3:PutObjectAcl",
               "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::elasticbeanstalk-{{us-east-2}}-{{123456789012}}/*"
            ]
         }
    ]
}
```

------

### Docker レジストリ認証をサポートするためにカスタマーアカウントが所有する S3 バケット
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.docker-auth"></a>

このバケットは、Docker プラットフォームに基づく環境にのみ適用されます。バケットは、お客様がプロビジョニングした S3 バケットに存在するプライベート Docker レジストリへの認証に使用されるファイルを保存します。詳細については、このガイドの Docker プラットフォームの章の「[`Dockerrun.aws.json` v3 ファイルの使用](docker-configuration.remote-repo.md#docker-configuration.remote-repo.dockerrun-aws)」を参照してください。

#### S3 バケット ARN
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.docker-auth.arn"></a>

ARN はカスタマーアカウントによって異なります。

S3 バケット ARN は `arn:aws:s3:::{{bucket-name}}` の形式になります。

#### オペレーション
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.docker-auth.operations"></a>

GetObject

#### VPC エンドポイントポリシーの例
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.docker-auth.example"></a>

次の例は、amzn-s3-demo-bucket1 という名前の S3 バケットへのアクセス権を付与する方法を示しています。

##### ポリシーの例
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.docker-auth.example.collapsed"></a>

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

****  

```
  {
  "Version":"2012-10-17",		 	 	 
  "Statement": [
     {
        "Sid": "AllowRequestsToDockerRegistryAuth",
         "Effect": "Allow",
         "Action": [
            "s3:GetObject"
          ],
      "Resource": [
        "arn:aws:s3:::{{amzn-s3-demo-bucket1}}"
      ]
    }
  ]
}
```

------

### VPC エンドポイントポリシーの更新
<a name="AWSHowTo.S3.VPCendpoints.required-permissions.assets.permissions"></a>

VPC エンドポイントには 1 つのポリシーしかアタッチされないため、すべてのアクセス許可を 1 つのポリシーに結合する必要があります。次の例では、前述の例をすべて 1 つにまとめています。

VPC エンドポイントポリシーの作成と使用の詳細については、「AWS PrivateLink ガイド」の「[エンドポイントポリシーを使用して VPC エンドポイントへのアクセスを制御する](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)」を参照してください。

前の例と同様に、米国東部 (オハイオ) リージョン (us-east-2) で Elastic Beanstalk の運用に必要な S3 バケットへのアクセス権を付与する方法を示しています。また、サンプル AWS アカウント ID 123456789012 のバケットとサンプルバケット名 amzn-s3-demo-bucket1 のバケットも含まれます。

**重要**  
このポリシーの特定のリージョンの代わりにワイルドカード文字 (\*) を使用しないことをお勧めします。例えば、`arn:aws:s3:::cloudformation-waitcondition-us-east-2/*` を使用して、`arn:aws:s3:::cloudformation-waitcondition-*/*` は使用しないでください。ワイルドカードを使用すると、アクセスを付与する S3 バケットへのアクセス権が付与される場合があります。複数のリージョンでポリシーを使用する場合は、各リージョンの最初の `Statement` ブロックを繰り返すことをお勧めします。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowRequestsToAWSResources",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::elasticbeanstalk-platform-assets-{{us-east-2}}/*",
                "arn:aws:s3:::elasticbeanstalk-env-resources-{{us-east-2}}/*",
                "arn:aws:s3:::elasticbeanstalk-samples-{{us-east-2}}/*"
            ]
        },
        {
            "Sid": "AllowRequestsToCloudFormation",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::cloudformation-waitcondition-{{us-east-2}}/*",
                "arn:aws:s3:::cloudformation-custom-resource-response-{{us-east-2}}/*"
            ]
        },
        {
            "Sid": "AllowRequestsToCustomerItems",
            "Effect": "Allow",
            "Action": [
               "s3:GetObject",
               "s3:GetObjectAcl",
              "s3:PutObject",
               "s3:PutObjectAcl",
               "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::elasticbeanstalk-{{us-east-2}}-{{123456789012}}/*"
            ]
        },
        {
            "Sid": "AllowRequestsToDockerRegistryAuth",
            "Effect": "Allow",
            "Action": [
            "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::{{amzn-s3-demo-bucket1}}"
            ]
        }
    ]
}
```

------