Memberikan akses fungsi Lambda ke akun lain - AWS Lambda

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

Memberikan akses fungsi Lambda ke akun lain

Untuk berbagi fungsi dengan yang lain Akun AWS, tambahkan pernyataan izin lintas akun ke kebijakan berbasis sumber daya fungsi. Jalankan perintah add-permission dan tentukan ID akun sebagai. principal Contoh berikut memberi izin 111122223333 akun untuk memanggil my-function dengan alias prod.

aws lambda add-permission \ --function-name my-function:prod \ --statement-id xaccount \ --action lambda:InvokeFunction \ --principal 111122223333 \ --output text

Anda akan melihat output berikut:

{"Sid":"xaccount","Effect":"Allow","Principal":{"AWS":"arn:aws:iam::111122223333:root"},"Action":"lambda:InvokeFunction","Resource":"arn:aws:lambda:us-east-1:123456789012:function:my-function"}

Kebijakan berbasis sumber daya memberikan izin bagi akun lain untuk mengakses fungsi, tetapi tidak mengizinkan pengguna dalam akun tersebut untuk melebihi izin mereka. Pengguna di akun lain harus memiliki izin pengguna yang sesuai untuk menggunakan API Lambda.

Untuk membatasi akses ke pengguna atau peran di akun lain, tentukan ARN lengkap dari identitas sebagai prinsip. Misalnya, arn:aws:iam::123456789012:user/developer.

Alias membatasi versi mana yang dapat dilakukan invokasi oleh akun lain. Ini mengharuskan akun lain menyertakan alias dalam fungsi ARN.

aws lambda invoke \ --function-name arn:aws:lambda:us-east-2:123456789012:function:my-function:prod out

Anda akan melihat output berikut:

{
    "StatusCode": 200,
    "ExecutedVersion": "1"
}

Pemilik fungsi kemudian dapat memperbarui alias untuk menunjuk ke versi baru tanpa pemanggil perlu mengubah cara melakukan invokasi fungsi Anda. Ini memastikan akun lain tidak perlu mengubah kodenya untuk menggunakan versi baru, dan memiliki izin untuk melakukan invokasi versi fungsi yang terkait dengan alias.

Anda dapat memberikan akses lintas akun untuk sebagian besar tindakan API yang beroperasi pada fungsi yang sudah ada. Misalnya, Anda dapat memberikan akses ke lambda:ListAliases agar akun bisa mendapatkan daftar alias, atau lambda:GetFunction agar mengunduh kode fungsi Anda. Tambahkan setiap izin secara terpisah, atau gunakan lambda:* untuk memberikan akses ke semua tindakan untuk fungsi tertentu.

Untuk memberi akun lain izin untuk beberapa fungsi, atau untuk tindakan yang tidak beroperasi pada fungsi, kami sarankan Anda menggunakan peran IAM.