プライベート ID プロバイダーに接続する
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 リソースゲートウェイとリソース設定を使用して確立され、AgentCore Gateway VPC 出力で使用されるのと同じパターンに従います。AgentCore Identity は、AWSServiceRoleForBedrockAgentCoreIdentityサービスにリンクされたロールを使用して、IdP エンドポイントへのプライベート接続のために、アカウント内の VPC Lattice リソースを作成および管理します。
重要
AgentCore は、マネージド Lattice (シンプル、AgentCore がリソースライフサイクルを処理する) とセルフマネージド Lattice (アドバンスド、クロスアカウントサポートと完全なガバナンス可視性) の 2 つの VPC Lattice 接続モードをサポートします。各モードには、複雑さ、コスト、制御に関するさまざまなトレードオフがあります。長所と短所の詳細な比較については、「サポートされている VPC 出力モード」を参照してください。
ユースケース
プライベート ID プロバイダーは、組織が以下を行うエンタープライズ環境で一般的です。
-
コンプライアンス要件またはデータレジデンシー要件のために、VPC 内でセルフホスト認可サーバーを実行する
-
パブリックにアクセスできないプライベート OIDC 検出エンドポイントを使用する
-
すべての認証トラフィックがパブリックインターネットを経由せずに AWS ネットワーク内にとどまるように要求する
プライベート IdP を使用したインバウンド JWT 認可
AgentCore Runtime または AgentCore Gateway のインバウンド JWT 認可を設定すると、オーソライザーは検出 URL を使用して IdP のパブリックキー (JWKS) を取得し、受信 JWT トークンを検証します。IdP が VPC 内でホストされていて、検出 URL にパブリックにアクセスできない場合は、AgentCore Identity が IdP の OIDC 検出エンドポイントと JWKS エンドポイントに到達できるようにプライベートエンドポイントを設定する必要があります。
プライベート IdP を使用してインバウンド認可を設定する
プライベート 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」を参照してください。
セルフマネージド 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 認証情報プロバイダー
プライベート IdP を使用するアウトバウンド OAuth2 認証情報プロバイダーを設定する場合、AgentCore Identity は IdP のトークンエンドポイントに到達して、アクセストークンの認可コードを交換したり、クライアント認証情報の付与を実行したりする必要があります。IdP のトークンエンドポイントが VPC 内でホストされている場合は、認証情報プロバイダーでプライベートエンドポイントを設定する必要があります。
プライベート IdP を使用してアウトバウンド認証情報プロバイダーを設定する
プライベート 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" } } } }
前提条件
プライベート ID プロバイダーを設定する前に、以下を確認してください。
-
ID プロバイダーが実行されており、VPC 内でアクセス可能です。
-
IdP の OIDC 検出エンドポイント (
/.well-known/openid-configuration)、JWKS エンドポイント、トークンエンドポイントは、指定されたサブネットからアクセスできます。 -
セキュリティグループは、IdP で使用されるポート (通常は HTTPS 用のポート 443) でのインバウンドトラフィックを許可します。
-
マネージド Lattice の場合、AgentCore がユーザーに代わって Identity Network サービスにリンクされたロールを作成できるように、IAM プリンシパルには アクセス
iam:CreateServiceLinkedRole許可が必要です。必要な IAM ポリシーについては、「Identity Network サービスにリンクされたロール」を参照してください。 -
マネージド Lattice の場合、IAM プリンシパルには Amazon EC2 アクセス許可
ec2:CreateNetworkInterfaceも必要です。
プライベート ID プロバイダーのサービスにリンクされたロール
ID プロバイダーのプライベートエンドポイントを設定すると、AgentCore Identity はAWSServiceRoleForBedrockAgentCoreIdentityサービスにリンクされたロールを使用して VPC ホスト IdP への接続を管理します。このロールは、IAM プリンシパルが必要なiam:CreateServiceLinkedRoleアクセス許可を持っている場合、ID プロバイダーのマネージドプライベートエンドポイントを初めて設定するときに自動的に作成されます。
ポリシードキュメント全体と、このロールを作成、編集、削除する手順については、「Identity Network サービスにリンクされたロール」を参照してください。
制約事項と考慮事項
-
検出 URL は HTTPS である必要があります。IdP の OIDC 検出 URL は HTTPS を使用する必要があります。HTTP エンドポイントはサポートされていません。
-
プライベート証明書 : IdP はパブリックに信頼された TLS 証明書を使用するか、ALB の前にパブリック ACM 証明書を配置する必要があります。詳細については、「プライベート証明書の回避策: ALB」を参照してください。
-
クロスアカウント : クロスアカウントプライベート IdP 接続には、セルフマネージド Lattice オプションが必要です。Managed Lattice は、クロスアカウントシナリオをサポートしていません。
VPC Lattice 接続に関するその他の制限については、「VPC Lattice を使用して VPC 内のプライベートリソースに接続する」の「制限と考慮事項」を参照してください。