View a markdown version of this page

Konfigurasikan Otoritas Sertifikat Root untuk Penerjemah AgentCore Kode Batuan Dasar Amazon - Batuan Dasar Amazon AgentCore

Konfigurasikan Otoritas Sertifikat Root untuk Penerjemah AgentCore Kode Batuan Dasar Amazon

Secara default, sesi Amazon Bedrock AgentCore Code Interpreter hanya mempercayai otoritas sertifikat yang diakui publik. Jika agen Anda perlu mengakses layanan internal atau sumber daya di belakang TLS-intercepting proxy yang menggunakan sertifikat yang ditandatangani oleh CA pribadi, Anda harus memberikan sertifikat CA root kustom saat memulai sesi.

Amazon Bedrock AgentCore mengambil konten PEM-encoded sertifikat dari AWS Secrets Manager menggunakan kredenal pemanggil Anda, memvalidasi X.509 format dan kedaluwarsa, dan menginstal sertifikat ke toko kepercayaan OS sesi. Ini memungkinkan penerjemah kode untuk membuat koneksi HTTPS tepercaya ke sumber daya internal Anda.

Cara kerjanya

Otoritas Sertifikat Root untuk Amazon Bedrock AgentCore Code Interpreter berfungsi sebagai berikut:

  1. Anda memberikan daftar lokasi sertifikat, masing-masing menunjuk ke AWS rahasia di Secrets Manager yang berisi sertifikat CA PEM-encoded root.

  2. Amazon Bedrock AgentCore menggunakan kredensi pemanggil Anda untuk mengambil setiap sertifikat dari Secrets Manager. AWS

  3. Setiap sertifikat divalidasi untuk format X.509 PEM yang benar dan diperiksa untuk memastikan belum kedaluwarsa dan tidak digunakan sebelum tanggal mulai validitasnya.

  4. Sertifikat yang valid diterapkan ke toko kepercayaan OS sesi, membuatnya tersedia untuk runtime eksekusi kode dan klien jaringan apa pun di dalam kotak pasir.

Sertifikat yang dikonfigurasi pada tingkat alat (melaluiCreateCodeInterpreter) digabungkan dengan sertifikat apa pun yang disediakan pada waktu mulai sesi. Ini memungkinkan Anda untuk mengatur sertifikat seluruh organisasi pada alat dan menambahkan sertifikat khusus sesi sesuai kebutuhan.

catatan

Konfigurasi sertifikat adalah operasi satu kali per sesi. Setelah sertifikat diinstal, mereka tidak dapat dimodifikasi selama sesi itu.

Prasyarat

Sebelum mengonfigurasi sertifikat root CA, pastikan Anda memiliki yang berikut:

  • Menyelesaikan Prasyarat umum.

  • Sertifikat CA root Anda disimpan sebagai AWS rahasia di Secrets Manager. Setiap rahasia harus berisi PEM-encoded X.509 sertifikat yang valid

  • Izin IAM untuk membaca rahasia sertifikat dari AWS Secrets Manager. Tambahkan izin berikut ke kebijakan IAM Anda:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerCertificateAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:<Region>:<account-id>:secret:<secret-name>" } ] }

Simpan sertifikat Anda di AWS Secrets Manager

Sebelum Anda dapat menggunakan sertifikat CA root dengan Amazon Bedrock AgentCore Code Interpreter, Anda harus menyimpannya sebagai AWS rahasia di Secrets Manager. Nilai rahasia harus berupa konten PEM-encoded sertifikat.

contoh
AWS CLI
  1. aws secretsmanager create-secret \ --name "my-corporate-root-ca" \ --description "Corporate root CA certificate for AgentCore sessions" \ --secret-string file://my-root-ca.pem \ --region <region>
Boto3
  1. import boto3 client = boto3.client('secretsmanager', region_name='<region>') # Read the PEM certificate file with open('my-root-ca.pem', 'r') as f: cert_content = f.read() response = client.create_secret( Name='my-corporate-root-ca', Description='Corporate root CA certificate for AgentCore sessions', SecretString=cert_content ) print(f"Secret ARN: {response['ARN']}")

Perhatikan rahasia ARN dari output. Anda akan menggunakan ARN ini saat memulai sesi dengan konfigurasi sertifikat.

penting

Rahasianya harus berisi PEM-encoded X.509 sertifikat yang valid. Sertifikat tidak boleh kedaluwarsa dan harus dalam masa berlakunya. Amazon Bedrock AgentCore memvalidasi format sertifikat dan kedaluwarsa sebelum menginstalnya.

Mulai sesi penerjemah kode dengan sertifikat khusus

Untuk memulai sesi interpreter kode yang mempercayai sertifikat CA root kustom Anda, sertakan certificates parameter dalam permintaan AndaStartCodeInterpreterSession.

contoh
AWS CLI
  1. aws bedrock-agentcore start-code-interpreter-session \ --code-interpreter-identifier "aws.codeinterpreter.v1" \ --name "ci-session-with-custom-ca" \ --certificates '[ { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:<secret-name>" } } } ]'
Boto3
  1. import boto3 client = boto3.client('bedrock-agentcore', region_name='<region>') response = client.start_code_interpreter_session( codeInterpreterIdentifier="aws.codeinterpreter.v1", name="ci-session-with-custom-ca", certificates=[ { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:<secret-name>" } } } ] ) print(f"Session ID: {response['sessionId']}") print(f"Status: {response['status']}")
API
  1. { "name": "ci-session-with-custom-ca", "certificates": [ { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:<secret-name>" } } } ] }

Menggunakan beberapa sertifikat

Anda dapat memberikan beberapa sertifikat CA root dalam satu sesi penerjemah kode. Ini berguna ketika lingkungan Anda membutuhkan kepercayaan untuk beberapa otoritas sertifikat internal, seperti CA terpisah untuk layanan atau lingkungan internal yang berbeda.

contoh
AWS CLI
  1. aws bedrock-agentcore start-code-interpreter-session \ --code-interpreter-identifier "aws.codeinterpreter.v1" \ --name "ci-session-with-multiple-cas" \ --certificates '[ { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:corporate-root-ca" } } }, { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:proxy-ca" } } } ]'
Boto3
  1. response = client.start_code_interpreter_session( codeInterpreterIdentifier="aws.codeinterpreter.v1", name="ci-session-with-multiple-cas", certificates=[ { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:corporate-root-ca" } } }, { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:proxy-ca" } } } ] )

Konfigurasikan sertifikat di tingkat alat

Anda dapat mengonfigurasi sertifikat di tingkat alat saat membuat penerjemah kode khusus. Sertifikat yang dikonfigurasi pada tingkat alat secara otomatis diterapkan ke setiap sesi yang dimulai dengan alat itu, selain sertifikat apa pun yang diberikan pada waktu mulai sesi.

Ini berguna untuk sertifikat seluruh organisasi yang harus dipercaya oleh semua sesi penerjemah kode.

contoh
Boto3
  1. response = client.create_code_interpreter( name="corporate-code-interpreter", description="Code interpreter with corporate CA trust", certificates=[ { "location": { "secretsManager": { "secretArn": "arn:aws:secretsmanager:<region>:<account-id>:secret:corporate-root-ca" } } } ] ) ci_id = response['codeInterpreterIdentifier'] print(f"Code Interpreter ID: {ci_id}")

Saat Anda memulai sesi dengan penerjemah kode yang memiliki sertifikat yang dikonfigurasi, sertifikat tingkat alat digabungkan dengan sertifikat tingkat sesi apa pun. Tool-level sertifikat diterapkan terlebih dahulu, diikuti oleh sertifikat tingkat sesi.

Persyaratan dan batasan sertifikat

Sertifikat harus memenuhi persyaratan berikut:

Persyaratan Detail

Format

PEM-encoded X.509 sertifikat

Penyimpanan

AWS Rahasia Secrets Manager (sebagai nilai string, bukan biner)

Validitas

Sertifikat tidak boleh kedaluwarsa dan harus dalam masa berlakunya (antara notBefore dan notAfter tanggal)

Sertifikat maksimum per sesi

10 per sesi dan 10 per alat. Sebuah sesi dapat memiliki hingga 20 sertifikat secara total.

Format RAHASIA ARN

arn:aws:secretsmanager:region:account-id:secret:secret-name

Jenis lokasi

Hanya AWS Secrets Manager yang didukung sebagai lokasi sertifikat

Pemecahan masalah

Tabel berikut menjelaskan kesalahan umum dan resolusinya saat mengonfigurasi sertifikat CA root untuk Amazon Bedrock AgentCore Code Interpreter.

Kesalahan Penyebab Resolusi

Rahasia sertifikat tidak ditemukan di Secrets Manager

Rahasia ARN tidak ada atau rahasianya telah dihapus.

Verifikasi rahasia ARN benar dan rahasianya ada di Wilayah yang ditentukan.

Akses ditolak ke rahasia sertifikat di Secrets Manager

Penelepon tidak memiliki secretsmanager:GetSecretValue izin pada rahasia.

Tambahkan secretsmanager:GetSecretValue izin ke kebijakan IAM Anda untuk ARN rahasia yang ditentukan.

Konten sertifikat bukan PEM/X.509 format yang valid

Nilai rahasia bukanlah PEM-encoded X.509 sertifikat yang valid.

Pastikan rahasia berisi sertifikat PEM yang diformat dengan benar dimulai dengan -----BEGIN CERTIFICATE----- dan diakhiri dengan. -----END CERTIFICATE-----

Sertifikat telah kedaluwarsa

notAfterTanggal sertifikat sudah di masa lalu.

Ganti sertifikat kedaluwarsa dengan yang valid di AWS Secrets Manager dan coba lagi.

Sertifikat belum valid

notBeforeTanggal sertifikat ada di masa depan.

Tunggu hingga masa berlaku sertifikat dimulai, atau gunakan sertifikat yang saat ini valid.

Jumlah sertifikat melebihi maksimum yang diizinkan

Lebih dari 10 sertifikat diberikan di tingkat sesi atau tingkat alat.

Kurangi jumlah sertifikat menjadi 10 atau kurang per sesi dan 10 atau kurang per alat.

Lokasi sertifikat diperlukan

Entri sertifikat diberikan tanpa lokasi.

Pastikan setiap sertifikat dalam array menyertakan location dengan secretsManager entri yang berisi validsecretArn.

Konfigurasi sertifikat tidak diaktifkan

Fitur sertifikat tidak diaktifkan untuk akun Anda.

Hubungi AWS Support untuk mengaktifkan fitur sertifikat untuk akun Anda.