Menentukan Izin untuk Aplikasi yang Berjalan pada instance EC2 - AWS OpsWorks

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

Menentukan Izin untuk Aplikasi yang Berjalan pada instance EC2

penting

AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Support Tim di AWS re:Post atau melalui AWS Dukungan Premium.

Jika aplikasi yang berjalan di EC2 instans Amazon stack Anda perlu mengakses AWS sumber daya lain, seperti bucket Amazon S3, mereka harus memiliki izin yang sesuai. Untuk memberikan izin tersebut, Anda menggunakan profil instance. Anda dapat menentukan profil instance untuk setiap instance saat membuat tumpukan AWS OpsWorks Stacks.

Opsi lanjutan di halaman Tambahkan Stack.

Anda juga dapat menentukan profil untuk instance lapisan dengan mengedit konfigurasi lapisan.

Profil instance menentukan IAM peran. Aplikasi yang berjalan pada instance dapat mengasumsikan peran tersebut untuk mengakses AWS sumber daya, tunduk pada izin yang diberikan oleh kebijakan peran. Untuk informasi selengkapnya tentang cara aplikasi mengasumsikan peran, lihat Mengasumsikan Peran API Menggunakan Panggilan.

Anda dapat membuat profil instance dengan salah satu cara berikut:

Profil instans harus memiliki hubungan kepercayaan dan kebijakan terlampir yang memberikan izin untuk mengakses AWS sumber daya.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Profil instans harus memiliki hubungan kepercayaan ini agar AWS OpsWorks Stacks bertindak atas nama Anda. Jika Anda menggunakan peran layanan default, jangan mengubah hubungan kepercayaan. Jika Anda membuat peran layanan khusus, tentukan kapal hubungan kepercayaan sebagai berikut:

  • Jika Anda menggunakan wizard Buat Peran di IAMkonsol, tentukan jenis EC2 peran Amazon di bawah Peran AWS Layanan di halaman kedua wizard.

  • Jika Anda menggunakan AWS CloudFormation template, Anda dapat menambahkan sesuatu seperti berikut ke bagian Sumber Daya template Anda.

    "Resources": { "OpsWorksEC2Role": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/" } }, "RootInstanceProfile": { "Type": "AWS::IAM::InstanceProfile", "Properties": { "Path": "/", "Roles": [ { "Ref": "OpsWorksEC2Role" } ] } } }

Saat membuat profil instans, Anda dapat melampirkan kebijakan yang sesuai ke peran profil pada saat itu. Setelah membuat tumpukan, Anda harus menggunakan IAMkonsol atau API melampirkan kebijakan yang sesuai ke peran profil. Misalnya, kebijakan berikut memberikan akses penuh ke semua objek di bucket Amazon S3 bernama amzn-s3-demo-bucket. Ganti region dan amzn-s3-demo-bucket dengan nilai yang sesuai dengan konfigurasi Anda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:region::amzn-s3-demo-bucket/*" } ] }

Untuk contoh cara membuat dan menggunakan profil instance, lihat Menggunakan Bucket Amazon S3.

Jika aplikasi Anda menggunakan profil instans untuk memanggil AWS OpsWorks Stacks API dari EC2 instans, kebijakan harus mengizinkan iam:PassRole tindakan selain tindakan yang sesuai untuk AWS OpsWorks Stacks dan layanan lainnyaAWS. iam:PassRoleIzin memungkinkan AWS OpsWorks Stacks untuk mengambil peran layanan atas nama Anda. Untuk informasi selengkapnya tentang AWS OpsWorks TumpukanAPI, lihat AWS OpsWorks APIReferensi.

Berikut ini adalah contoh IAM kebijakan yang memungkinkan Anda memanggil tindakan AWS OpsWorks Stacks apa pun dari sebuah EC2 instance, serta tindakan Amazon EC2 atau Amazon S3 apa pun.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "s3:*", "opsworks:*", "iam:PassRole" ], "Resource": "arn:aws:ec2:region:account_id:instance/*", "Condition": { "StringEquals": { "iam:PassedToService": "opsworks.amazonaws.com" } } } ] }
catatan

Jika Anda tidak mengizinkaniam:PassRole, setiap upaya untuk memanggil tindakan AWS OpsWorks Stacks gagal dengan kesalahan seperti berikut:

User: arn:aws:sts::123456789012:federated-user/Bob is not authorized to perform: iam:PassRole on resource: arn:aws:sts::123456789012:role/OpsWorksStackIamRole

Untuk informasi selengkapnya tentang penggunaan peran pada EC2 instans untuk izin, lihat Memberikan Aplikasi yang Berjalan di EC2 Instans Amazon Akses ke AWS Sumber Daya di Panduan Pengguna.AWS Identity and Access Management