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 IAM kebijakan
Dengan sumber daya manajemen akses yang dapat disediakan oleh AWS Identity and Access Management, administrator dapat memberikan izin kepada IAM pengguna. Dengan begitu, pengguna ini dapat mengakses AWS CloudShell dan menggunakan 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 ke pengguna adalah melalui kebijakan AWS terkelola. Kebijakan AWS terkelola adalah kebijakan mandiri yang dibuat dan dikelola oleh AWS. Kebijakan AWS terkelola berikut ini AWS CloudShell dapat dilampirkan pada IAM identitas:
-
AWS CloudShellFullAccess: Memberikan izin untuk menggunakan AWS CloudShell dengan akses penuh ke semua fitur.
AWS CloudShellFullAccessKebijakan ini menggunakan karakter wildcard (*) untuk memberikan IAM identitas (pengguna, peran, atau grup) akses penuh ke CloudShell dan fitur. Untuk informasi selengkapnya tentang kebijakan ini, lihat AWS CloudShellFullAccessdi Panduan Pengguna Kebijakan AWS Terkelola.
catatan
IAMidentitas dengan kebijakan AWS terkelola berikut juga dapat diluncurkan CloudShell. Namun, kebijakan ini memberikan izin ekstensif. Jadi, kami menyarankan Anda hanya memberikan kebijakan ini jika kebijakan tersebut penting untuk peran pekerjaan IAM pengguna.
-
Administrator: Menyediakan IAM pengguna dengan akses penuh dan memungkinkan mereka untuk mendelegasikan izin ke setiap layanan dan sumber daya di. AWS
-
Pengguna daya pengembang: Memungkinkan IAM pengguna untuk melakukan tugas pengembangan aplikasi dan membuat serta mengonfigurasi sumber daya dan layanan yang mendukung pengembangan aplikasi yang AWS sadar.
Untuk informasi selengkapnya tentang melampirkan kebijakan terkelola, lihat Menambahkan izin IAM identitas (konsol) di IAMPanduan Pengguna.
Mengelola tindakan yang diizinkan dalam AWS CloudShell menggunakan kebijakan khusus
Untuk mengelola tindakan yang dapat dilakukan IAM pengguna CloudShell, buat kebijakan khusus yang menggunakan kebijakan CloudShellPolicy terkelola sebagai templat. Atau, edit kebijakan inline yang disematkan dalam IAM identitas yang relevan (pengguna, grup, atau peran).
Misalnya, Anda dapat mengizinkan IAM pengguna untuk mengakses CloudShell, tetapi mencegah mereka meneruskan kredensi CloudShell lingkungan yang digunakan untuk masuk. AWS Management Console
penting
Untuk memulai AWS CloudShell dari AWS Management Console, IAM pengguna memerlukan izin untuk tindakan berikut:
-
CreateEnvironment
-
CreateSession
-
GetEnvironmentStatus
-
StartEnvironment
Jika salah satu tindakan ini tidak diizinkan secara eksplisit oleh kebijakan terlampir, kesalahan IAM izin akan ditampilkan saat Anda mencoba meluncurkan. CloudShell
Nama | Deskripsi izin yang diberikan | Diperlukan untuk meluncurkan CloudShell? |
---|---|---|
|
Menciptakan CloudShell lingkungan, mengambil tata letak di awal CloudShell sesi, dan menyimpan tata letak saat ini dari aplikasi web di backend. Izin ini hanya mengharapkan |
Ya |
|
Terhubung ke CloudShell lingkungan dari AWS Management Console. |
Ya |
|
Baca status CloudShell lingkungan. |
Ya |
|
Menghapus CloudShell lingkungan. |
Tidak |
|
Menghasilkan Amazon URLs S3 yang telah ditandatangani sebelumnya yang digunakan untuk mengunduh file CloudShell melalui menggunakan antarmuka web CloudShell . Ini tidak tersedia untuk VPC lingkungan. |
Tidak |
|
Menghasilkan Amazon URLs S3 yang telah ditandatangani sebelumnya yang digunakan untuk mengunggah file CloudShell melalui menggunakan antarmuka web CloudShell . Ini tidak tersedia untuk VPC lingkungan. |
Tidak |
|
Menjelaskan lingkungan. |
Tidak |
|
Meneruskan kredensi yang digunakan untuk masuk ke ke. AWS Management Console CloudShell |
Tidak |
|
Memulai CloudShell lingkungan yang dihentikan. |
Ya |
|
Menghentikan CloudShell lingkungan yang sedang berjalan. |
Tidak |
Contoh IAM kebijakan untuk CloudShell
Contoh berikut menunjukkan bagaimana kebijakan dapat dibuat untuk membatasi siapa yang dapat mengakses CloudShell. Contoh juga menunjukkan tindakan yang dapat dilakukan di lingkungan shell.
Kebijakan berikut ini memberlakukan penolakan lengkap atas akses CloudShell dan fitur-fiturnya.
{ "Version": "2012-10-17", "Statement": [{ "Sid": "DenyCloudShell", "Effect": "Deny", "Action": [ "cloudshell:*" ], "Resource": "*" }] }
Kebijakan berikut ini memungkinkan IAM pengguna untuk mengakses CloudShell tetapi memblokir mereka dari membuat pra-ditandatangani URLs untuk upload dan download file. Pengguna masih dapat mentransfer file ke dan dari lingkungan, menggunakan klien seperti wget
misalnya.
{ "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 IAM pengguna untuk mengakses CloudShell. Namun, kebijakan ini mencegah kredensional yang Anda gunakan untuk masuk masuk AWS Management Console agar tidak diteruskan ke lingkungan. CloudShell IAMpengguna dengan kebijakan ini perlu mengonfigurasi kredensialnya secara manual di dalamnya. CloudShell
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUsingCloudshell", "Effect": "Allow", "Action": [ "cloudshell:*" ], "Resource": "*" }, { "Sid": "DenyCredentialForwarding", "Effect": "Deny", "Action": [ "cloudshell:PutCredentials" ], "Resource": "*" }] }
Kebijakan berikut memungkinkan IAM pengguna untuk membuat AWS CloudShell lingkungan.
{ "Version": "2012-10-17", "Statement": [{ "Sid": "CloudShellUser", "Effect": "Allow", "Action": [ "cloudshell:CreateEnvironment", "cloudshell:CreateSession", "cloudshell:GetEnvironmentStatus", "cloudshell:StartEnvironment" ], "Resource": "*" }] }
IAMIzin yang diperlukan untuk membuat dan menggunakan lingkungan CloudShell VPC
Untuk membuat dan menggunakan CloudShell VPC lingkungan, IAM administrator harus mengaktifkan akses ke EC2 izin Amazon VPC tertentu. Bagian ini mencantumkan EC2 izin Amazon yang diperlukan untuk membuat dan menggunakan VPC lingkungan.
Untuk membuat VPC lingkungan, IAM kebijakan yang ditetapkan ke peran Anda harus menyertakan EC2 izin Amazon 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 ENI sumber daya (ENIsdibuat untuk CloudShell VPC lingkungan ditandai dengan ManagedByCloudShell kunci) yang dibuat olehnya. Jika izin ini tidak diaktifkan, Anda harus membersihkan ENI sumber daya secara manual setelah setiap penggunaan CloudShell VPC lingkungan.
IAMkebijakan yang memberikan CloudShell akses penuh termasuk akses ke VPC
Contoh berikut menampilkan cara mengaktifkan izin penuh, termasuk akses keVPC, ke CloudShell:
{ "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 tombol IAM kondisi untuk VPC lingkungan
Anda dapat menggunakan kunci kondisi CloudShell khusus untuk VPC pengaturan guna memberikan kontrol izin tambahan untuk VPC lingkungan Anda. Anda juga dapat menentukan subnet dan grup keamanan yang dapat dan tidak dapat digunakan oleh VPC lingkungan.
CloudShell mendukung kunci kondisi berikut dalam IAM kebijakan:
-
CloudShell:VpcIds
— Izinkan atau tolak satu atau lebih VPCs -
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 pembatasan pada cloudshell:createEnvironment
tindakan, mereka masih dapat mengakses lingkungan publik yang ada. Namun, jika Anda ingin mengubah IAM kebijakan dengan pembatasan ini dan menonaktifkan akses mereka ke lingkungan publik yang ada, Anda harus terlebih dahulu memperbarui IAM kebijakan dengan pembatasan tersebut, dan kemudian memastikan bahwa setiap CloudShell pengguna di akun Anda secara manual menghapus lingkungan publik yang ada menggunakan antarmuka pengguna CloudShell web (Actions → Delete CloudShell environment).
Contoh kebijakan dengan tombol kondisi untuk VPC pengaturan
Contoh berikut menunjukkan cara menggunakan tombol kondisi untuk VPC pengaturan. Setelah Anda membuat pernyataan kebijakan dengan batasan yang diinginkan, tambahkan pernyataan kebijakan untuk pengguna atau peran target.
Pastikan bahwa pengguna hanya membuat VPC lingkungan dan menolak penciptaan lingkungan publik
Untuk memastikan bahwa pengguna hanya dapat membuat VPC lingkungan, gunakan izin tolak seperti yang ditunjukkan pada contoh berikut:
{ "Statement": [ { "Sid": "DenyCloudShellNonVpcEnvironments", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "Null": { "cloudshell:VpcIds": "true" } } } ] }
Menolak akses pengguna ke grup tertentuVPCs, subnet, atau keamanan
Untuk menolak akses pengguna ke spesifikVPCs, gunakan StringEquals
untuk memeriksa nilai cloudshell:VpcIds
kondisi. Contoh berikut menolak akses pengguna ke vpc-1
danvpc-2
:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceOutOfVpc", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "StringEquals": { "cloudshell:VpcIds": [ "vpc-1", "vpc-2" ] } } } ] }
Untuk menolak akses pengguna ke spesifikVPCs, gunakan StringEquals
untuk memeriksa nilai cloudshell:SubnetIds
kondisi. Contoh berikut menolak akses pengguna ke subnet-1
dansubnet-2
:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceOutOfVpc", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "StringEquals": { "cloudshell:VpcIds": [ "vpc-1", "vpc-2" ] } } } ] }
Untuk menolak akses pengguna ke spesifikVPCs, gunakan StringEquals
untuk memeriksa nilai cloudshell:SecurityGroupIds
kondisi. Contoh berikut menolak akses pengguna ke sg-1
dansg-2
:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceOutOfSecurityGroups", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Deny", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "cloudshell:SecurityGroupIds": [ "sg-1", "sg-2" ] } } } ] }
Memungkinkan pengguna untuk membuat lingkungan dengan VPC konfigurasi tertentu
Untuk memungkinkan pengguna mengakses ke spesifikVPCs, gunakan StringEquals
untuk memeriksa nilai cloudshell:VpcIds
kondisi. Contoh berikut memungkinkan pengguna mengakses vpc-1
danvpc-2
:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceStayInSpecificVpc", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "cloudshell:VpcIds": [ "vpc-1", "vpc-2" ] } } } ] }
Untuk memungkinkan pengguna mengakses ke spesifikVPCs, gunakan StringEquals
untuk memeriksa nilai cloudshell:SubnetIds
kondisi. Contoh berikut memungkinkan pengguna mengakses subnet-1
dansubnet-2
:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceStayInSpecificSubnets", "Action": [ "cloudshell:CreateEnvironment" ], "Effect": "Allow", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "cloudshell:SubnetIds": [ "subnet-1", "subnet-2" ] } } } ] }
Untuk memungkinkan pengguna mengakses ke spesifikVPCs, gunakan StringEquals
untuk memeriksa nilai cloudshell:SecurityGroupIds
kondisi. Contoh berikut memungkinkan pengguna mengakses sg-1
dansg-2
:
{ "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 IAM kredensil yang Anda gunakan untuk masuk ke. AWS Management Console
catatan
Untuk menggunakan IAM kredensil yang Anda gunakan untuk masuk AWS Management Console, Anda harus memiliki cloudshell:PutCredentials
izin.
Fitur pra-otentikasi ini CloudShell membuatnya nyaman untuk digunakan. AWS CLI Namun, IAM pengguna masih memerlukan izin eksplisit untuk Layanan AWS yang dipanggil dari baris perintah.
Misalnya, anggaplah IAM pengguna diminta untuk membuat bucket Amazon S3 dan mengunggah file sebagai objek kepada mereka. Anda dapat membuat kebijakan yang secara eksplisit mengizinkan tindakan tersebut. IAMKonsol menyediakan editor visual interaktif yang memandu melalui proses membangun dokumen kebijakan JSON yang diformat. Setelah kebijakan dibuat, Anda dapat melampirkannya ke IAM identitas yang relevan (pengguna, grup, atau peran).
Untuk informasi selengkapnya tentang melampirkan kebijakan terkelola, lihat Menambahkan izin IAM identitas (konsol) di IAMPanduan Pengguna.
Izin untuk mengakses fitur Amazon Q CLI di CloudShell
Untuk menggunakan CLI fitur Amazon Q CloudShell, seperti saran sebaris, obrolan, dan terjemahkan, pastikan Anda memiliki IAM izin yang diperlukan. Jika Anda tidak dapat mengakses CLI fitur Amazon Q CloudShell, hubungi administrator Anda untuk memberi Anda IAM izin yang diperlukan. Untuk informasi selengkapnya, lihat contoh kebijakan berbasis identitas untuk Pengembang Amazon Q di Panduan Pengguna Pengembang Amazon Q.