

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

# Amazon Virtual Private Cloud を使用してジョブを保護する
<a name="usingVPC"></a>

Amazon Comprehend では、さまざまなセキュリティ対策を使用して、データおよび、Amazon Comprehend の使用中にそのデータが保存されるジョブコンテナの安全性を確保することができます。ただし、ジョブコンテナは、データやモデルアーティファクトを保存する Amazon S3 バケットなどの AWS リソースにインターネット経由でアクセスします。

データへのアクセスを制御するには、仮想プライベートクラウド (VPC) を作成して、データおよびコンテナがインターネット経由でアクセスできないように設定すことをお勧めします。VPC の作成と設定の詳細については、「*Amazon VPC ユーザーガイド*」の「[Amazon VPC の開始方法](https://docs.aws.amazon.com/vpc/latest/userguide/getting-started-ipv4.html)」を参照してください。VPC を利用すると、インターネットに接続されないように VPC を設定できるため、ジョブコンテナとデータを保護することができます。VPC 利用すると、VPC フローログを使ってジョブコンテナとの間のすべてのネットワークトラフィックを監視することもできます。詳細については、「Amazon VPC ユーザーガイド」の「[VPC フローログを使用した IP トラフィックのログ記録](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)」を参照してください。

VPC 設定は、サブネットとセキュリティグループを指定してモデルを作成するときに指定します。サブネットとセキュリティグループが指定されると、Amazon Comprehend はサブネットの 1 つのセキュリティグループに関連付けられている Elastic Network Interface (ENI) を作成します。ENI により、ジョブコンテナが VPC のリソースに接続できるようになります。ENI については、『Amazon VPC ユーザーガイド』の「[Elastic Network Interfaces](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html)」を参照してください。

**注記**  
ジョブの場合は、デフォルトのテナンシー VPC を使用してのみサブネットを設定できます。この VPC では、インスタンスは共有ハードウェアで実行されます。VPCs*Amazon EC2 * [ユーザーガイド」の「専有インスタンス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html)」を参照してください。

## Amazon VPC アクセス用のジョブを設定する
<a name="VPCaccess"></a>

プライベート VPC 上のサブネットとセキュリティグループを指定するには、該当する API の `VpcConfig` リクエストパラメータを使用するか、Amazon Comprehend コンソールでコンパイルジョブを作成するときにその情報を指定します。Amazon Comprehend は、この情報を使用して ENI を作成し、その ENI をジョブコンテナにアタッチします。ENI は、インターネットに接続されていない VPC 上でのネットワーク接続機能をモデルコンテナに提供します。

次の API には `VpcConfig` リクエストパラメータが含まれています。
+ `Create*` API: ` [CreateDocumentClassifier](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_CreateDocumentClassifier.html)`、 ` [CreateEntityRecognizer](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_CreateEntityRecognizer.html) `
+ `Start*` API: ` [StartDocumentClassificationJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartDocumentClassificationJob.html)`、 ` [StartDominantLanguageDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartDominantLanguageDetectionJob.html)`、` [StartEntitiesDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartEntitiesDetectionJob.html)`、` [StartKeyPhrasesDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartKeyPhrasesDetectionJob.html)`、` [StartSentimentDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartSentimentDetectionJob.html)`、` [StartTargetedSentimentDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartTargetedSentimentDetectionJob.html)`、` [StartTopicsDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartTopicsDetectionJob.html)`

以下は、 API コールにしている VpcConfig パラメータの例です。

```
"VpcConfig": { 
      "SecurityGroupIds": [
          " sg-0123456789abcdef0"
          ],
      "Subnets": [
          "subnet-0123456789abcdef0",
          "subnet-0123456789abcdef1",
          "subnet-0123456789abcdef2"
          ]
      }
```

Amazon Comprehend コンソールから VPC を設定するには、ジョブの作成時にオプションの [**VPC 設定**] セクションから設定の詳細を選択します。

![\[分析ジョブの作成にあるオプションの VPC セクション\]](http://docs.aws.amazon.com/ja_jp/comprehend/latest/dg/images/vpc-image-10.png)


## Amazon Comprehend ジョブ用に VPC を設定する
<a name="configureVPC"></a>

Amazon Comprehend のジョブ用に VPC 設定する場合は、次のガイドラインに従ってください。VPC のセットアップについては、Amazon VPC ユーザーガイドの「[VPC とサブネットの使用](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html)」を参照してください。**

**サブネットに十分な IP アドレスを確保する**

VPC サブネットには、ジョブの各インスタンスにプライベート IP アドレスが少なくとも 2 つ必要です。詳細については、*Amazon VPC ユーザーガイド*の [IPv4 用の VPC とサブネットのサイズ設定](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#vpc-sizing-ipv4)を参照してください。

**Amazon S3 VPC エンドポイントを 1 つ作成する**

モデルコンテナがインターネットにアクセスできないように VPC を設定した場合は、アクセスを許可する VPC エンドポイントを作成しない限り、モデルコンテナはデータを含む Amazon S3 バケットに接続できません。VPC エンドポイントを作成することで、トレーニングジョブと分析ジョブ中にジョブコンテナがデータにアクセスできるようになります。

VPC エンドポイントを作成するときは、次の値を設定します。
+ サービスとして**AWS サービス**カテゴリを選択する
+ サービスを として指定します。 `com.amazonaws.region.s3`
+ VPC エンドポイントタイプとして**ゲートウェイ**を選択する 

 CloudFormation を使用して VPC エンドポイントを作成する場合は、[CloudFormation VPCEndpoint](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html) のドキュメントに従ってください。次の例は、 CloudFormation テンプレート内の **VPCEndpoint** 設定を示しています。

```
  VpcEndpoint:
    Type: AWS::EC2::VPCEndpoint
    Properties:
      PolicyDocument:
        Version: '2012-10-17		 	 	 '
        Statement:
          - Action:
              - s3:GetObject
              - s3:PutObject
              - s3:ListBucket
              - s3:GetBucketLocation
              - s3:DeleteObject
              - s3:ListMultipartUploadParts
              - s3:AbortMultipartUpload
            Effect: Allow
            Resource:
              - "*"
            Principal: "*"
      RouteTableIds:
        - Ref: RouteTable
      ServiceName:
        Fn::Join:
          - ''
          - - com.amazonaws.
            - Ref: AWS::Region
            - ".s3"
      VpcId:
        Ref: VPC
```

プライベート VPC からのリクエストのみに S3 バケットへのアクセスを許可するカスタムポリシーも作成することをお勧めします。詳細については、*Amazon VPC ユーザーガイド*の「[Amazon S3 におけるエンドポイント](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html)」を参照してください。

次のポリシーでは、S3 バケットへのアクセスを許可します。このポリシーを編集して、ジョブに必要なリソースのみへのアクセスを許可します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:DeleteObject",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload"
            ],
            "Resource": "*"
        }
    ]
}
```

------

エンドポイントルートテーブルのデフォルトの DNS 設定を使って、標準 Amazon S3 URL (例えば、`http://s3-aws-region.amazonaws.com/amzn-s3-demo-bucket`) が解決されるようにします。デフォルトの DNS 設定を使用しない場合は、エンドポイントルートテーブルを設定することで、ジョブのデータがある場所の指定に使用する URL が解決されるようにします。VPC エンドポイントルートテーブルについては、Amazon VPC ユーザーガイドの「[ゲートウェイエンドポイントのルーティング](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-gateway.html#vpc-endpoints-routing)」を参照してください。**

デフォルトエンドポイントポリシーでは、ユーザーは、Amazon Linux と Amazon Linux 2 のリポジトリのパッケージをジョブコンテナにインストールできます。ユーザーがそのリポジトリからパッケージをインストールしないようにする場合は、Amazon Linux と Amazon Linux 2 のリポジトリへのアクセスを明示的に拒否するカスタムエンドポイントポリシーを作成します。Comprehend 自体にはそのようなパッケージは必要なく、機能的な影響はありません。これらのリポジトリへのアクセスを拒否するポリシーの例を次に示します。

```
{ 
    "Statement": [ 
      { 
        "Sid": "AmazonLinuxAMIRepositoryAccess",
        "Principal": "*",
        "Action": [ 
            "s3:GetObject" 
        ],
        "Effect": "Deny",
        "Resource": [
            "arn:aws:s3:::packages.*.amazonaws.com/*",
            "arn:aws:s3:::repo.*.amazonaws.com/*"
        ] 
      } 
    ] 
} 

{ 
    "Statement": [ 
        { "Sid": "AmazonLinux2AMIRepositoryAccess",
          "Principal": "*",
          "Action": [ 
              "s3:GetObject" 
              ],
          "Effect": "Deny",
          "Resource": [
              "arn:aws:s3:::amazonlinux.*.amazonaws.com/*" 
              ] 
         } 
    ] 
}
```

**`DataAccessRole` に対するアクセス許可**

分析ジョブで VPC を使用する場合、`DataAccessRole` および `Create*` オペレーションに使用する `Start*` には、入力ドキュメントと出力バケットへのアクセスに使用される VPC に対するアクセス許可も必要です。

次のポリシーは、`Create*` および `Start*` オペレーションに使用される `DataAccessRole` に、必要とされるアクセス権を提供します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
              "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:CreateNetworkInterfacePermission",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteNetworkInterfacePermission",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeVpcs",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**VPC セキュリティグループを設定する**

分散型ジョブでは、同じジョブにあるさまざまなコンテナ間の通信を許可する必要があります。そのためには、同じセキュリティグループのメンバー間のインバウンド接続を許可するセキュリティグループのルールを設定します。詳細については、『Amazon VPC ユーザーガイド』の 「[Security Group Rules](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules)」を参照してください。

**VPC の外部のリソースに接続する**

インターネットアクセスができないように VPC を設定している場合、その VPC を使用するジョブには、VPC の外部のリソースに対するアクセス権がありません。ジョブが VPC の外部のリソースにアクセスする必要がある場合は、次のいずれかのオプションを使用してアクセス権を提供します。
+ ジョブがインターフェイス VPC エンドポイントをサポートする AWS サービスにアクセスする必要がある場合は、そのサービスに接続するためのエンドポイントを作成します。インターフェイスエンドポイントをサポートするサービスのリストについては、Amazon VPC ユーザーガイドの「[VPC エンドポイント](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)」を参照してください。**インターフェイス VPC エンドポイントの作成については、*「Amazon* [VPC ユーザーガイド」の「インターフェイス VPC エンドポイント (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html)」を参照してください。
+ ジョブがインターフェイス VPC エンドポイントをサポートしていない AWS サービスまたは 外のリソースにアクセスする必要がある場合は AWS、NAT ゲートウェイを作成し、アウトバウンド接続を許可するようにセキュリティグループを設定します。VPC 用の NAT ゲートウェイのセットアップについては、『[Amazon VPC ユーザーガイド](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario2.html)』の「シナリオ 2: パブリックサブネットとプライベートサブネットを持つ VPC (NAT)」を参照してください。