View a markdown version of this page

Mengelola AWS CloudShell akses dan penggunaan dengan kebijakan IAM - AWS CloudShell

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

Mengelola AWS CloudShell akses dan penggunaan dengan kebijakan IAM

Dengan sumber daya manajemen akses yang dapat disediakan oleh AWS Identity and Access Management, administrator dapat memberikan izin kepada pengguna IAM. Dengan begitu, pengguna ini dapat mengakses AWS CloudShell dan menggunakan fitur-fitur lingkungan. Administrator juga dapat membuat kebijakan yang menentukan pada tingkat terperinci tindakan apa yang dapat dilakukan pengguna tersebut dengan lingkungan shell.

Cara tercepat bagi administrator untuk memberikan akses kepada pengguna adalah melalui kebijakan terkel AWS ola. Kebijakan terkelola AWS adalah kebijakan mandiri yang dibuat dan dikelola oleh AWS. Kebijakan terkel AWS ola berikut untuk AWS CloudShell dapat dilampirkan ke identitas IAM:

  • AWS CloudShellFullAccess: Memberikan izin untuk digunakan AWS CloudShell dengan akses penuh ke semua fitur.

AWS CloudShellFullAccessKebijakan menggunakan karakter wildcard (*) untuk memberikan identitas IAM (pengguna, peran, atau grup) akses penuh ke CloudShell dan fitur. Untuk informasi selengkapnya tentang kebijakan ini, lihat AWS CloudShellFullAccess di Panduan AWS Pengguna Kebijakan Terkelola.

catatan

Identitas IAM dengan kebijakan terkel AWS ola berikut juga dapat diluncurkan CloudShell. Namun, kebijakan ini memberikan izin yang luas. Oleh karena itu, sebaiknya Anda hanya memberikan kebijakan ini jika kebijakan tersebut penting untuk peran pekerjaan pengguna IAM.

  • Administrator: Menyediakan pengguna IAM akses penuh dan memungkinkan mereka untuk mendelegasikan izin ke setiap layanan dan sumber daya di AWS.

  • Pengembang power user: Memungkinkan pengguna IAM untuk melakukan tugas pengembangan aplikasi dan membuat serta mengkonfigurasi sumber daya dan layanan yang mendukung pengembangan aplikasi AWS sadar.

Untuk informasi selengkapnya tentang melampirkan kebijakan terkelola, lihat Men ambahkan izin identitas IAM (konsol) di Panduan Pengguna IAM.

Mengelola tindakan yang diijinkan di AWS CloudShell menggunakan kebijakan khusus

Untuk mengelola tindakan yang dapat dilakukan pengguna IAM CloudShell, buat kebijakan kustom yang menggunakan kebijakan terkel CloudShellPolicy ola sebagai templat. Atau, edit kebijakan sebaris yang disematkan dalam identitas IAM yang relevan (pengguna, grup, atau peran).

Misalnya, Anda dapat mengizinkan pengguna IAM untuk mengakses CloudShell, tetapi mencegah mereka meneruskan kredentif CloudShell lingkungan yang digunakan untuk Konsol Manajemen AWS masuk.

penting

Untuk meluncurkan AWS CloudShell dari Konsol Manajemen AWS, pengguna IAM memerlukan izin untuk tindakan berikut:

  • CreateEnvironment

  • CreateSession

  • GetEnvironmentStatus

  • StartEnvironment

Jika salah satu tindakan ini tidak diizinkan secara eksplisit oleh kebijakan terlampir, kesalahan izin IAM dikembalikan saat Anda mencoba meluncurkan CloudShell.

AWS CloudShell izin
Nama Deskripsi izin yang diberikan Diperlukan untuk meluncurkan CloudShell?

cloudshell:CreateEnvironment

Membuat CloudShell lingkungan, mengambil tata letak di awal CloudShell sesi, dan menyimpan tata letak saat ini dari aplikasi web di backend. Izin ini hanya mengharapkan * sebagai nilai untuk Resource seperti yang diuraikan dalamContoh kebijakan IAM untuk CloudShell.

Ya

cloudshell:CreateSession

Terhubung ke CloudShell lingkungan dari Konsol Manajemen AWS.

Ya

cloudshell:GetEnvironmentStatus

Membaca status suatu CloudShell lingkungan.

Ya

cloudshell:DeleteEnvironment

Menghapus CloudShell lingkungan.

Tidak

cloudshell:GetFileDownloadUrls

Menghasilkan URL Amazon S3 yang telah ditandatangani sebelumnya yang digunakan untuk mengunduh file melalui CloudShell menggunakan antarmuka CloudShell web. Ini tidak tersedia untuk lingkungan VPC.

Tidak

cloudshell:GetFileUploadUrls

Menghasilkan URL Amazon S3 yang telah ditandatangani sebelumnya yang digunakan untuk mengunggah file melalui CloudShell menggunakan antarmuka CloudShell web. Ini tidak tersedia untuk lingkungan VPC.

Tidak

cloudshell:DescribeEnvironments

Menjelaskan lingkungan.

Tidak

cloudshell:PutCredentials

Meneruskan kredenSIAL yang digunakan untuk masuk Konsol Manajemen AWS ke CloudShell.

Tidak

cloudshell:StartEnvironment

Memulai CloudShell lingkungan yang dihentikan.

Ya

cloudshell:StopEnvironment

Menghentikan CloudShell lingkungan yang sedang berjalan.

Tidak

cloudshell:ApproveCommand

Menyetujui perintah yang dikirim CloudShell dari konsol AWS Layanan lainnya. Tidak

Contoh kebijakan IAM untuk CloudShell

Contoh berikut menunjukkan bagaimana kebijakan dapat dibuat untuk membatasi siapa yang dapat mengakses CloudShell. Contoh-contoh juga menunjukkan tindakan yang dapat dilakukan di lingkungan shell.

Kebijakan berikut ini memberlakukan penolakan total akses ke CloudShell dan fitur-fiturnya.

JSON
{ "Version":"2012-10-17", "Statement": [{ "Sid": "DenyCloudShell", "Effect": "Deny", "Action": [ "cloudshell:*" ], "Resource": "*" }] }

Kebijakan berikut ini memungkinkan pengguna IAM mengakses CloudShell tetapi memblokir mereka untuk membuat URL yang telah ditandatangani sebelumnya untuk upload dan download file. Pengguna masih dapat mentransfer file ke dan dari lingkungan, menggunakan klien seperti wget misalnya.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowUsingCloudshell", "Effect": "Allow", "Action": [ "cloudshell:*" ], "Resource": "*" }, { "Sid": "DenyUploadDownload", "Effect": "Deny", "Action": [ "cloudshell:GetFileDownloadUrls", "cloudshell:GetFileUploadUrls" ], "Resource": "*" }] }

Kebijakan berikut memungkinkan pengguna IAM untuk mengakses CloudShell. Namun, kebijakan mencegah kredentif yang Anda gunakan untuk Konsol Manajemen AWS masuk diteruskan ke CloudShell lingkungan. Pengguna IAM dengan kebijakan ini perlu mengonfigurasi kredensialnya secara manual di dalamnya CloudShell.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowUsingCloudshell", "Effect": "Allow", "Action": [ "cloudshell:*" ], "Resource": "*" }, { "Sid": "DenyCredentialForwarding", "Effect": "Deny", "Action": [ "cloudshell:PutCredentials" ], "Resource": "*" }] }

Kebijakan berikut memungkinkan pengguna IAM untuk membuat AWS CloudShell lingkungan.

JSON
{ "Version":"2012-10-17", "Statement": [{ "Sid": "CloudShellUser", "Effect": "Allow", "Action": [ "cloudshell:CreateEnvironment", "cloudshell:CreateSession", "cloudshell:GetEnvironmentStatus", "cloudshell:StartEnvironment" ], "Resource": "*" }] }

Diperlukan izin IAM untuk membuat dan menggunakan lingkungan CloudShell VPC

Untuk membuat dan menggunakan lingkungan CloudShell VPC, administrator IAM harus mengaktifkan akses ke izin Amazon EC2 khusus VPC. Bagian ini mencantumkan izin Amazon EC2 yang diperlukan untuk membuat dan menggunakan lingkungan VPC.

Untuk membuat lingkungan VPC, kebijakan IAM yang ditetapkan untuk peran Anda harus menyertakan izin Amazon EC2 berikut:

  • ec2:DescribeVpcs

  • ec2:DescribeSubnets

  • ec2:DescribeSecurityGroups

  • ec2:DescribeDhcpOptions

  • ec2:DescribeNetworkInterfaces

  • ec2:CreateTags

  • ec2:CreateNetworkInterface

  • ec2:CreateNetworkInterfacePermission

Kami merekomendasikan juga termasuk:

  • ec2:DeleteNetworkInterface

catatan

Izin ini tidak wajib, tetapi ini diperlukan CloudShell untuk membersihkan sumber daya ENI (ENI yang dibuat untuk lingkungan CloudShell VPC ditandai dengan ManagedByCloudShell kunci) yang dibuat olehnya. Jika izin ini tidak diaktifkan, Anda harus membersihkan sumber daya ENI secara manual setelah setiap penggunaan lingkungan CloudShell VPC.

Kebijakan IAM memberikan akses penuh termasuk CloudShell akses ke VPC

Contoh berikut menampilkan cara mengaktifkan izin penuh, termasuk akses ke VPC, untuk: CloudShell

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCloudShellOperations", "Effect": "Allow", "Action": [ "cloudshell:*" ], "Resource": "*" }, { "Sid": "AllowDescribeVPC", "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Sid": "AllowCreateTagWithCloudShellKey", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface" }, "ForAnyValue:StringEquals": { "aws:TagKeys": "ManagedByCloudShell" } } }, { "Sid": "AllowCreateNetworkInterfaceWithSubnetsAndSG", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Sid": "AllowCreateNetworkInterfaceWithCloudShellTag", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "ManagedByCloudShell" } } }, { "Sid": "AllowCreateNetworkInterfacePermissionWithCloudShellTag", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:ResourceTag/ManagedByCloudShell": "" } } }, { "Sid": "AllowDeleteNetworkInterfaceWithCloudShellTag", "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:ResourceTag/ManagedByCloudShell": "" } } } ] }

Menggunakan kunci kondisi IAM untuk lingkungan VPC

Anda dapat menggunakan kunci CloudShell-specific kondisi untuk pengaturan VPC untuk memberikan kontrol izin tambahan untuk lingkungan VPC Anda. Anda juga dapat menentukan subnet dan grup keamanan yang dapat dan tidak dapat digunakan oleh lingkungan VPC.

CloudShell mendukung kunci kondisi berikut dalam kebijakan IAM:

  • CloudShell:VpcIds— Izinkan atau tolak satu atau lebih VPC

  • CloudShell:SubnetIds— Izinkan atau tolak satu atau lebih subnet

  • CloudShell:SecurityGroupIds— Izinkan atau tolak satu atau lebih grup keamanan

catatan

Jika izin untuk pengguna dengan akses ke CloudShell lingkungan publik dimodifikasi untuk menambahkan batasan pada cloudshell:createEnvironment tindakan, mereka masih dapat mengakses lingkungan publik yang ada. Namun, jika Anda ingin mengubah kebijakan IAM dengan pembatasan ini dan menonaktifkan akses mereka ke lingkungan publik yang ada, Anda harus terlebih dahulu memperbarui kebijakan IAM dengan pembatasan tersebut, dan kemudian memastikan bahwa setiap CloudShell pengguna di akun Anda secara manual menghapus CloudShell lingkungan publik yang ada menggunakan antarmuka pengguna CloudShell web (Tindakan → Hapus lingkungan).

Contoh kebijakan dengan kunci syarat untuk pengaturan VPC

Contoh-contoh berikut ini menunjukkan cara menggunakan kunci syarat untuk pengaturan VPC. Setelah Anda membuat pernyataan kebijakan dengan batasan yang diinginkan, tambahkan pernyataan kebijakan untuk pengguna atau peran target.

Pastikan pengguna hanya membuat lingkungan VPC dan menolak pembuatan lingkungan publik

Untuk memastikan bahwa pengguna hanya dapat membuat lingkungan VPC, gunakan izin tolak seperti yang ditunjukkan dalam contoh berikut:

{ "Statement": [ { "Sid": "DenyCloudShellNonVpcEnvironments", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "Null": { "cloudshell:VpcIds": "true" } } } ] }

Menolak akses pengguna ke VPC, subnet, atau grup keamanan tertentu

Untuk menolak akses pengguna ke VPC tertentu, gunakan StringEquals untuk memeriksa nilai syarat cloudshell:VpcIds. Contoh berikut menolak akses pengguna ke vpc-1 danvpc-2:

Untuk menolak akses pengguna ke VPC tertentu, gunakan StringEquals untuk memeriksa nilai syarat cloudshell:SubnetIds. Contoh berikut menolak akses pengguna ke subnet-1 dansubnet-2:

Untuk menolak akses pengguna ke VPC tertentu, gunakan StringEquals untuk memeriksa nilai syarat cloudshell:SecurityGroupIds. Contoh berikut menolak akses pengguna ke sg-1 dansg-2:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnforceOutOfSecurityGroups", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "cloudshell:SecurityGroupIds": [ "sg-1", "sg-2" ] } } } ] }

Izinkan pengguna membuat lingkungan dengan konfigurasi VPC tertentu

Untuk mengizinkan pengguna mengakses VPC tertentu, gunakan StringEquals untuk memeriksa nilai cloudshell:VpcIds kondisi. Contoh berikut memungkinkan pengguna mengakses vpc-1 danvpc-2:

Untuk mengizinkan pengguna mengakses VPC tertentu, gunakan StringEquals untuk memeriksa nilai cloudshell:SubnetIds kondisi. Contoh berikut memungkinkan pengguna mengakses subnet-1 dansubnet-2:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnforceStayInSpecificSubnets", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Allow", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "cloudshell:SubnetIds": [ "subnet-1", "subnet-2" ] } } } ] }

Untuk mengizinkan pengguna mengakses VPC tertentu, gunakan StringEquals untuk memeriksa nilai cloudshell:SecurityGroupIds kondisi. Contoh berikut memungkinkan pengguna mengakses sg-1 dansg-2:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EnforceStayInSpecificSecurityGroup", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Allow", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "cloudshell:SecurityGroupIds": [ "sg-1", "sg-2" ] } } } ] }

Izin untuk mengakses Layanan AWS

CloudShell menggunakan kredentif IAM yang Anda gunakan untuk masuk ke Konsol Manajemen AWS.

catatan

Untuk menggunakan kredentif IAM yang Anda gunakan untuk masuk ke Konsol Manajemen AWS, Anda harus memiliki cloudshell:PutCredentials izin.

Fitur pra-otentikasi ini CloudShell membuatnya nyaman digunakan AWS CLI. Namun, pengguna IAM masih memerlukan izin eksplisit untuk Layanan AWS yang dipanggil dari baris perintah.

Misalnya, pengguna IAM diharuskan membuat bucket Amazon S3 dan mengunggah file sebagai objek ke mereka. Anda dapat membuat kebijakan yang secara eksplisit mengizinkan tindakan tersebut. Konsol IAM menyediakan editor visual interaktif yang memandu melalui proses pembuatan dokumen JSON-formatted kebijakan. Setelah kebijakan dibuat, Anda dapat melampirkannya ke identitas IAM yang relevan (pengguna, grup, atau peran).

Untuk informasi selengkapnya tentang melampirkan kebijakan terkelola, lihat Men ambahkan izin identitas IAM (konsol) di Panduan Pengguna IAM.

Izin untuk mengakses fitur Amazon Q CLI di CloudShell

Untuk menggunakan fitur Amazon Q CLI di CloudShell, seperti saran sebaris, obrolan, dan terjemahan, pastikan Anda memiliki izin IAM yang diperlukan. Jika Anda tidak dapat mengakses fitur Amazon Q CLI di CloudShell, hubungi administrator Anda untuk memberi Anda izin IAM yang diperlukan. Untuk informasi selengkapnya, lihat contoh Identity-based kebijakan untuk Amazon Q Developer di Panduan Pengguna Pengembang Amazon Q.