Connect ke penyedia identitas pribadi
Amazon Bedrock AgentCore Identity mendukung koneksi ke penyedia identitas OAuth 2.0 (IdPs) yang dihosting di dalam AWS VPC Anda, seperti Keycloak yang dihosting sendiri,, atau server OIDC-compliant otorisasi lainnya PingFederate, tanpa memaparkannya ke internet publik. Ini memungkinkan Anda untuk menggunakan privat IdPs untuk otorisasi JWT masuk dengan AgentCore Runtime dan AgentCore Gateway serta penyedia kredensi OAuth2 keluar.
Konektivitas pribadi ke VPC yang IdPs dihosting dibuat menggunakan gateway sumber daya Amazon VPC Lattice dan konfigurasi sumber daya, mengikuti pola yang sama yang digunakan oleh jalan keluar VPC Gateway. AgentCore AgentCore Identity menggunakan peran AWSServiceRoleForBedrockAgentCoreIdentity terkait layanan untuk membuat dan mengelola resource VPC Lattice di akun Anda untuk konektivitas pribadi ke endpoint iDP Anda.
penting
AgentCore mendukung dua mode konektivitas VPC Lattice — Kisi terkelola (lebih sederhana, AgentCore menangani siklus hidup sumber daya) dan Kisi yang dikelola sendiri (lanjutan, dengan dukungan lintas akun dan visibilitas tata kelola penuh). Setiap mode memiliki trade-off yang berbeda untuk kompleksitas, biaya, dan kontrol. Untuk perbandingan mendetail dengan pro dan kontra, lihat Mode keluar VPC yang didukung.
Kasus penggunaan
Penyedia identitas pribadi umum di lingkungan perusahaan di mana organisasi:
-
Jalankan server otorisasi yang di-host sendiri di dalam VPC mereka untuk kepatuhan atau persyaratan residensi data
-
Gunakan titik akhir penemuan OIDC pribadi yang tidak dapat diakses publik
-
Memerlukan semua lalu lintas otentikasi untuk tetap berada dalam AWS jaringan tanpa melintasi internet publik
Otorisasi JWT masuk dengan iDP pribadi
Saat Anda mengonfigurasi otorisasi JWT masuk untuk AgentCore Runtime atau AgentCore Gateway, otorisasi menggunakan URL penemuan untuk mengambil kunci publik iDP (JWKS) dan memvalidasi token JWT yang masuk. Jika IDP Anda di-host di dalam VPC dan URL penemuan tidak dapat diakses publik, Anda harus mengonfigurasi titik akhir pribadi sehingga Identity AgentCore dapat mencapai penemuan OIDC iDP dan titik akhir JWKS.
Konfigurasikan otorisasi masuk dengan IDP pribadi
Untuk mengonfigurasi otorisasi JWT masuk dengan iDP pribadi, sertakan privateEndpoint blok dalam konfigurasi otorisasi saat membuat atau memperbarui Runtime atau Gateway Anda. AgentCore
Contoh: CreateAgentRuntime dengan iDP pribadi untuk autentikasi masuk
{ "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" ] } } } } }
Contoh: CreateGateway dengan iDP pribadi untuk autentikasi masuk
{ "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" ] } } } } }
Jika IDP Anda menggunakan sertifikat TLS yang dikeluarkan oleh otoritas sertifikat swasta, Anda dapat menempatkan Application Load Balancer internal dengan sertifikat ACM publik di depannya. Untuk informasi selengkapnya, lihat Solusi untuk sertifikat pribadi: ALB.
Untuk kisi yang dikelola sendiri, ganti managedVpcResource dengan: selfManagedLatticeResource
Contoh: CreateAgentRuntime dengan Kisi yang dikelola sendiri untuk autentikasi masuk
{ "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" } } } } }
Contoh: CreateGateway dengan Kisi yang dikelola sendiri untuk autentikasi masuk
{ "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" } } } } }
Penyedia kredensi OAuth keluar dengan IDP pribadi
Saat Anda mengonfigurasi penyedia kredensi OAuth2 keluar yang menggunakan iDP pribadi, Identity AgentCore perlu mencapai titik akhir token iDP untuk bertukar kode otorisasi dengan token akses atau untuk melakukan hibah kredensyal klien. Jika titik akhir token iDP di-host di dalam VPC Anda, Anda harus mengonfigurasi titik akhir pribadi pada penyedia kredensi.
Konfigurasikan penyedia kredensi keluar dengan iDP pribadi
Untuk mengonfigurasi penyedia kredensi OAuth keluar dengan IDP pribadi, sertakan privateEndpoint pemblokiran saat membuat penyedia kredensi menggunakan penyedia kustom dengan konfigurasi manual.
Contoh: Buat penyedia kredensi OAuth dengan IDP pribadi
{ "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" ] } } } }
Untuk kisi yang dikelola sendiri, ganti managedVpcResource dengan: 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" } } } }
Prasyarat
Sebelum mengonfigurasi penyedia identitas pribadi, pastikan hal berikut:
-
Penyedia identitas Anda berjalan dan dapat diakses dalam VPC Anda.
-
Titik akhir penemuan OIDC (
/.well-known/openid-configuration) IdP, titik akhir JWKS, dan titik akhir token dapat dijangkau dari subnet yang ditentukan. -
Grup keamanan Anda mengizinkan lalu lintas masuk pada port yang digunakan oleh iDP Anda (biasanya port 443 untuk HTTPS).
-
Untuk Kisi terkelola, kepala sekolah IAM Anda harus memiliki
iam:CreateServiceLinkedRoleizin sehingga AgentCore dapat membuat peran terkait layanan Jaringan Identity atas nama Anda. Untuk kebijakan IAM yang diperlukan, lihat Peran terkait layanan Jaringan Identitas. -
Untuk Kisi terkelola, prinsipal IAM Anda memerlukan izin
ec2:CreateNetworkInterfaceAmazon EC2 berikut: juga.
Service-linked peran untuk penyedia identitas pribadi
Saat Anda mengonfigurasi titik akhir pribadi untuk penyedia identitas, AgentCore Identity menggunakan peran AWSServiceRoleForBedrockAgentCoreIdentity terkait layanan untuk mengelola konektivitas ke IDP yang dihosting VPC Anda. Peran ini dibuat secara otomatis saat pertama kali Anda mengonfigurasi titik akhir pribadi terkelola untuk penyedia identitas, asalkan prinsipal IAM Anda memiliki izin yang diperlukaniam:CreateServiceLinkedRole.
Untuk dokumen kebijakan lengkap dan instruksi untuk membuat, mengedit, dan menghapus peran ini, lihat Peran terkait layanan Jaringan Identitas.
Pertimbangan dan batasan
-
URL Discovery harus HTTPS: URL penemuan OIDC iDP harus menggunakan HTTPS. Titik akhir HTTP tidak didukung.
-
Sertifikat pribadi: IDP Anda harus menggunakan sertifikat TLS yang dipercaya publik, atau Anda harus menempatkan ALB dengan sertifikat ACM publik di depannya. Untuk informasi selengkapnya, lihat Solusi untuk sertifikat pribadi: ALB.
-
Cross-account: konektivitas iDP Cross-account pribadi memerlukan opsi Lattice yang dikelola sendiri. Managed Lattice tidak mendukung skenario lintas akun.
Untuk batasan tambahan terkait konektivitas VPC Lattice, lihat Batasan dan pertimbangan di Connect to private resources di VPC menggunakan VPC Lattice.