Cara Membuat IAM Role untuk AWS Lambda
AWS Lambda adalah salah satu layanan populer dari AWS. Namun kita harus memiliki IAM Role untuk menjalankannya.
AWS Lambda adalah salah satu layanan yang populer dari Amazon Web Services (AWS).Dia juga adalah salah satu komponen yang membuat kata "Serverless" menjadi populer.Namun salah satu syarat yang harus dipenuhi sebelum kita bisa bereksperimen dengan AWS Lambdaadalah sebuah IAM Role. Di tutorial ini saya akan memberikan contoh untuk membuatnya.
Membuat IAM Role
Kita dapat memberikan hak akses kepada dua tipe pengguna di akun AWS:
- IAM User, identik dengan pengguna manusia yang menggunakan AWS Console atau pun via API AWS dan AWS CLI; dan
- IAM Role, sumber daya AWS yang dapat mengkonsumsi sumber daya AWS lainnya atau melakukan perubahan seperti Lambda, EC2 dan sebagainya.
Kita perlu membuat IAM Role untuk mengizinkan sumber daya AWS mengakses sumber daya AWS lainnya. Contohnya adalah:
- mengizinkan AWS Lambda untuk mendapatkan daftar bucket Amazon S3 yang,
- mengizinkan AWS Lambda untuk upload file ke Amazon S3,
- menulis data ke tabel AWS DynamoDB, dan
- lain-lainnya.
Pada tutorial ini saya akan membuat IAM Role agar Lambda bisa mengambil daftar bucket Amazon S3.
Pertama-tama silahkan login ke AWS Console. Klik tombol "Services" yang ada di pojok kiri atas, ketikkan "IAM", lalu pilih menu "IAM".
Selanjutnya Anda akan melihat panel "Identity and Access Management" seperti berikut:
Silahkan pilih menu "Roles" yang ada di sebelah kiri, akan muncul daftar IAM Role seperti ini:
Sekarang tekan tombol "Create role" yang ada di atas. Pilihlah "Lambda" sebagai layanan yang akan menggunakan IAM Role ini, seperti di gambar berikut, lalu muncul tampilan pilihan seperti ini:
Tekan tekan tombol "Next: Permissions". Selanjutnya kita akan melihat daftar IAM Policy yang akan diizinkan untuk IAM Role ini. Di tutorial ini saya memilih policy "AmazonS3FullAccess". Silahkan tekan tombol "Next: Tags" untuk melanjutkan.
Anda akan melihat halaman "Tags". Silahkan tambahkan tag jika diperlukan. Di gambar di bawah, saya menambahkan tag Key "Departemen" dengan Value "Keuangan".
Terakhir kita akan melihat halaman review pembuatan IAM Role. Silahkan isikan "Role name". Anda bisa juga mengisi "Role description" jika dibutuhkan. Kini saatnya tekan tombol "Create role".
Selamat, IAM Role untuk AWS Lambda sudah dibuat. AWS Console pun menampilkan konfirmasi seperti ini:
Membuat AWS Lambda pakai IAM Role yang telah dibuat
Sekarang saatnya kita membuat AWS Lambda dan menggunakan IAM Role yang telah kita buat tadi. Silahkan klik menu "Services" yang ada di pojok kiri atas, ketikkan "Lambda", lalu pilih menu "Lambda".
Anda akan melihat panel administrasi "AWS Lambda". Tekan tombol "Create function" yang ada di kanan.
AWS Console akan menampilkan sebuah formulir untuk membuat sebuah AWS Lambda. Silahkan:
- isi nama;
- pilih "Runtime", saya memilih Python 3.6;
- pilih "Choose an existing role";
- pilih IAM Role yang sudah kita buat di tahap sebelumnya;
- terakhir tekan tombol "Create function".
Kita akan melihat AWS Lambda Function yang telah dibuat, seperti di gambar berikut:
Saya telah membuat sebuah kode Python 3.6 yang cukup sederhana, yang intinya akan mengambil daftar bucket Amazon S3 yang ada di akun Anda. Anda bisa tinggal copy-paste kode yang ada di bawah ini ke AWS Lambda Function Anda, lalu tekan tombol "Save" yang ada di pojok kanan atas.
import boto3
import json
def lambda_handler(event, context):
s3 = boto3.client('s3')
response = s3.list_buckets()
buckets = []
for b in response['Buckets']:
if 'contoh' in b['Name']:
buckets.append(b['Name'])
print(json.dumps(buckets, default=str, indent=4))
return "Selesai dengan baik - Dojotek"
Silahkan buat sebuah "test configuration", lalu tekan tombol "Test". Berikut ini tampilan hasil eksekusi AWS Lambda saya, menggunakan IAM Role yang telah dibuat. Anda dapat melihat tiga nama bucket Amazon S3, yang memiliki kata "contoh" di namanya.
Simpulan
Selamat, Anda sudah berhasil membuat IAM Role dan sebuah AWS Lambda function. Semoga tutorial ini bermanfaat.