Mengelola kebijakan pengguna Elastic Beanstalk - AWS Elastic Beanstalk

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

Mengelola kebijakan pengguna Elastic Beanstalk

AWS Elastic Beanstalk menyediakan dua kebijakan terkelola yang memungkinkan Anda menetapkan akses penuh atau akses hanya-baca ke semua sumber daya yang dikelola Elastic Beanstalk. Anda dapat melampirkan kebijakan ke pengguna atau grup AWS Identity and Access Management (IAM), atau ke peran yang diambil oleh pengguna Anda.

Untuk kebijakan yang dikelola
  • AdministratorAccessAWSElasticBeanstalk- Memberikan pengguna izin administratif penuh untuk membuat, memodifikasi, dan menghapus aplikasi Elastic Beanstalk, versi aplikasi, pengaturan konfigurasi, lingkungan, dan sumber daya dasarnya. Untuk melihat konten kebijakan terkelola, lihat AWSElasticBeanstalk halaman AdministratorAccess- di Panduan Referensi Kebijakan AWS Terkelola.

  • AWSElasticBeanstalkReadOnly— Memungkinkan pengguna untuk melihat aplikasi dan lingkungan, tetapi tidak melakukan operasi yang memodifikasinya. Ini menyediakan akses hanya-baca ke semua sumber daya Elastic Beanstalk, dan ke sumber daya lain AWS yang diambil oleh konsol Elastic Beanstalk. Perhatikan bahwa akses hanya-baca tidak mengaktifkan tindakan seperti mengunduh Elastic Beanstalk sehingga Anda dapat membacanya. Hal ini karena log dipentaskan di bucket Amazon S3, di mana Elastic Beanstalk akan memerlukan izin tulis. Lihat contoh di akhir topik ini untuk informasi tentang cara mengaktifkan akses ke log Elastic Beanstalk. Untuk melihat konten kebijakan terkelola, lihat AWSElasticBeanstalkReadOnlyhalaman di Panduan Referensi Kebijakan AWS Terkelola.

penting

Kebijakan terkelola Elastic Beanstalk tidak memberikan izin terperinci—mereka memberikan semua izin yang berpotensi diperlukan untuk bekerja dengan aplikasi Elastic Beanstalk. Dalam beberapa kasus, Anda mungkin ingin membatasi izin kebijakan terkelola kami lebih lanjut. Untuk contoh satu kasus penggunaan, lihatMencegah akses bucket Amazon S3 lintas lingkungan.

Kebijakan terkelola kami juga tidak mencakup izin ke sumber daya khusus yang mungkin Anda tambahkan ke solusi Anda, dan yang tidak dikelola oleh Elastic Beanstalk. Untuk menerapkan izin yang lebih rinci, izin minimum yang diperlukan, atau izin sumber daya kustom, gunakan kebijakan khusus.

Kebijakan terkelola tidak lagi digunakan

Sebelumnya, Elastic Beanstalk mendukung dua kebijakan pengguna terkelola lainnya, dan. AWSElasticBeanstalkFullAccessAWSElasticBeanstalkReadOnlyAccess Kami berencana untuk menghentikan kebijakan-kebijakan sebelumnya. Anda mungkin masih dapat melihat dan menggunakannya di konsol IAM. Namun demikian, kami merekomendasikan Anda beralih ke menggunakan kebijakan pengguna terkelola baru, dan menambahkan kebijakan kustom untuk memberikan izin ke sumber daya kustom, jika Anda memiliki.

Kebijakan untuk integrasi dengan layanan lain

Kami juga menyediakan kebijakan yang lebih terperinci yang memungkinkan Anda mengintegrasikan lingkungan Anda dengan layanan lain, jika Anda lebih suka menggunakannya.

  • AWSElasticBeanstalkRoleCWL— Memungkinkan lingkungan untuk mengelola grup CloudWatch log Amazon Logs.

  • AWSElasticBeanstalkRoleRDS— Memungkinkan lingkungan untuk mengintegrasikan instans Amazon RDS.

  • AWSElasticBeanstalkRoleWorkerTier— Memungkinkan tingkat lingkungan pekerja untuk membuat tabel Amazon DynamoDB dan antrian Amazon SQS.

  • AWSElasticBeanstalkRoleECS— Memungkinkan lingkungan Docker multicontainer untuk mengelola cluster Amazon ECS.

  • AWSElasticBeanstalkRoleCore— Memungkinkan operasi inti dari lingkungan layanan web.

  • AWSElasticBeanstalkRoleSNS— Memungkinkan lingkungan untuk mengaktifkan integrasi topik Amazon SNS.

Untuk melihat sumber JSON untuk kebijakan terkelola tertentu, lihat Panduan Referensi Kebijakan AWS Terkelola.

Mengontrol akses dengan kebijakan terkelola

Anda dapat menggunakan kebijakan terkelola untuk memberikan akses penuh atau akses hanya-baca ke Elastic Beanstalk. Elastic Beanstalk memperbarui kebijakan ini secara otomatis ketika izin tambahan diperlukan untuk mengakses fitur baru.

Untuk menerapkan kebijakan terkelola untuk pengguna atau grup IAM
  1. Buka halaman kebijakan di Konsol IAM.

  2. Di kotak pencarian, ketik AWSElasticBeanstalk untuk memfilter kebijakan.

  3. Dalam daftar kebijakan, pilih kotak centang di samping AWSElasticBeanstalkReadOnlyatau AdministratorAccess- AWSElasticBeanstalk.

  4. Pilih Tindakan kebijakan, lalu pilih Lampirkan.

  5. Pilih satu atau beberapa pengguna dan grup untuk melampirkan kebijakan. Anda bisa menggunakan menu Filter dan kotak pencarian untuk memfilter daftar entitas utama.

  6. Pilih Pasang kebijakan.

Membuat kebijakan pengguna kustom

Anda dapat membuat kebijakan IAM Anda sendiri untuk mengizinkan atau menolak tindakan API Elastic Beanstalk tertentu pada sumber Elastic Beanstalk tertentu, dan untuk mengontrol akses ke sumber daya kustom yang tidak dikelola oleh Elastic Beanstalk. Untuk informasi selengkapnya tentang melampirkan kebijakan ke pengguna atau grup, lihat Bekerja dengan Kebijakan di Panduan Pengguna IAM. Untuk informasi lebih lanjut tentang membuat kebijakan IAM, lihat Membuat Kebijakan IAM dalam Panduan Pengguna IAM.

catatan

Meskipun Anda dapat membatasi bagaimana pengguna berinteraksi dengan API Elastic Beanstalk, saat ini tidak ada cara yang efektif untuk mencegah pengguna yang memiliki izin untuk membuat sumber daya yang mendasari diperlukan dari menciptakan sumber daya lain di Amazon EC2 dan layanan lainnya.

Pikirkan kebijakan ini sebagai cara yang efektif untuk mendistribusikan tanggung jawab Elastic Beanstalk, bukan sebagai cara untuk mengamankan semua sumber daya yang mendasarinya.

Pada bulan November 2019, Elastic Beanstalk merilis support untuk templat peluncuran Amazon EC2. Ini adalah jenis sumber daya baru yang lingkungan grup Auto Scaling Anda dapat digunakan untuk meluncurkan instans Amazon EC2, dan memerlukan izin baru. Sebagian besar pelanggan tidak akan terpengaruh, karena lingkungan masih dapat menggunakan sumber daya warisan, meluncurkan konfigurasi, jika kebijakan pengguna Anda tidak memiliki izin yang diperlukan. Namun, jika Anda mencoba untuk menggunakan fitur baru yang memerlukan templat peluncuran Amazon EC2, dan Anda memiliki kebijakan kustom, pembuatan lingkungan atau pembaruan mungkin gagal. Dalam kasus ini, pastikan bahwa kebijakan kustom Anda memiliki izin berikut.

Izin yang diperlukan untuk templat peluncuran Amazon EC2
  • EC2:CreateLaunchTemplate

  • EC2:CreateLaunchTemplateVersions

  • EC2:DeleteLaunchTemplate

  • EC2:DeleteLaunchTemplateVersions

  • EC2:DescribeLaunchTemplate

  • EC2:DescribeLaunchTemplateVersions

Kebijakan IAM berisi pernyataan kebijakan yang menjelaskan izin yang ingin Anda berikan. Ketika Anda membuat pernyataan kebijakan untuk Elastic Beanstalk, Anda perlu memahami bagaimana menggunakan empat bagian berikut dari pernyataan kebijakan:

  • Efek menentukan apakah untuk mengizinkan atau menolak tindakan dalam pernyataan.

  • Tindakan menentukan operasi API yang ingin Anda kendalikan. Misalnya, gunakan elasticbeanstalk:CreateEnvironment untuk menentukan operasi CreateEnvironment. Operasi tertentu, seperti menciptakan lingkungan, memerlukan izin tambahan untuk melakukan tindakan tersebut. Untuk informasi selengkapnya, lihat Sumber daya dan kondisi untuk tindakan Elastic Beanstalk.

    catatan

    Untuk menggunakan operasi API UpdateTagsForResource, menentukan salah satu dari dua tindakan virtual berikut (atau keduanya) bukan nama operasi API:

    elasticbeanstalk:AddTags

    Mengontrol izin untuk menelepon UpdateTagsForResource dan meneruskan daftar tag untuk add-in di parameter TagsToAdd.

    elasticbeanstalk:RemoveTags

    Mengontrol izin untuk menelepon UpdateTagsForResource dan meneruskan daftar kunci tag untuk menghapus di parameter TagsToRemove.

  • Sumber Daya menentukan sumber daya yang Anda inginkan untuk mengontrol akses. Untuk menentukan sumber Elastic Beanstalk, buat daftar Amazon Resource Name (ARN) dari setiap sumber daya.

  • (opsional) Ketentuan menentukan pembatasan izin yang diberikan dalam pernyataan. Untuk informasi selengkapnya, lihat Sumber daya dan kondisi untuk tindakan Elastic Beanstalk.

Bagian berikut menunjukkan beberapa kasus di mana Anda mungkin mempertimbangkan kebijakan pengguna kustom.

Memungkinkan penciptaan lingkungan Elastic Beanstalk terbatas

Kebijakan dalam contoh berikut mengizinkan pengguna untuk memanggil tindakan CreateEnvironment untuk membuat lingkungan yang namanya dimulai dengan Test dengan aplikasi dan versi aplikasi yang ditentukan.

{ "Version": "2012-10-17", "Statement": [ { "Sid":"CreateEnvironmentPerm", "Action": [ "elasticbeanstalk:CreateEnvironment" ], "Effect": "Allow", "Resource": [ "arn:aws:elasticbeanstalk:us-east-2:123456789012:environment/My First Elastic Beanstalk Application/Test*" ], "Condition": { "StringEquals": { "elasticbeanstalk:InApplication": ["arn:aws:elasticbeanstalk:us-east-2:123456789012:application/My First Elastic Beanstalk Application"], "elasticbeanstalk:FromApplicationVersion": ["arn:aws:elasticbeanstalk:us-east-2:123456789012:applicationversion/My First Elastic Beanstalk Application/First Release"] } } }, { "Sid":"AllNonResourceCalls", "Action":[ "elasticbeanstalk:CheckDNSAvailability", "elasticbeanstalk:CreateStorageLocation" ], "Effect":"Allow", "Resource":[ "*" ] } ] }

Kebijakan di atas menunjukkan bagaimana untuk memberikan akses terbatas untuk operasi Elastic Beanstalk. Untuk benar-benar meluncurkan lingkungan, pengguna harus memiliki izin untuk membuat AWS sumber daya yang memberi daya pada lingkungan juga. Sebagai contoh, kebijakan berikut memberikan akses ke set default sumber daya untuk lingkungan server web:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "ecs:*", "elasticloadbalancing:*", "autoscaling:*", "cloudwatch:*", "s3:*", "sns:*", "cloudformation:*", "sqs:*" ], "Resource": "*" } ] }

Memungkinkan akses ke log Elastic Beanstalk yang disimpan di Amazon S3

Kebijakan dalam contoh berikut memungkinkan pengguna untuk menarik Elastic Beanstalk log, tahap mereka di Amazon S3, dan mengambil mereka.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:DeleteObject", "s3:GetObjectAcl", "s3:PutObjectAcl" ], "Effect": "Allow", "Resource": "arn:aws:s3:::elasticbeanstalk-*" } ] }
catatan

Untuk membatasi izin ini untuk hanya lintasan log, gunakan format sumber daya berikut.

"arn:aws:s3:::elasticbeanstalk-us-east-2-123456789012/resources/environments/logs/*"

Mengaktifkan pengelolaan aplikasi Elastic Beanstalk tertentu

Kebijakan dalam contoh berikut memungkinkan pengguna untuk mengelola lingkungan dan sumber daya lainnya dalam satu aplikasi Elastic Beanstalk tertentu. Kebijakan tersebut menyangkal tindakan Elastic Beanstalk pada sumber daya aplikasi lain, dan juga menyangkal pembuatan dan penghapusan aplikasi Elastic Beanstalk.

catatan

Kebijakan ini tidak menolak akses ke sumber daya apa pun melalui layanan lain. Ini menunjukkan cara yang efektif untuk mendistribusikan tanggung jawab untuk mengelola aplikasi Elastic Beanstalk di antara pengguna yang berbeda, bukan sebagai cara untuk mengamankan sumber daya yang mendasarinya.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "elasticbeanstalk:CreateApplication", "elasticbeanstalk:DeleteApplication" ], "Resource": [ "*" ] }, { "Effect": "Deny", "Action": [ "elasticbeanstalk:CreateApplicationVersion", "elasticbeanstalk:CreateConfigurationTemplate", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplicationVersion", "elasticbeanstalk:DeleteConfigurationTemplate", "elasticbeanstalk:DeleteEnvironmentConfiguration", "elasticbeanstalk:DescribeApplicationVersions", "elasticbeanstalk:DescribeConfigurationOptions", "elasticbeanstalk:DescribeConfigurationSettings", "elasticbeanstalk:DescribeEnvironmentResources", "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:DescribeEvents", "elasticbeanstalk:DeleteEnvironmentConfiguration", "elasticbeanstalk:RebuildEnvironment", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RestartAppServer", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:SwapEnvironmentCNAMEs", "elasticbeanstalk:TerminateEnvironment", "elasticbeanstalk:UpdateApplicationVersion", "elasticbeanstalk:UpdateConfigurationTemplate", "elasticbeanstalk:UpdateEnvironment", "elasticbeanstalk:RetrieveEnvironmentInfo", "elasticbeanstalk:ValidateConfigurationSettings" ], "Resource": [ "*" ], "Condition": { "StringNotEquals": { "elasticbeanstalk:InApplication": [ "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/myapplication" ] } } } ] }