

# プライベート ID プロバイダーに接続する
<a name="identity-private-idp"></a>

Amazon Bedrock AgentCore Identity は、セルフホスト型 Keycloak、PingFederate、またはその他の OIDC 準拠の認可サーバーなど、 AWS VPC 内でホストされている OAuth 2.0 ID プロバイダー (IdPs) への接続をサポートしています。パブリックインターネットに公開されることはありません。これにより、AgentCore Runtime と AgentCore Gateway によるインバウンド JWT 認可と、アウトバウンド OAuth2 認証情報プロバイダーの両方にプライベート IdPs を使用できます。

VPC がホストIdPs へのプライベート接続は、[Amazon VPC Lattice ](https://docs.aws.amazon.com/vpc-lattice/latest/ug/what-is-vpc-lattice.html)リソースゲートウェイとリソース設定を使用して確立され、[AgentCore Gateway VPC 出力](gateway-vpc-egress.md)で使用されるのと同じパターンに従います。AgentCore Identity は、`AWSServiceRoleForBedrockAgentCoreIdentity`サービスにリンクされたロールを使用して、IdP エンドポイントへのプライベート接続のために、アカウント内の VPC Lattice リソースを作成および管理します。

**重要**  
AgentCore は、マネージド Lattice (シンプル、AgentCore ****がリソースライフサイクルを処理する) と**セルフマネージド Lattice (アドバンスド、クロスアカウントサポートと完全なガバナンス可視性) の 2 つの VPC Lattice** 接続モードをサポートします。各モードには、複雑さ、コスト、制御に関するさまざまなトレードオフがあります。長所と短所の詳細な比較については、[「サポートされている VPC 出力モード](vpc-egress-private-endpoints.md#lattice-vpc-egress-compare-modes)」を参照してください。

## ユースケース
<a name="private-idp-use-cases"></a>

プライベート ID プロバイダーは、組織が以下を行うエンタープライズ環境で一般的です。
+ コンプライアンス要件またはデータレジデンシー要件のために、VPC 内でセルフホスト認可サーバーを実行する
+ パブリックにアクセスできないプライベート OIDC 検出エンドポイントを使用する
+ すべての認証トラフィックがパブリックインターネットを経由せずに AWS ネットワーク内にとどまるように要求する

## プライベート IdP を使用したインバウンド JWT 認可
<a name="private-idp-inbound-auth"></a>

AgentCore Runtime または AgentCore Gateway のインバウンド JWT 認可を設定すると、オーソライザーは検出 URL を使用して IdP のパブリックキー (JWKS) を取得し、受信 JWT トークンを検証します。IdP が VPC 内でホストされていて、検出 URL にパブリックにアクセスできない場合は、AgentCore Identity が IdP の OIDC 検出エンドポイントと JWKS エンドポイントに到達できるようにプライベートエンドポイントを設定する必要があります。

### プライベート IdP を使用してインバウンド認可を設定する
<a name="private-idp-inbound-config"></a>

プライベート IdP を使用してインバウンド JWT 認可を設定するには、AgentCore ランタイムまたはゲートウェイを作成または更新するときに、オーソライザー設定に `privateEndpoint`ブロックを含めます。

 **例: CreateAgentRuntime とインバウンド認証のプライベート IdP ** 

```
{
  "agentRuntimeName": "my-runtime",
  "authorizerConfiguration": {
    "customJWTAuthorizer": {
      "discoveryUrl": "https://idp.internal.example.com/.well-known/openid-configuration",
      "allowedAudiences": [
        "my-agent-audience"
      ],
      "allowedClients": [
        "my-client-id"
      ],
      "privateEndpoint": {
        "managedVpcResource": {
          "vpcIdentifier": "vpc-0abc123def456",
          "subnetIds": [
            "subnet-0abc123",
            "subnet-0def456"
          ],
          "endpointIpAddressType": "IPV4",
          "securityGroupIds": [
            "sg-0abc123def"
          ]
        }
      }
    }
  }
}
```

 **例: インバウンド認証のプライベート IdP を使用した CreateGateway IdP ** 

```
{
  "name": "my-gateway",
  "authorizerConfiguration": {
    "customJWTAuthorizer": {
      "discoveryUrl": "https://idp.internal.example.com/.well-known/openid-configuration",
      "allowedAudiences": [
        "my-gateway-audience"
      ],
      "allowedClients": [
        "my-client-id"
      ],
      "privateEndpoint": {
        "managedVpcResource": {
          "vpcIdentifier": "vpc-0abc123def456",
          "subnetIds": [
            "subnet-0abc123",
            "subnet-0def456"
          ],
          "endpointIpAddressType": "IPV4",
          "securityGroupIds": [
            "sg-0abc123def"
          ]
        }
      }
    }
  }
}
```

IdP がプライベート認証機関によって発行された TLS 証明書を使用している場合は、内部 Application Load Balancer の前にパブリック ACM 証明書を配置できます。詳細については、[「プライベート証明書の回避策: ALB](vpc-egress-private-endpoints.md#lattice-vpc-egress-private-certs)」を参照してください。

セルフマネージド Lattice の場合は、 `managedVpcResource`を に置き換えます`selfManagedLatticeResource`。

 **例: インバウンド認証用のセルフマネージド Lattice を使用した CreateAgentRuntime ** 

```
{
  "agentRuntimeName": "my-runtime",
  "authorizerConfiguration": {
    "customJWTAuthorizer": {
      "discoveryUrl": "https://idp.internal.example.com/.well-known/openid-configuration",
      "allowedAudiences": [
        "my-agent-audience"
      ],
      "allowedClients": [
        "my-client-id"
      ],
      "privateEndpoint": {
        "selfManagedLatticeResource": {
          "resourceConfigurationIdentifier": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-abc123"
        }
      }
    }
  }
}
```

 **例: インバウンド認証用のセルフマネージド Lattice を使用した CreateGateway ** 

```
{
  "name": "my-gateway",
  "authorizerConfiguration": {
    "customJWTAuthorizer": {
      "discoveryUrl": "https://idp.internal.example.com/.well-known/openid-configuration",
      "allowedAudiences": [
        "my-gateway-audience"
      ],
      "allowedClients": [
        "my-client-id"
      ],
      "privateEndpoint": {
        "selfManagedLatticeResource": {
          "resourceConfigurationIdentifier": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-abc123"
        }
      }
    }
  }
}
```

## プライベート IdP を使用するアウトバウンド OAuth 認証情報プロバイダー
<a name="private-idp-outbound-auth"></a>

プライベート IdP を使用するアウトバウンド OAuth2 認証情報プロバイダーを設定する場合、AgentCore Identity は IdP のトークンエンドポイントに到達して、アクセストークンの認可コードを交換したり、クライアント認証情報の付与を実行したりする必要があります。IdP のトークンエンドポイントが VPC 内でホストされている場合は、認証情報プロバイダーでプライベートエンドポイントを設定する必要があります。

### プライベート IdP を使用してアウトバウンド認証情報プロバイダーを設定する
<a name="private-idp-outbound-config"></a>

プライベート IdP を使用してアウトバウンド OAuth 認証情報プロバイダーを設定するには、手動設定のカスタムプロバイダーを使用して認証情報プロバイダーを作成するときに `privateEndpoint`ブロックを含めます。

 **例: プライベート IdP を使用して OAuth 認証情報プロバイダーを作成する** 

```
{
  "name": "my-private-idp-provider",
  "credentialProviderType": "OAUTH",
  "oauthCredentialProvider": {
    "providerType": "CUSTOM",
    "customProviderConfiguration": {
      "issuer": "https://idp.internal.example.com/realms/my-realm",
      "authorizationEndpoint": "https://idp.internal.example.com/realms/my-realm/protocol/openid-connect/auth",
      "tokenEndpoint": "https://idp.internal.example.com/realms/my-realm/protocol/openid-connect/token"
    },
    "clientId": "my-client-id",
    "clientSecret": "my-client-secret",
    "privateEndpoint": {
      "managedVpcResource": {
        "vpcIdentifier": "vpc-0abc123def456",
        "subnetIds": [
          "subnet-0abc123",
          "subnet-0def456"
        ],
        "endpointIpAddressType": "IPV4",
        "securityGroupIds": [
          "sg-0abc123def"
        ]
      }
    }
  }
}
```

セルフマネージド Lattice の場合は、 `managedVpcResource`を に置き換えます`selfManagedLatticeResource`。

```
{
  "name": "my-private-idp-provider",
  "credentialProviderType": "OAUTH",
  "oauthCredentialProvider": {
    "providerType": "CUSTOM",
    "customProviderConfiguration": {
      "issuer": "https://idp.internal.example.com/realms/my-realm",
      "authorizationEndpoint": "https://idp.internal.example.com/realms/my-realm/protocol/openid-connect/auth",
      "tokenEndpoint": "https://idp.internal.example.com/realms/my-realm/protocol/openid-connect/token"
    },
    "clientId": "my-client-id",
    "clientSecret": "my-client-secret",
    "privateEndpoint": {
      "selfManagedLatticeResource": {
        "resourceConfigurationIdentifier": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-abc123"
      }
    }
  }
}
```

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

プライベート ID プロバイダーを設定する前に、以下を確認してください。
+ ID プロバイダーが実行されており、VPC 内でアクセス可能です。
+ IdP の OIDC 検出エンドポイント ( `/.well-known/openid-configuration` )、JWKS エンドポイント、トークンエンドポイントは、指定されたサブネットからアクセスできます。
+ セキュリティグループは、IdP で使用されるポート (通常は HTTPS 用のポート 443) でのインバウンドトラフィックを許可します。
+ マネージド Lattice の場合、AgentCore がユーザーに代わって Identity Network サービスにリンクされたロールを作成できるように、IAM プリンシパルには アクセス`iam:CreateServiceLinkedRole`許可が必要です。必要な IAM ポリシーについては、[「Identity Network サービスにリンクされたロール](service-linked-roles.md#identity-network-service-linked-role)」を参照してください。
+ マネージド Lattice の場合、IAM プリンシパルには Amazon EC2 アクセス許可`ec2:CreateNetworkInterface`も必要です。

## プライベート ID プロバイダーのサービスにリンクされたロール
<a name="private-idp-slr"></a>

ID プロバイダーのプライベートエンドポイントを設定すると、AgentCore Identity は`AWSServiceRoleForBedrockAgentCoreIdentity`サービスにリンクされたロールを使用して VPC ホスト IdP への接続を管理します。このロールは、IAM プリンシパルが必要な`iam:CreateServiceLinkedRole`アクセス許可を持っている場合、ID プロバイダーのマネージドプライベートエンドポイントを初めて設定するときに自動的に作成されます。

ポリシードキュメント全体と、このロールを作成、編集、削除する手順については、[「Identity Network サービスにリンクされたロール](service-linked-roles.md#identity-network-service-linked-role)」を参照してください。

## 制約事項と考慮事項
<a name="private-idp-limitations"></a>
+  **検出 URL は HTTPS である必要があります**。IdP の OIDC 検出 URL は HTTPS を使用する必要があります。HTTP エンドポイントはサポートされていません。
+  **プライベート証明書** : IdP はパブリックに信頼された TLS 証明書を使用するか、ALB の前にパブリック ACM 証明書を配置する必要があります。詳細については、[「プライベート証明書の回避策: ALB](vpc-egress-private-endpoints.md#lattice-vpc-egress-private-certs)」を参照してください。
+  **クロスアカウント** : クロスアカウントプライベート IdP 接続には、セルフマネージド Lattice オプションが必要です。Managed Lattice は、クロスアカウントシナリオをサポートしていません。

VPC Lattice 接続に関するその他の制限については、「VPC [Lattice を使用して VPC 内のプライベートリソースに接続する](vpc-egress-private-endpoints.md)」の[「制限と考慮事項](vpc-egress-private-endpoints.md#lattice-vpc-egress-limitations)」を参照してください。