Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
IAMKebijakan sampel tambahan untuk Session Manager
Lihat kebijakan contoh berikut untuk membantu Anda membuat kebijakan AWS Identity and Access Management (IAM) khusus untuk setiap kebijakan Session Manager skenario akses pengguna yang ingin Anda dukung.
Topik
Contoh 1: Berikan akses ke dokumen di konsol
Anda dapat mengizinkan pengguna menentukan dokumen kustom saat mereka meluncurkan sesi menggunakan konsol Pengelola Sesi. Contoh IAM kebijakan berikut memberikan izin untuk mengakses dokumen dengan nama yang dimulai dengan SessionDocument-
yang ditentukan Wilayah AWS
dan Akun AWS.
Untuk menggunakan kebijakan ini, ganti example resource
placeholder
dengan informasi Anda sendiri.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetDocument", "ssm:ListDocuments" ], "Resource": [ "arn:aws:ssm:
region
:account-id
:document/SessionDocument-*" ] } ] }
catatan
Konsol Session Manager hanya mendukung dokumen Session sessionType
yang memiliki Standard_Stream
yang digunakan untuk menentukan preferensi sesi. Untuk informasi selengkapnya, lihat Skema dokumen sesi.
Contoh 2: Batasi akses ke simpul tertentu yang dikelola
Anda dapat membuat IAM kebijakan yang menentukan node terkelola yang diizinkan untuk disambungkan oleh pengguna menggunakan Pengelola Sesi. Misalnya, kebijakan berikut memberi pengguna izin untuk memulai, mengakhiri, dan melanjutkan sesi mereka pada tiga node tertentu. Kebijakan membatasi pengguna untuk menyambung ke node selain yang ditentukan.
catatan
Untuk pengguna federasi, lihatContoh 4: Izinkan pengguna untuk mengakhiri hanya sesi yang mereka mulai.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890EXAMPLE", "arn:aws:ec2:us-east-2:123456789012:instance/i-abcdefghijEXAMPLE", "arn:aws:ec2:us-east-2:123456789012:instance/i-0e9d8c7b6aEXAMPLE", "arn:aws:ssm:us-east-2:123456789012:document/SSM-SessionManagerRunShell" ] }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] } ] }
Contoh 3: Batasi akses berdasarkan tanda
Anda dapat membatasi akses ke simpul terkelola berdasarkan tanda tertentu. Dalam contoh berikut, pengguna diizinkan untuk memulai dan melanjutkan sesi (Effect: Allow, Action: ssm:StartSession,
ssm:ResumeSession
) pada setiap node terkelola (Resource:
arn:aws:ec2:
) dengan syarat bahwa node tersebut adalah Finance WebServer (region
:987654321098
:instance/*ssm:resourceTag/Finance: WebServer
). Jika pengguna mengirimkan perintah ke simpul terkelola yang tidak ditandai atau yang memiliki tanda selain tanda selainFinance: WebServer
, hasil perintah akan mencakupAccessDenied
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ec2:us-east-2:123456789012:instance/*" ], "Condition": { "StringLike": { "ssm:resourceTag/Finance": [ "WebServers" ] } } }, { "Effect": "Allow", "Action": [ "ssm:TerminateSession", "ssm:ResumeSession" ], "Resource": [ "arn:aws:ssm:*:*:session/${aws:userid}-*" ] }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:us-east-2:123456789012:document/SSM-SessionManagerRunShell" ] } ] }
Anda dapat membuat IAM kebijakan yang mengizinkan pengguna untuk memulai sesi ke simpul terkelola yang ditandai beberapa tanda. Kebijakan berikut mengizinkan pengguna untuk memulai sesi ke simpul terkelola yang memiliki kedua tanda tertentu yang diterapkan untuk mereka. Jika pengguna mengirimkan perintah ke simpul terkelola yang tidak ditandai kedua tanda ini, hasil perintah akan mencakupAccessDenied
.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:StartSession" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/tag-key1":[ "tag-value1" ], "ssm:resourceTag/tag-key2":[ "tag-value2" ] } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:us-east-2:123456789012:document/SSM-SessionManagerRunShell" ] } ] }
Untuk informasi selengkapnya tentang membuat IAM kebijakan, lihat Kebijakan Terkelola dan Kebijakan Inline dalam Panduan IAM Pengguna. Untuk informasi selengkapnya tentang menandai node terkelola, lihat Menandai EC2 sumber daya Amazon Anda di Panduan EC2 Pengguna Amazon (konten berlaku untuk Windows and Linux simpul terkelola). Untuk informasi selengkapnya tentang meningkatkan postur keamanan Anda terhadap perintah tingkat root yang tidak sah di simpul terkelola Anda, lihat Membatasi akses ke perintah tingkat root melalui SSM Agent
Contoh 4: Izinkan pengguna untuk mengakhiri hanya sesi yang mereka mulai
Session Manager menyediakan dua metode untuk mengontrol sesi mana yang boleh diakhiri oleh pengguna federasi di Anda Akun AWS .
-
Gunakan variabel
{aws:userid}
dalam kebijakan izin AWS Identity and Access Management (IAM). Pengguna federasi hanya dapat mengakhiri sesi yang mereka mulai. Untuk pengguna yang tidak terfederasi, gunakan Metode 1. Untuk pengguna federasi, gunakan Metode 2. -
Gunakan tanda yang disediakan dengan AWS tanda dalam kebijakan IAM izin. Dalam kebijakan, Anda memasukkan ketentuan yang mengizinkan pengguna untuk mengakhiri hanya sesi yang ditandai dengan tanda tertentu yang telah diberikan oleh AWS. Metode ini bekerja untuk semua akun, termasuk yang menggunakan federasi IDs untuk memberikan akses ke AWS.
Metode 1: Berikan TerminateSession hak istimewa menggunakan variabel {aws:username}
IAMKebijakan berikut mengizinkan pengguna untuk melihat semua sesi di akun Anda. IDs Namun, pengguna dapat berinteraksi dengan simpul terkelola hanya melalui sesi yang mereka mulai. Pengguna yang ditetapkan kebijakan berikut tidak dapat terhubung ke atau mengakhiri sesi pengguna lain. Kebijakan menggunakan {aws:username}
variabel untuk mencapai hal ini.
catatan
Metode ini tidak bekerja untuk akun yang memberikan akses ke AWS menggunakan federasi. IDs
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:DescribeSessions" ], "Effect": "Allow", "Resource": [ "*" ] }, { "Action": [ "ssm:TerminateSession" ], "Effect": "Allow", "Resource": [ "arn:aws:ssm:*:*:session/${aws:username}-*" ] } ] }
Metode 2: Berikan TerminateSession hak istimewa menggunakan tanda yang disediakan oleh AWS
Anda dapat mengontrol sesi mana yang dapat diakhiri oleh pengguna dengan memasukkan variabel kunci tanda kondisional dalam IAM kebijakan. Ketentuan menetapkan bahwa pengguna hanya dapat mengakhiri sesi yang ditandai dengan salah satu atau kedua variabel kunci tanda tertentu dan nilai tertentu ini.
Saat pengguna Akun AWS memulai sesi, Session Manager menerapkan dua tag sumber daya ke sesi. Tanda sumber daya pertama adalah aws:ssmmessages:target-id
, yang dengannya Anda menentukan ID target yang diizinkan untuk diakhiri oleh pengguna. Tag sumber daya lainnya adalah aws:ssmmessages:session-id
, dengan nilai dalam format
.role-id
:caller-specified-role-name
catatan
Session Manager tidak mendukung tanda khusus untuk kebijakan kontrol IAM akses ini. Anda harus menggunakan tanda sumber daya yang disediakan oleh AWS, yang dijelaskan di bawah ini.
-
aws:ssmmessages:target-id
-
Dengan kunci tanda ini, Anda memasukkan ID simpul terkelola sebagai nilai dalam kebijakan. Di blok kebijakan berikut, pernyataan ketentuan mengizinkan pengguna untuk mengakhiri hanya EXAMPLE i-02573cafcf simpul.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:target-id": [ "i-02573cafcfEXAMPLE" ] } } } ] }
Jika pengguna mencoba untuk mengakhiri sesi yang belum diberi izin
TerminateSession
ini, mereka menerima kesalahanAccessDeniedException
. -
aws:ssmmessages:session-id
-
Kunci tanda ini mencakup variabel untuk ID sesi sebagai nilai dalam permintaan untuk memulai sesi.
Contoh berikut menunjukkan kebijakan untuk kasus di mana tipe pemanggil adalah
User
. Nilai yang Anda sediakan untukaws:ssmmessages:session-id
adalah ID pengguna. Dalam contoh ini,AIDIODR4TAW7CSEXAMPLE
mewakili ID pengguna di Akun AWS Anda. Untuk mengambil ID untuk pengguna di Anda Akun AWS, gunakan IAM perintah,get-user
. Untuk selengkapnya, lihat mendapatkan pengguna di AWS Identity and Access Management bagian IAMPanduan Pengguna.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:session-id": [ "AIDIODR4TAW7CSEXAMPLE" ] } } } ] }
Contoh berikut menunjukkan kebijakan untuk kasus di mana tipe pemanggil adalah
AssumedRole
. Anda dapat menggunakan variabel{aws:userid}
untuk nilai yang Anda sediakan untukaws:ssmmessages:session-id
. Atau, Anda dapat hardcode ID peran untuk nilai yang Anda sediakan untukaws:ssmmessages:session-id
. Jika Anda hardcode ID peran, Anda harus memberi nilai dalam format
. Misalnya,role-id
:caller-specified-role-name
AIDIODR4TAW7CSEXAMPLE:MyRole
.penting
Agar tanda sistem diterapkan, ID peran yang Anda sediakan hanya dapat berisi karakter berikut: huruf Unicode, 0-9, spasi,
_
,.
,:
,/
,=
,+
,-
,@
, dan\
.Untuk mengambil ID peran untuk peran di Anda Akun AWS, gunakan
get-caller-identity
perintah. Untuk informasi, lihat get-caller-identitydi Referensi AWS CLI Perintah.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:TerminateSession" ], "Resource": "*", "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:session-id": [ "${aws:userid}*" ] } } } ] }
Jika pengguna mencoba mengakhiri sesi yang belum diberi izin
TerminateSession
ini, mereka menerima kesalahanAccessDeniedException
. aws:ssmmessages:target-id
danaws:ssmmessages:session-id
-
Anda juga dapat membuat IAM kebijakan yang mengizinkan pengguna untuk mengakhiri sesi yang ditandai kedua tanda sistem, seperti yang ditunjukkan dalam contoh ini.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ssm:TerminateSession" ], "Resource":"*", "Condition":{ "StringLike":{ "ssm:resourceTag/aws:ssmmessages:target-id":[ "i-02573cafcfEXAMPLE" ], "ssm:resourceTag/aws:ssmmessages:session-id":[ "${aws:userid}*" ] } } } ] }
Contoh 5: Izinkan akses penuh (administratif) ke semua sesi
IAMKebijakan berikut mengizinkan pengguna untuk sepenuhnya berinteraksi dengan semua simpul terkelola dan semua sesi yang dibuat oleh semua pengguna untuk semua simpul. Izin harus diberikan hanya untuk Administrator yang membutuhkan kontrol penuh atas organisasi Anda. Session Manager Aktivitas.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ssm:StartSession", "ssm:TerminateSession", "ssm:ResumeSession", "ssm:DescribeSessions", "ssm:GetConnectionStatus" ], "Effect": "Allow", "Resource": [ "*" ] } ] }