

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

# プライベートにホストされたツールへの接続
<a name="configuring-capabilities-for-aws-devops-agent-connecting-to-privately-hosted-tools"></a>

## プライベート接続の概要
<a name="private-connections-overview"></a>

AWS DevOps エージェントは、カスタムモデルコンテキストプロトコル (MCP) ツールやその他の統合を使用して拡張できます。これにより、エージェントはプライベートパッケージレジストリ、セルフホスト型オブザーバビリティプラットフォーム、内部ドキュメント APIs「」を参照[AWS DevOps Agent の機能の設定](configuring-capabilities-for-aws-devops-agent.md))。これらのサービスは、多くの場合、パブリックインターネットアクセスが制限されているか、パブリックインターネットアクセスがない [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide) 内で実行されます。つまり、 AWS DevOps Agent はデフォルトでそれらにアクセスできません。

 AWS DevOps Agent のプライベート接続を使用すると、パブリックインターネットに公開することなく、VPC で実行されているサービスにエージェントスペースを安全に接続できます。プライベート接続は、MCP サーバー、セルフホスト型の Grafana または Splunk インスタンス、GitHub Enterprise Server や GitLab Self-Managed などのソース管理システムなど、プライベートエンドポイントに到達する必要がある統合と連携します。

**注記**  
** プライベートにホストされたツールが VPC 内から AWS DevOps エージェントにアウトバウンドリクエストを行う場合、このトラフィックは VPC エンドポイントを使用して保護し、 AWS ネットワーク内に留まることもできます。例えば、これはウェブフックイベントを介して DevOps エージェントをトリガーするツールで使用できます (「」を参照[Webhook による DevOps エージェントの呼び出し](configuring-capabilities-for-aws-devops-agent-invoking-devops-agent-through-webhook.md))。詳細については、「[VPC エンドポイント (AWS PrivateLink)](aws-devops-agent-security-vpc-endpoints-aws-privatelink.md)」を参照してください。

### プライベート接続の仕組み
<a name="how-private-connections-work"></a>

プライベート接続は、 AWS DevOps エージェントと VPC 内のターゲットリソースとの間に安全なネットワークパスを作成します。 AWS DevOps Agent は、Amazon [VPC Lattice ](https://docs.aws.amazon.com/vpc-lattice/latest/ug/)を使用して、この安全なプライベート接続パスを確立します。VPC Lattice は、基盤となるネットワークインフラストラクチャを管理することなく、VPCs、アカウント、コンピューティングタイプ間のアプリケーション間の通信を接続、保護、モニタリングできるアプリケーションネットワークサービスです。

プライベート接続を作成すると、次のようになります。
+ ターゲットサービスへのネットワーク接続を持つ VPC、サブネット、および (オプションで) セキュリティグループを指定します。
+ AWS DevOps Agent は、サービスマネージド[リソースゲートウェイ](https://docs.aws.amazon.com/vpc/latest/privatelink/resource-gateway.html)を作成し、指定したサブネットに Elastic Network Interface (ENIs) をプロビジョニングします。
+ エージェントはリソースゲートウェイを使用して、プライベートネットワークパス経由でターゲットサービスの IP アドレスまたは DNS 名にトラフィックをルーティングします。

リソースゲートウェイは AWS DevOps エージェントによって完全に管理され、 アカウント ( という名前) の読み取り専用リソースとして表示されます`aidevops-{your-private-connection-name}`。設定または保守する必要はありません。VPC で作成されるリソースはENIs のみです。これらの ENIs はプライベートトラフィックのエントリポイントとして機能し、 サービスによって完全に管理されます。インターネットからのインバウンド接続は受け付けず、独自のセキュリティグループを介してトラフィックを完全に制御できます。

### セキュリティ
<a name="security"></a>

プライベート接続は、複数のセキュリティレイヤーで設計されています。
+ **パブリックインターネットへの露出なし** — AWS DevOps Agent とターゲットサービス間のすべてのトラフィックは AWS ネットワーク上にとどまります。サービスにパブリック IP アドレスやインターネットゲートウェイは必要ありません。
+ **サービスマネージドリソースゲートウェイ** – サービスマネージドリソースゲートウェイは、アカウント内で読み取り専用です。 AWS DevOps エージェントのみが使用でき、他のサービスやプリンシパルがそのエージェントを介してトラフィックをルーティングすることはできません。これは、すべての VPC Lattice API コールを記録する [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/) ログで確認できます。
+ **セキュリティグループ、ルール** – 所有および管理しているセキュリティグループを通じてENIs へのインバウンドトラフィックとアウトバウンドトラフィックを制御します。セキュリティグループを指定しない場合、 AWS DevOps Agent は定義したポートを対象とするデフォルトのセキュリティグループを作成します。
+ **最小特権を持つサービスにリンクされたロール** – AWS DevOps エージェントは、[サービスにリンクされたロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)を使用して、必要な VPC Lattice と Amazon EC2 リソースのみを作成します。このロールは、 でタグ付けされたリソースに限定`AWSAIDevOpsManaged`され、アカウント内の他のリソースにアクセスすることはできません。

**注記**  
** 組織に VPC Lattice API アクションを制限する[サービスコントロールポリシー (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) がある場合、サービスマネージドリソースゲートウェイはサービスにリンクされたロールを介して作成されます。SCPsサービスにリンクされたロールに必要なアクションを許可していることを確認します。

### アーキテクチャ
<a name="architecture"></a>

次の図は、プライベート接続のネットワークパスを示しています。

![](http://docs.aws.amazon.com/ja_jp/devopsagent/latest/userguide/images/7cd6182e6b8d.png)


このアーキテクチャの詳細は以下のとおりです。
+ AWS DevOps エージェントは、ターゲットサービスへのリクエストを開始します。
+ Amazon VPC Lattice は、VPC のサービスマネージドリソースゲートウェイを介してリクエストをルーティングします。独自の VPC Lattice リソースを使用した高度なセットアップについては、[「既存の VPC Lattice リソースを使用した高度なセットアップ](#advanced-setup-using-existing-vpc-lattice-resources)」を参照してください。
+ VPC の ENI はトラフィックを受信し、ターゲットサービスの IP アドレスまたは DNS 名に転送します。
+ セキュリティグループは、ENIsを介して許可されるトラフィックを管理します。
+ ターゲットサービスの観点から、リクエストは VPC 内の ENIs のプライベート IP アドレスから送信されます。

## プライベート接続を作成する
<a name="create-a-private-connection"></a>

プライベート接続は、 AWS マネジメントコンソールまたは CLI AWS を使用して作成できます。

**注記**  
** VPC Lattice では、次のアベイラビリティーゾーンはサポートされていません: `use1-az3`、`usw1-az2`、`apne1-az3`、、、`apne2-az2`、`euc1-az2``euw1-az4``cac1-az3`、`ilc1-az2`。

### 前提条件
<a name="prerequisites"></a>

プライベート接続を作成する前に、以下があることを確認します。
+ **アクティブなエージェントスペース** – アカウント内に既存のエージェントスペースが必要です。アカウントをお持ちでない場合は、「[AWS DevOps エージェントの開始方法](getting-started-with-aws-devops-agent.md)」を参照してください。
+ **プライベートにアクセス可能なターゲットサービス** – MCP サーバー、オブザーバビリティプラットフォーム、またはその他のサービスは、リソースゲートウェイがデプロイされている VPC の既知のプライベート IP アドレスまたは DNS 名で到達可能である必要があります。サービスは、リソースゲートウェイサブネットからルーティング可能である限り、同じ VPC、ピア接続された VPC、またはオンプレミスで実行できます。サービスは、接続の作成時に指定したポートで、最小 TLS バージョン 1.2 の HTTPS トラフィックを提供する必要があります。
+ **VPC 内のサブネット** — ENIs が作成されるサブネットを 1～20 個特定します。高可用性を実現するには、複数のアベイラビリティーゾーンのサブネットを選択することをお勧めします。これらのサブネットには、ターゲットサービスへのネットワーク接続が必要です。VPC Lattice では、アベイラビリティーゾーンごとに 1 つのサブネットを使用できます。
+ **(オプション) セキュリティグループ** – 特定のルールでトラフィックを制御する場合は、ENI にアタッチするセキュリティグループ IDs を最大 5 つまで準備します。 ENIs セキュリティグループを省略すると、 AWS DevOps Agent はデフォルトのセキュリティグループを作成します。

プライベート接続はアカウントレベルのリソースです。プライベート接続を作成したら、同じホストに到達する必要がある複数の統合とエージェントスペースで再利用できます。

### コンソールを使用してプライベート接続を作成する
<a name="create-a-private-connection-using-the-console"></a>

1.  AWS DevOps エージェントコンソールを開きます。

1. ナビゲーションペインで、**機能プロバイダー**を選択し、**プライベート接続**を選択します。

1. **[新しい接続を作成する]** を選択します。

1. Name には****、 など、接続のわかりやすい名前を入力します`my-mcp-tool-connection`。

1. **VPC** の場合は、リソースゲートウェイ ENIsされる VPC を選択します。

1. **サブネット**の場合は、1 つ以上のサブネット (最大 20) を選択します。少なくとも 2 つのアベイラビリティーゾーンでサブネットを選択することをお勧めします。

1. **IP アドレスタイプ**で、ターゲットサービスの IP アドレスのタイプ (`IPv4`、`IPv6`、または ) を選択します`DualStack`。

1. (オプション) ** IPv4 アドレスの数**で、IP アドレスタイプに IPv4 またはデュアルスタックを選択した場合は、リソースゲートウェイの ENI ごとに IPv4 アドレスの数を入力できます。デフォルトは、ENI あたり 16 個の IPv4 アドレスです。

1. (オプション) **セキュリティグループ**で、既存のセキュリティグループ (最大 5) を選択して、ターゲットサービスに到達できるトラフィックを制限します。選択しない場合、デフォルトのセキュリティグループが作成されます。

1. (オプション) **ポート範囲**には、ターゲットアプリケーションがリッスンする TCP ポートを指定します (例: `443`または `8080-8090`)。最大 11 個のポート範囲を指定できます。

1. **ホストアドレス**には、ターゲットサービスの IP アドレスまたは DNS 名 (例: `mcp.internal.example.com`または ) を入力します`10.0.1.50`。サービスは、選択した VPC から到達可能である必要があります。DNS 名を選択した場合は、選択した VPC から解決可能である必要があります。

1. (オプション) **証明書パブリックキー**で、指定したホストアドレスがプライベート認証機関によって発行された TLS 証明書を使用している場合は、証明書の PEM エンコードされたパブリックキーを入力します。これにより、 AWS DevOps Agent はターゲットサービスへの TLS 接続を信頼できます。

1. **[接続を作成]** を選択します。

接続ステータスが「進行中の**作成**」に変わります。このプロセスには最大 10 分かかる場合があります。ステータスが**アクティブ**に変わると、ネットワークパスの準備が整います。

ステータスが **Create failed** に変わった場合は、以下を確認します。
+ 指定したサブネットには使用可能な IP アドレスがあります。
+ アカウントが VPC Lattice サービスクォータに達していません。
+ 制限付きの IAM ポリシーでは、サービスにリンクされたロールがリソースを作成できません。

**注記**  
** これらのステップは、機能プロバイダーの登録`Create a new private connection`時に を選択して実行することもできます。詳細については、[「機能プロバイダーとのプライベート接続を使用する](#use-a-private-connection-with-a-capability-provider)」を参照してください。

### CLI AWS を使用してプライベート接続を作成する
<a name="create-a-private-connection-using-the-aws-cli"></a>

プライベート接続を作成するには、次のコマンドを実行します。プレースホルダの値を、独自の値に置き換えてください。

```
aws devops-agent create-private-connection \
    --name my-mcp-tool-connection \
    --mode '{
        "serviceManaged": {
            "hostAddress": "mcp.internal.example.com",
            "vpcId": "vpc-0123456789abcdef0",
            "subnetIds": [
                "subnet-0123456789abcdef0",
                "subnet-0123456789abcdef1"
            ],
            "securityGroupIds": [
                "sg-0123456789abcdef0"
            ],
            "portRanges": ["443"]
        }
    }'
```

レスポンスには、接続名と のステータスが含まれます`CREATE_IN_PROGRESS`。

```
{
    "name": "my-mcp-tool-connection",
    "status": "CREATE_IN_PROGRESS",
    "resourceGatewayId": "rgw-0123456789abcdef0",
    "hostAddress": "mcp.internal.example.com",
    "vpcId": "vpc-0123456789abcdef0"
}
```

接続ステータスを確認するには、 `describe-private-connection` コマンドを使用します。

```
aws devops-agent describe-private-connection \
    --name my-mcp-tool-connection
```

ステータスが の場合`ACTIVE`、プライベート接続を使用する準備が整います。

## 機能プロバイダーとのプライベート接続を使用する
<a name="use-a-private-connection-with-a-capability-provider"></a>

プライベート接続を使用するには、機能プロバイダーの登録中にプライベート接続にリンクできます。プライベート接続で使用できるサポート対象の機能には、`GitHub`、、`GitLab``MCP Server`、 などがあります`Grafana`。このステップは、 AWS マネジメントコンソールまたは CLI AWS を使用して実行できます。

**注記**  
** 機能プロバイダーを登録すると、 AWS DevOps Agent はエンドポイントに到達可能で応答していることを検証します。登録を完了する前に、ターゲットサービスが実行されていて、接続を受け入れていることを確認します。

### コンソールを使用して機能プロバイダーとのプライベート接続を使用する
<a name="use-a-private-connection-with-a-capability-provider-using-the-console"></a>

 AWS DevOps エージェントコンソールでは、「プライベート接続を使用してエンドポイントに接続する」オプションを選択して、登録中にプライベート接続を機能にリンクできます。

![](http://docs.aws.amazon.com/ja_jp/devopsagent/latest/userguide/images/a2a7ffb70ffe.png)


1.  AWS DevOps エージェントコンソールを開き、エージェントスペースに移動します。

1. **「機能プロバイダー**」セクションで、**「登録**」を選択します。

1. プライベート接続で使用する機能タイプの**登録**を選択します。

1. 登録の詳細ビューで、プライベート接続を使用して接続するエンドポイント URL を入力します (例: `https://mcp.internal.example.com`)。

1. **プライベート接続を使用してエンドポイントに接続する**を選択します。

1. 接続するエンドポイント URL に対応する既存のプライベート接続を選択するか、**新しいプライベート接続を作成する**を選択します。

1. 機能プロバイダーの登録プロセスを完了します。

**注記**  
** OAuth 認証 (クライアント認証情報または 3LO) を使用する機能プロバイダーのプライベート接続を選択すると、プライベート接続は機能プロバイダーエンドポイントとトークン交換エンドポイントの両方に適用されます。プライベート接続に、両方のエンドポイントにトラフィックをルーティングできるホストアドレスが設定されていることを確認します。

### AWS CLI を使用して機能プロバイダーとのプライベート接続を使用する
<a name="use-a-private-connection-with-a-capability-provider-using-the-aws-cli"></a>

引`private-connection-name`数を含めることで、プライベート接続に機能を登録できます。以下は、`my-mcp-tool-connection`プライベート接続を使用して API キー認可で MCP サーバーを登録する例です。プレースホルダの値を、独自の値に置き換えてください。

```
aws devops-agent register-service \
    --service mcpserver \
    --private-connection-name my-mcp-tool-connection \
    --service-details '{
        "mcpserver": {
            "name": "my-mcp-tool",
            "endpoint": "https://mcp.internal.example.com",
            "authorizationConfig": {
                "apiKey": {
                    "apiKeyName": "api-key",
                    "apiKeyValue": "secret-value",
                    "apiKeyHeader": "x-api-key"
                }
            }
        }
    }' \
    --region us-east-1
```

## プライベート接続を検証する
<a name="verify-a-private-connection"></a>

プライベート接続が**アクティブ**状態になり、機能プロバイダーによって利用されたら、 AWS DevOps Agent がターゲットサービスに到達できることを確認します。

1.  AWS DevOps エージェントコンソールを開き、エージェントスペースに移動します。

1. 新しいチャットセッションを開始します。

1. プライベート接続でバックアップされた統合を使用するコマンドを呼び出します。たとえば、MCP ツールが内部ナレッジベースへのアクセスを提供する場合は、そのナレッジベースを必要とする質問をエージェントに依頼します。

1. エージェントがプライベートサービスから結果を返すことを確認します。

接続が失敗した場合は、以下を確認してください。
+ **VPC Lattice 制限** - リソースゲートウェイやその他の [VPC Lattice クォータ](https://docs.aws.amazon.com/vpc-lattice/latest/ug/quotas.html)制限に達していないことを確認します。
+ **セキュリティグループルール** – ENIs にアタッチされたセキュリティグループが、サービスがリッスンするポートでアウトバウンドトラフィックを許可していることを確認します。また、サービスのセキュリティグループがターゲットポートでインバウンドトラフィックを許可していることを確認します。VPC CIDR 範囲内の VPC Lattice データプレーン IPs からトラフィックが到着します。セキュリティグループ参照 (ENI セキュリティグループをソースとして許可) を使用するか、VPC CIDR からのインバウンドを許可できます。
+ **サブネット接続** — 選択したサブネットがサービスにトラフィックをルーティングできることを確認します。サービスが別のサブネットで実行されている場合は、ルートテーブルがそれらの間のトラフィックを許可していることを確認します。
+ **サービスの可用性** – サービスが実行されており、予想されるポートで接続を受け入れていることを確認します。
+ **サポートされていないアベイラビリティーゾーン** - サブネットがサポートされているアベイラビリティーゾーンにあることを確認します。を実行して`aws ec2 describe-subnets --subnet-ids <your-subnet-ids> --query 'Subnets[*].[SubnetId,AvailabilityZoneId]'`、上記のサポートされていないアベイラビリティーゾーンと照合します。

## プライベート接続を削除する
<a name="delete-a-private-connection"></a>

未使用のプライベート接続は、 AWS マネジメントコンソールまたは CLI AWS を使用して削除できます。

### コンソールを使用してプライベート接続を削除する
<a name="delete-a-private-connection-using-the-console"></a>

1.  AWS DevOps エージェントコンソールを開きます。

1. ナビゲーションペインで、**機能プロバイダー**を選択し、**プライベート接続**を選択します。

1. 削除するプライベート接続の**アクション**メニューを選択し、**削除**を選択します。

プライベート接続のステータスは「接続の削除」と表示され、 AWS DevOps Agent は VPC からマネージドリソースゲートウェイと ENI を削除します。 ENIs 削除が完了すると、接続はプライベート接続のリストに表示されなくなります。

### CLI AWS を使用してプライベート接続を削除する
<a name="delete-a-private-connection-using-the-aws-cli"></a>

```
aws devops-agent delete-private-connection \
    --name my-mcp-tool-connection
```

レスポンスは ステータスを返します`DELETE_IN_PROGRESS`。 AWS DevOps Agent は VPC からマネージドリソースゲートウェイと ENIs を削除します。削除が完了すると、接続はプライベート接続のリストに表示されなくなります。

## 既存の VPC Lattice リソースを使用した高度なセットアップ
<a name="advanced-setup-using-existing-vpc-lattice-resources"></a>

組織がすでに Amazon VPC Lattice を使用していて、独自のリソース設定を管理している場合は、セルフマネージドモードでプライベート接続を作成できます。 AWS DevOps エージェントがリソースゲートウェイを作成する代わりに、ターゲットサービスを指す既存のリソース設定の Amazon リソースネーム (ARN) を指定します。

このアプローチは、次の場合に便利です。
+ リソースゲートウェイとリソース設定ライフサイクルを完全に制御したい。
+ 複数の AWS アカウントまたはサービス間でリソース設定を共有する必要があります。
+ 詳細なトラフィックモニタリングには、VPC Lattice アクセスログが必要です。
+ hub-and-spokeのネットワークアーキテクチャを実行します。

 AWS CLI を使用してセルフマネージドプライベート接続を作成するには:

```
aws devops-agent create-private-connection \
    --name my-advanced-connection \
    --mode '{
        "selfManaged": {
            "resourceConfigurationId": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-0123456789abcdef0"
        }
    }'
```

VPC Lattice リソースゲートウェイとリソース設定の設定の詳細については、[「Amazon VPC Lattice ユーザーガイド](https://docs.aws.amazon.com/vpc-lattice/latest/ug/)」を参照してください。

## 関連トピック
<a name="related-topics"></a>
+ [VPC エンドポイント (AWS PrivateLink)](aws-devops-agent-security-vpc-endpoints-aws-privatelink.md)
+ [MCP サーバーの接続](configuring-capabilities-for-aws-devops-agent-connecting-mcp-servers.md)
+ [AWS DevOps Agent の機能の設定](configuring-capabilities-for-aws-devops-agent.md)
+ [AWS DevOps エージェントセキュリティ](aws-devops-agent-security.md)
+ [DevOps エージェント IAM アクセス許可](aws-devops-agent-security-devops-agent-iam-permissions.md)