View a markdown version of this page

Siapkan izin untuk AgentCore Gateway - Batuan Dasar Amazon AgentCore

Siapkan izin untuk AgentCore Gateway

Untuk menggunakan Amazon Bedrock AgentCore Gateway dan kemampuannya, Anda harus mempertimbangkan izin berikut:

  1. builder/user Izin Gateway — Izin yang diberikan kepada pembuat gateway atau pengguna untuk memungkinkannya membuat, mengelola, dan atau menggunakan AgentCore gateway.

  2. Izin peran layanan Gateway — Izin yang diberikan ke peran layanan yang akan Anda buat untuk gateway Anda. Izin ini memungkinkan AgentCore layanan Amazon Bedrock untuk melakukan tindakan atas nama identitas yang memanggil gateway.

  3. Resource-based izin — Izin yang dilampirkan ke sumber daya untuk memungkinkan peran layanan gateway mengaksesnya. Anda akan menyertakan Amazon Resource Name (ARN) dari peran layanan gateway sebagai kebijakan berbasis Principal sumber daya.

  4. Kebijakan berbasis sumber daya Gateway — Kebijakan yang dilampirkan langsung ke sumber daya gateway Anda untuk mengontrol prinsipal mana yang dapat memanggilnya. Untuk informasi selengkapnya, lihat Resource-based kebijakan untuk Amazon Bedrock AgentCore.

catatan

Jika Anda memilih untuk tidak menyiapkan izin khusus, Anda dapat menggunakan opsi berikut untuk pengaturan yang mudah: * Lampirkan BedrockAgentCoreFullAccesske identitas IAM untuk memungkinkannya membuat, mengelola, dan memanggil gateway. * Gunakan Konsol AWS Manajemen atau AgentCore CLI untuk membuat peran layanan AgentCore gateway dengan izin dan target gateway yang tepat dengan kebijakan berbasis sumber daya yang tepat untuk memungkinkan peran layanan mengaksesnya.

Pilih topik untuk mempelajari lebih lanjut:

Pembuat gateway dan izin pengguna

Agar identitas dapat membuat, mengelola, atau menggunakan gateway, Anda perlu melampirkan kebijakan berbasis identitas ke identitas IAM untuk memungkinkannya melakukan tindakan Amazon Bedrock. AgentCore-related Untuk izin komprehensif, Anda dapat menggunakan kebijakan BedrockAgentCoreFullAccessterkelola.

Untuk keamanan dan kontrol yang lebih baik, Anda dapat membuat kebijakan kustom sendiri dengan mengurangi izin dalam kebijakan akses penuh. Misalnya, kebijakan berikut memungkinkan identitas untuk melakukan tindakan yang terkait dengan AgentCore Gateway tetapi tidak dengan AgentCore layanan lain, seperti AgentCore Runtime atau AgentCore Browser:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:*Gateway*", "bedrock-agentcore:*WorkloadIdentity", "bedrock-agentcore:*CredentialProvider", "bedrock-agentcore:*Token*", "bedrock-agentcore:*Access*" ], "Resource": "arn:aws:bedrock-agentcore:*:*:*gateway*" } ] }
Kebijakan kustom berikut adalah kebijakan yang lebih ketat yang hanya mengizinkan akses baca ke gateway dan target gateway
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:ListGateways", "bedrock-agentcore:GetGateway", "bedrock-agentcore:ListGatewayTargets", "bedrock-agentcore:GetGatewayTarget" ], "Resource": "arn:aws:bedrock-agentcore:*:*:*gateway*" } ] }

Izin akses gateway (otorisasi masuk)

Selain izin terkait gateway, Anda juga perlu mengonfigurasi izin untuk identitas agar dapat mengakses gateway selama pemanggilan. Anda akan mengonfigurasi izin ini saat menyiapkan otorisasi masuk.

AgentCore Izin peran layanan gateway

Saat membuat gateway, Anda memerlukan peran layanan yang memiliki izin untuk mengambil peran IAM dan mengakses AWS sumber daya dan layanan eksternal atas nama peran IAM. Anda dapat membuat peran layanan dengan cara berikut:

  • Jika Anda membuat gateway di Konsol AWS Manajemen atau melalui AgentCore CLI, Anda dapat memilih untuk AgentCore secara otomatis membuat peran layanan untuk Anda dengan izin yang diperlukan. Jika Anda lebih suka metode ini, Anda dapat melewati prasyarat ini.

  • Jika Anda lebih suka membuat peran layanan Anda sendiri untuk penyesuaian yang lebih besar, Anda harus mengonfigurasi peran dengan izin yang diuraikan dalam topik ini. Untuk mempelajari cara membuat peran layanan dan melampirkan izin padanya, lihat Membuat peran untuk mendelegasikan izin ke layanan. AWS

Izin yang diperlukan untuk peran layanan ada dalam topik berikut:

Izin kepercayaan

Peran layanan harus memiliki kebijakan kepercayaan yang dilampirkan yang memungkinkan AgentCore layanan untuk mengambil identitas IAM dan melakukan tindakan atas namanya.

Berikut ini adalah contoh kebijakan kepercayaan yang dapat Anda gunakan.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "GatewayAssumeRolePolicy", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:gateway/gateway-name-*" } } } ] }
catatan

Karena Anda tidak akan mengetahui ARN gateway sebelum membuatnya, Anda dapat menghilangkan Condition bidang saat pertama kali membuat peran layanan. Setelah Anda membuat gateway, tambahkan kembali Condition bidang ke kebijakan sebagai praktik keamanan terbaik dan lakukan hal berikut: * Ganti nilai kunci aws:SourceAccount kondisi dengan ID akun yang menjadi milik gateway. * Ganti tombol aws:SourceArn kondisi dengan ARN gateway.

Izin otorisasi keluar

Bergantung pada jenis otorisasi keluar yang Anda gunakan untuk target gateway, Anda perlu menambahkan izin ke peran layanan untuk memungkinkannya memanggil target. Izin ini memungkinkan peran layanan gateway untuk mengambil kredensi otorisasi untuk memanggil target. Anda dapat melakukan ini dalam proses pengaturan otorisasi keluar.

Izin untuk mengakses AWS sumber daya

Bergantung pada pengaturan gateway atau target yang Anda pilih untuk ditambahkan ke gateway, Anda mungkin perlu menambahkan izin ke peran layanan gateway untuk memungkinkannya mengakses AWS sumber daya. Topik berikut mencakup beberapa sumber daya yang mungkin perlu diakses oleh peran layanan gateway Anda:

Jika Anda melampirkan target Lambda ke gateway, Anda perlu menambahkan izin untuk peran layanan AgentCore Gateway agar dapat menjalankan fungsi dengan melakukan hal berikut:

  • Lampirkan kebijakan berbasis identitas ke peran layanan AgentCore Gateway yang memungkinkan lambda:InvokeFunction tindakan pada sumber daya fungsi Lambda.

  • (Jika fungsi berada di akun yang berbeda dari peran layanan gateway) Lampirkan kebijakan berbasis sumber daya ke fungsi Lambda yang memungkinkan prinsipal peran layanan gateway untuk melakukan tindakan lambda:InvokeFunction pada sumber daya fungsi Lambda.

Pilih topik untuk mempelajari cara mengatur izin:

Topik

    ===== Melampirkan kebijakan berbasis identitas ke peran layanan gateway

    Untuk mengizinkan peran layanan gateway mengakses target Lambda, lampirkan kebijakan berbasis identitas berikut ke peran layanan AgentCore Gateway Anda dengan memilih topik di Menambahkan dan menghapus izin identitas IAM yang berkaitan dengan kasus penggunaan Anda dan mengikuti langkah-langkahnya..

    { "Version": "2012-10-17", "Statement": [{ "Sid": "AmazonBedrockAgentCoreGatewayLambdaProd", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:us-east-1:123456789012:function:FunctionName" ] }] }

    Ganti ARN di Resource lapangan dengan ARN target gateway fungsi Lambda Anda. Jika gateway Anda memiliki beberapa target Lambda, Anda dapat menambahkan ARN dari setiap fungsi ke daftar. Resource

    ===== (Jika fungsi ada di akun lain) Lampirkan kebijakan berbasis sumber daya ke fungsi Lambda

    Jika target fungsi Lambda berada di akun yang berbeda dari peran layanan gateway, Anda perlu melampirkan kebijakan berbasis sumber daya untuk mengizinkan peran layanan gateway mengaksesnya. Berikut ini adalah contoh kebijakan yang dapat Anda gunakan:

    { "Version":"2012-10-17", "Statement": [ { "Sid": "LambdaAllowGatewayServiceRoleMyFunction", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/MyGatewayExecutionRole" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:MyFunction" } ] }

    Ganti nilai bidang berikut:

    • AWS— Gunakan ARN peran layanan gateway Anda.

    • Resource— Gunakan ARN fungsi Lambda Anda.

      Untuk mempelajari cara melampirkan kebijakan berbasis sumber daya ke fungsi Lambda yang memungkinkan peran layanan gateway Anda mengakses fungsi, pilih salah satu metode berikut
    Console
    1. ====== Untuk melampirkan kebijakan berbasis sumber daya ke fungsi Lambda Anda di Konsol Manajemen AWS

    2. Ikuti langkah-langkah di tab Konsol di Melihat kebijakan IAM berbasis sumber daya di Lambda.

    3. Di bagian pernyataan Resource-based kebijakan, pilih Tambahkan izin.

    4. Pilih AWS akun dan isi kolom berikut:

      • ID Pernyataan — Pengidentifikasi unik untuk pernyataan yang memberikan izin untuk peran layanan gateway untuk mengakses fungsi.

      • Principal — Tentukan ARN peran layanan gateway Anda.

      • Tindakan — Pilihlambda:InvokeFunction.

    CLI
    1. Untuk melampirkan kebijakan berbasis sumber daya ke fungsi Lambda Anda menggunakan AWS CLI, ikuti langkah-langkah di Pemberian akses AWS fungsi Lambda ke layanan dan tentukan peran layanan gateway Anda sebagai. principal

      Anda dapat menjalankan kode berikut di terminal untuk menambahkan izin untuk peran layanan gateway Anda untuk mengakses fungsi dius-east-1:

      aws lambda add-permission \ --function-name "MyFunction" \ --statement-id "GatewayInvoke" \ --action "lambda:InvokeFunction" \ --principal "arn:aws:iam::123456789012:role/MyGatewayServiceRole" --region us-east-1
    contoh

    Jika berencana menyertakan definisi alat target gateway dari URI Amazon S3, Anda harus menyertakan izin untuk peran layanan gateway untuk mengakses bucket. AmazonS3ReadOnlyAccessKebijakan tersebut adalah contoh kebijakan yang dapat Anda lampirkan ke peran layanan. Anda dapat menjangkau Resource ke lokasi S3 untuk keamanan yang lebih besar.

    Jika Anda berencana untuk menambahkan target Smithy, Anda perlu menambahkan izin untuk peran layanan gateway untuk mengakses AWS layanan yang dirujuk oleh model Smithy Anda. Untuk menentukan izin mana yang perlu dilampirkan ke peran layanan, lihat dokumentasi layanan tersebut.

    Anda dapat menambahkan izin ke peran layanan dengan memilih topik di Menambahkan dan menghapus izin identitas IAM yang berkaitan dengan kasus penggunaan Anda dan mengikuti langkah-langkahnya.

    Misalnya, jika target model Smithy Anda mengakses tabel DynamoDB, Anda dapat melampirkan kebijakan berikut untuk mengizinkan peran layanan melakukan operasi DynamoDB pada tabel:

    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:*:*:table/*" } ] }

    Praktik terbaik untuk izin Gateway

    Ikuti prinsip hak istimewa paling sedikit
    • Berikan hanya izin yang diperlukan agar Gateway Anda berfungsi

    • Gunakan ARN sumber daya tertentu daripada wildcard jika memungkinkan

    • Secara teratur meninjau dan mengaudit izin

    Pisahkan peran berdasarkan fungsi
    • Gunakan peran yang berbeda untuk manajemen dan eksekusi

    • Buat peran terpisah untuk Gateway yang berbeda dengan tujuan yang berbeda

    Penyimpanan kredensi yang aman
    • Simpan kunci API dan kredenal OAuth di Secrets Manager AWS

    • Rotasi kredensial secara teratur

    Pantau dan audit
    • Aktifkan CloudTrail pencatatan untuk operasi Gateway

    • Tinjau pola akses dan penggunaan izin secara teratur

    Gunakan kondisi dalam kebijakan
    • Tambahkan kondisi untuk membatasi kapan dan bagaimana izin dapat digunakan

    • Pertimbangkan untuk menggunakan pembatasan IP sumber untuk operasi manajemen