View a markdown version of this page

Menyiapkan izin untuk AgentCore Gateway - Batu Dasar Amazon AgentCore

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyiapkan izin untuk AgentCore Gateway

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

  1. Iz builder/user in 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 Nama Sumber Daya Amazon (ARN) dari peran layanan gateway sebagai Principal kebijakan berbasis 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 mengatur izin khusus, Anda dapat menggunakan opsi berikut untuk pengaturan yang mudah: * Lampirkan BedrockAgentCoreFullAccess ke identitas IAM untuk memungkinkannya membuat, mengelola, dan memanggil gateway. * Gunakan Konsol AWS Manajemen atau AgentCore CLI untuk membuat peran layanan AgentCore gateway dengan izin yang tepat dan target gateway 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 harus melampirkan kebijakan berbasis identitas ke identitas IAM agar dapat melakukan tindakan Amazon Bedrock. AgentCore-related Untuk izin komprehensif, Anda dapat menggunakan kebijakan ter BedrockAgentCoreFullAccess kelola.

Untuk keamanan dan kontrol yang lebih baik, Anda dapat membuat kebijakan kustom Anda sendiri dengan mengurangi izin dalam kebijakan akses penuh. Misalnya, kebijakan berikut mengizinkan identitas untuk melakukan tindakan yang terkait dengan AgentCore Gateway tetapi tidak ke 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, target gateway, dan batas tarif:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:ListGateways", "bedrock-agentcore:GetGateway", "bedrock-agentcore:ListGatewayTargets", "bedrock-agentcore:GetGatewayTarget", "bedrock-agentcore:ListGatewayRateLimits", "bedrock-agentcore:GetGatewayRateLimit" ], "Resource": "arn:aws:bedrock-agentcore:*:*:*gateway*" } ] }

Kebijakan kustom berikut memungkinkan identitas untuk mengelola batas tarif pada gateway tanpa dapat mengubah gateway atau targetnya:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:CreateGatewayRateLimit", "bedrock-agentcore:GetGatewayRateLimit", "bedrock-agentcore:UpdateGatewayRateLimit", "bedrock-agentcore:DeleteGatewayRateLimit", "bedrock-agentcore:ListGatewayRateLimits", "bedrock-agentcore:BatchPutGatewayRateLimits" ], "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 mengatur otorisasi masuk.

AgentCore Izin peran layanan gateway

Saat membuat gateway, Anda memerlukan peran layanan yang memiliki izin untuk mengambil peran IAM dan untuk 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 membiarkan 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 ke dalamnya, lihat Membuat peran untuk mendelegasikan izin ke AWS layanan.

Izin yang diperlukan untuk peran layanan ada dalam topik berikut:

Izin kepercayaan

Peran layanan harus memiliki kebijakan kepercayaan yang dilamp irkan yang memungkinkan AgentCore layanan 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 gateway ARN sebelum Anda membuatnya, Anda dapat menghilangkan Condition bidang saat pertama kali membuat peran layanan. Setelah Anda membuat gateway, tambahkan Condition bidang kembali ke kebijakan sebagai praktik keamanan terbaik dan lakukan hal berikut: * Ganti nilai kunci aws:SourceAccount kondisi dengan ID akun milik gateway. * Ganti kunci 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 mengizinkannya memanggil target. Izin ini memungkinkan peran layanan gateway untuk mengambil kredentif otorisasi untuk memanggil target. Anda dapat melakukan ini dalam proses pengaturan otor isasi 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 mengizinkannya 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, Anda perlu menambahkan izin untuk peran layanan AgentCore Gateway agar dapat memanggil 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 lambda:InvokeFunction tindakan 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 Men ambahkan dan menghapus izin identitas IAM yang berkaitan dengan kasus penggunaan Anda dan ikuti 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 Resource daftar.

    ===== (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 dari 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 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 bidang berikut:

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

      • Principal — Tentukan ARN peran layanan gateway Anda.

      • Tind akan — Pilihlambda:InvokeFunction.

    CLI
    1. Untuk melampirkan kebijakan berbasis sumber daya ke fungsi Lambda menggunakan AWS CLI, ikuti langkah-langkah di Memberikan akses fungsi Lam bda ke AWS 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 Anda berencana untuk menyertakan definisi alat target gateway dari URI Amazon S3, Anda harus menyertakan izin untuk peran layanan gateway untuk mengakses bucket. AmazonS3ReadOnlyAccessKebijakan ini merupakan contoh kebijakan yang dapat Anda lampirkan ke peran layanan. Anda dapat menjangkau Resource 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 Men ambahkan dan menghapus izin identitas IAM yang berkaitan dengan kasus penggunaan Anda dan mengikuti langkah-langkahnya.

    Misalnya, jika target model Smithy 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 terkecil
    • 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 aman
    • Simpan kunci API dan kredenSIAL OAuth di Secrets Manager AWS

    • Rotasi kredensial secara teratur

    Pantau dan audit
    • Aktif CloudTrail kan logging 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