Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
IAMtutorial: Tentukan izin untuk mengakses AWS sumber daya berdasarkan tag
Attribute-based access control (ABAC) adalah strategi otorisasi yang mendefinisikan izin berdasarkan atribut. Dalam AWS, atribut ini disebut tag. Anda dapat melampirkan tag ke IAM sumber daya, termasuk IAM entitas (pengguna atau peran) dan AWS sumber daya. Kemudian, Anda dapat menentukan kebijakan yang menggunakan kunci syarat tanda untuk memberikan izin kepada penanggung jawab Anda berdasarkan tanda mereka. Saat Anda menggunakan tag untuk mengontrol akses ke AWS sumber daya Anda, Anda memungkinkan tim dan sumber daya Anda tumbuh dengan lebih sedikit perubahan pada AWS kebijakan. ABACKebijakan lebih fleksibel daripada AWS kebijakan tradisional, yang mengharuskan Anda untuk mencantumkan setiap sumber daya individu. Untuk informasi lebih lanjut tentang ABAC dan keunggulannya dibandingkan kebijakan tradisional, lihatTentukan izin berdasarkan atribut dengan otorisasi ABAC.
catatan
Anda harus memberikan satu nilai untuk setiap tag sesi. AWS Security Token Service tidak mendukung tag sesi multi-nilai.
Topik
- Gambaran umum tutorial
- Prasyarat
- Langkah 1: Buat pengguna uji
- Langkah 2: Buat ABAC kebijakan
- Langkah 3: Buat peran
- Langkah 4: Uji pembuatan rahasia
- Langkah 5: Uji menampilkan rahasia
- Langkah 6: Uji skalabilitas
- Langkah 7: Uji memperbarui dan menghapus rahasia
- Ringkasan
- Sumber daya terkait
- IAMtutorial: Gunakan tag SAML sesi untuk ABAC
Gambaran umum tutorial
Tutorial ini menunjukkan cara membuat dan menguji kebijakan yang memungkinkan IAM peran dengan tag utama untuk mengakses sumber daya dengan tag yang cocok. Saat prinsipal mengajukan permintaan ke AWS, izin mereka diberikan berdasarkan apakah tanda prinsipal dan tanda sumber daya cocok. Strategi ini memungkinkan individu untuk melihat atau mengedit hanya AWS sumber daya yang diperlukan untuk pekerjaan mereka.
Skenario
Asumsikan bahwa Anda adalah pengembang utama di sebuah perusahaan besar bernama Example Corporation, dan Anda adalah IAM administrator yang berpengalaman. Anda terbiasa membuat dan mengelola IAM pengguna, peran, dan kebijakan. Anda ingin memastikan anggota teknisi pengembangan dan tim jaminan kualitas Anda dapat mengakses sumber daya yang mereka butuhkan. Anda juga memerlukan strategi yang dapat menskalakan pertumbuhan perusahaan Anda.
Anda memilih untuk menggunakan tag AWS sumber daya dan tag utama IAM peran untuk menerapkan ABAC strategi untuk layanan yang mendukungnya, dimulai dengan AWS Secrets Manager. Untuk mempelajari layanan mana yang mendukung otorisasi berdasarkan tanda, lihat AWS layanan yang bekerja dengan IAM. Untuk mempelajari kunci kondisi penandaan yang dapat Anda gunakan dalam kebijakan dengan setiap tindakan dan sumber daya layanan, lihat Tindakan, Sumber Daya, dan Kunci Kondisi untuk AWS Layanan. Anda dapat mengonfigurasi penyedia identitas SAML berbasis atau web Anda untuk meneruskan tag sesi AWS. Ketika karyawan Anda bergabung AWS, atribut mereka diterapkan pada AWS prinsipal yang dihasilkan. Anda kemudian dapat menggunakan ABAC untuk mengizinkan atau menolak izin berdasarkan atribut tersebut. Untuk mempelajari bagaimana menggunakan tag sesi dengan identitas SAML federasi berbeda dari tutorial ini, lihatIAMtutorial: Gunakan tag SAML sesi untuk ABAC.
Anggota tim Insinyur dan Jaminan Kualitas Anda berada di proyek Pegasus atau proyekUnicorn Anda. Anda memilih proyek 3 karakter dan nilai tanda tim berikut:
-
access-project
=peg
untuk proyek Pegasus -
access-project
=uni
untuk proyek Unicorn -
access-team
=eng
untuk tim Insinyur -
access-team
=qas
untuk tim Jaminan Kualitas
Selain itu, Anda memilih untuk meminta tag alokasi cost-center
biaya untuk mengaktifkan laporan AWS penagihan kustom. Untuk informasi selengkapnya, lihat Penggunaan Tanda Alokasi Biaya dalam Panduan Pengguna AWS Billing and Cost Management .
Ringkasan keputusan penting
-
Karyawan masuk dengan kredensi IAM pengguna dan kemudian mengambil IAM peran untuk tim dan proyek mereka. Jika perusahaan Anda memiliki sistem identitas sendiri, Anda dapat mengatur federasi untuk memungkinkan karyawan untuk mengambil peran tanpa IAM pengguna. Untuk informasi selengkapnya, lihat IAMtutorial: Gunakan tag SAML sesi untuk ABAC.
-
Kebijakan yang sama terlampir pada semua peran. Tindakan diizinkan atau ditolak berdasarkan tanda.
-
Karyawan dapat membuat sumber daya baru, tetapi hanya jika mereka melampirkan tanda yang sama ke sumber daya yang diterapkan pada peran mereka. Hal ini memastikan bahwa karyawan dapat melihat sumber daya setelah mereka membuatnya. Administrator tidak lagi diharuskan memperbarui kebijakan dengan sumber ARN daya baru.
-
Karyawan dapat membaca sumber daya yang dimiliki oleh tim mereka, apa pun proyeknya.
-
Karyawan dapat memperbarui dan menghapus sumber daya yang dimiliki oleh tim dan proyek mereka sendiri.
-
IAMadministrator dapat menambahkan peran baru untuk proyek baru. Mereka dapat membuat dan menandai IAM pengguna baru untuk memungkinkan akses ke peran yang sesuai. Administrator tidak diwajibkan untuk mengedit kebijakan untuk mendukung proyek atau anggota tim baru.
Di tutorial ini, Anda akan menandai setiap sumber daya, menandai peran proyek Anda, dan menambahkan kebijakan ke peran untuk memungkinkan perilaku yang dijelaskan sebelumnya. Kebijakan yang dihasilkan memungkinkan peran Create
, Read
, Update
, dan Delete
mengakses sumber daya yang ditandai dengan tanda proyek dan tanda tim yang sama. Kebijakan ini juga memungkinkan proyek silang Read
untuk mengakses sumber daya yang ditandai dengan tim yang sama.
Prasyarat
Untuk melakukan langkah-langkah di tutorial ini, Anda harus sudah memiliki hal-hal berikut:
-
Sebuah Akun AWS yang dapat Anda masuki sebagai pengguna dengan izin administratif.
-
ID akun 12 digit Anda, yang Anda gunakan untuk membuat peran di langkah 3.
Untuk menemukan nomor ID AWS akun Anda menggunakan AWS Management Console, pilih Support pada bilah navigasi di kanan atas, lalu pilih Support Center. Nomor akun (ID) muncul di panel navigasi di sebelah kiri.
-
Pengalaman membuat dan mengedit IAM pengguna, peran, dan kebijakan di AWS Management Console. Namun, jika Anda memerlukan bantuan mengingat proses IAM manajemen, tutorial ini menyediakan tautan di mana Anda dapat melihat step-by-step instruksi.
Langkah 1: Buat pengguna uji
Untuk pengujian, buat empat IAM pengguna dengan izin untuk mengambil peran dengan tag yang sama. Ini memudahkan untuk menambahkan lebih banyak pengguna ke tim Anda. Saat Anda menandai pengguna, mereka secara otomatis mendapatkan akses untuk mengambil peran yang tepat. Anda tidak perlu menambahkan pengguna ke kebijakan kepercayaan peran tersebut jika mereka hanya menangani satu proyek dan tim.
-
Buat kebijakan yang dikelola pelanggan berikut bernama
access-assume-role
. Untuk informasi selengkapnya tentang membuat JSON kebijakan, lihatMembuat IAM kebijakan.ABACpolicy: Asumsikan ABAC peran apa pun, tetapi hanya jika pengguna dan tag peran cocok
Kebijakan berikut memungkinkan pengguna mengambil peran apa pun di akun Anda dengan prefiks nama
access-
. Peran tersebut juga harus ditandai dengan tanda proyek, tim, dan pusat biaya yang sama dengan pengguna.Untuk menggunakan kebijakan ini, ganti teks placeholder yang dicetak miring dengan informasi akun Anda.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "TutorialAssumeRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
account-ID-without-hyphens
:role/access-*", "Condition": { "StringEquals": { "iam:ResourceTag/access-project": "${aws:PrincipalTag/access-project}", "iam:ResourceTag/access-team": "${aws:PrincipalTag/access-team}", "iam:ResourceTag/cost-center": "${aws:PrincipalTag/cost-center}" } } } ] }Untuk menskalakan tutorial ini ke sejumlah besar pengguna, Anda dapat melampirkan kebijakan ke grup dan menambahkan setiap pengguna ke grup. Untuk informasi selengkapnya, silakan lihat Buat grup IAM pengguna dan Mengedit pengguna dalam grup IAM pengguna.
-
Buat IAM pengguna berikut, lampirkan kebijakan
access-assume-role
izin. Pastikan Anda memilih Menyediakan akses pengguna ke AWS Management Console, dan kemudian menambahkan tag berikut.Nama pengguna Kunci tag pengguna Nilai tag pengguna Akses-a rnav-peg-eng
access-project
access-team
cost-center
peg
eng
987654
Akses-m ary-peg-qas
access-project
access-team
cost-center
peg
qas
987654
Akses-s aanvi-uni-eng
access-project
access-team
cost-center
uni
eng
123456
Akses-c arlos-uni-qas
access-project
access-team
cost-center
uni
qas
123456
Langkah 2: Buat ABAC kebijakan
Buat kebijakan berikut bernama access-same-project-team
. Anda akan menambahkan kebijakan ini ke peran tersebut pada langkah berikutnya. Untuk informasi selengkapnya tentang membuat JSON kebijakan, lihatMembuat IAM kebijakan.
Untuk kebijakan tambahan yang dapat Anda sesuaikan untuk tutorial ini, lihat halaman berikut:
ABACKebijakan: Akses Sumber Daya Secrets Manager Hanya Saat Prinsipal dan Tag Sumber Daya Cocokkan
Kebijakan berikut memungkinkan penanggung jawab membuat, membaca, mengedit, dan menghapus sumber daya, tetapi hanya jika sumber daya tersebut ditandai dengan pasangan nilai kunci yang sama dengan penanggung jawab. Saat prinsipal membuat sumber daya, mereka harus menambahkan tanda access-project
, access-team
, dan cost-center
dengan nilai yang cocok dengan tanda prinsipal. Kebijakan juga memungkinkan penambahan opsi tanda Name
atau OwnedBy
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllActionsSecretsManagerSameProjectSameTeam", "Effect": "Allow", "Action": "secretsmanager:*", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/access-project": "${aws:PrincipalTag/access-project}", "aws:ResourceTag/access-team": "${aws:PrincipalTag/access-team}", "aws:ResourceTag/cost-center": "${aws:PrincipalTag/cost-center}" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "access-project", "access-team", "cost-center", "Name", "OwnedBy" ] }, "StringEqualsIfExists": { "aws:RequestTag/access-project": "${aws:PrincipalTag/access-project}", "aws:RequestTag/access-team": "${aws:PrincipalTag/access-team}", "aws:RequestTag/cost-center": "${aws:PrincipalTag/cost-center}" } } }, { "Sid": "AllResourcesSecretsManagerNoTags", "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword", "secretsmanager:ListSecrets" ], "Resource": "*" }, { "Sid": "ReadSecretsManagerSameTeam", "Effect": "Allow", "Action": [ "secretsmanager:Describe*", "secretsmanager:Get*", "secretsmanager:List*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/access-team": "${aws:PrincipalTag/access-team}" } } }, { "Sid": "DenyUntagSecretsManagerReservedTags", "Effect": "Deny", "Action": "secretsmanager:UntagResource", "Resource": "*", "Condition": { "ForAnyValue:StringLike": { "aws:TagKeys": "access-*" } } }, { "Sid": "DenyPermissionsManagement", "Effect": "Deny", "Action": "secretsmanager:*Policy", "Resource": "*" } ] }
Apa yang dilakukan kebijakan ini?
-
Pernyataan
AllActionsSecretsManagerSameProjectSameTeam
memungkinkan semua tindakan layanan ini pada semua sumber daya terkait, tetapi hanya jika tanda sumber daya cocok dengan tanda prinsipal. Dengan menambahkan"Action": "secretsmanager:*"
ke kebijakan, akan menumbuhkan kebijakan seiring bertumbuhnya Secrets Manager. Jika Secrets Manager menambahkan API operasi baru, Anda tidak diharuskan menambahkan tindakan itu ke pernyataan. Pernyataan tersebut mengimplementasikan ABAC menggunakan tiga blok kondisi. Permintaan hanya diperbolehkan jika ketiga blok dikembalikan dengan benar.-
Blok kondisi pertama dari pernyataan ini dikembalikan dengan benar jika kunci tanda yang ditentukan ada pada sumber daya, dan nilainya cocok dengan tanda prinsipal. Blok ini mengembalikan kesalahan tanda yang tidak sesuai, atau tindakan yang tidak mendukung penandaan sumber daya. Untuk mempelajari tindakan mana yang tidak diizinkan oleh blok ini, lihat Tindakan, Sumber Daya, dan Kunci Kondisi untuk AWS Secrets Manager. Halaman tersebut menunjukkan bahwa tindakan yang dilakukan pada tipe sumber daya Rahasia mendukung
secretsmanager:ResourceTag/tag-key
kunci kondisi. Beberapa tindakan Secrets Manager tidak mendukung tipe sumber daya tersebut, termasukGetRandomPassword
danListSecrets
. Anda harus membuat pernyataan tambahan untuk mengizinkan tindakan tersebut. -
Blok kondisi kedua menjadi benar jika setiap kunci tanda yang diteruskan di permintaan disertakan dalam daftar yang ditentukan. Hal ini dilakukan menggunakan
ForAllValues
dengan operator kondisiStringEquals
. Jika tidak ada kunci atau subset dari set kunci yang diteruskan, kondisi menjadi benar. Hal ini memungkinkan operasiGet*
yang tidak memungkinkan tanda diteruskan di permintaan. Jika pemohon menyertakan kunci tanda yang tidak ada dalam daftar, kondisi menjadi salah. Setiap kunci tanda yang diteruskan di permintaan harus sesuai dengan anggota daftar ini. Untuk informasi selengkapnya, lihat Kunci konteks multivaluasi. -
Blok kondisi ketiga menjadi benar jika permintaan mendukung tanda yang lolos, jika ketiga tanda hadir, dan jika sesuai dengan nilai tanda prinsipal. Blok ini juga menjadi benar jika permintaan tidak mendukung tanda yang diteruskan. Ini berkat ...IfExists di operator kondisi. Blok menjadi salah jika tidak ada tanda yang diteruskan selama tindakan yang mendukungnya, atau jika kunci dan nilai tanda tidak cocok.
-
-
Pernyataan
AllResourcesSecretsManagerNoTags
memungkinkan tindakanGetRandomPassword
danListSecrets
yang tidak diperbolehkan oleh pernyataan pertama. -
Pernyataan
ReadSecretsManagerSameTeam
memungkinkan operasi hanya baca jika prinsipal ditandai dengan tanda access-team yang sama sebagai sumber daya. Hal ini diperbolehkan terlepas dari tanda proyek atau tanda pusat biaya. -
Pernyataan
DenyUntagSecretsManagerReservedTags
menolak permintaan untuk menghapus tanda dengan kunci yang dimulai dengan "access-" dari Secrets Manager. Tanda ini digunakan untuk mengontrol akses ke sumber daya, sehingga menghapus tanda dapat menghapus izin. -
Pernyataan
DenyPermissionsManagement
menolak akses untuk membuat, mengedit, atau menghapus kebijakan berbasis sumber daya Secrets Manager. Kebijakan ini dapat digunakan untuk mengubah izin rahasia.
penting
Kebijakan ini menggunakan strategi untuk memungkinkan semua tindakan untuk layanan, tetapi dengan tegas menolak tindakan yang melanggar izin. Menolak tindakan akan membatalkan kebijakan lain yang memungkinkan penanggung jawab melakukan tindakan tersebut. Ini dapat menimbulkan hasil yang tidak diinginkan. Sebagai praktik terbaik, gunakanlah penolakan eksplisit hanya jika tidak ada keadaan yang mengizinkan tindakan tersebut. Jika tidak, izinkan daftar tindakan individu, dan tindakan yang tidak diinginkan ditolak secara default.
Langkah 3: Buat peran
Buat IAM peran berikut dan lampirkan access-same-project-team
kebijakan yang Anda buat di langkah sebelumnya. Untuk informasi selengkapnya tentang membuat IAM peran, lihatMembuat peran untuk mendelegasikan izin kepada pengguna IAM. Jika Anda memilih untuk menggunakan federasi alih-alih IAM pengguna dan peran, lihatIAMtutorial: Gunakan tag SAML sesi untuk ABAC.
Fungsi pekerjaan | Nama peran | Tanda peran | Deskripsi peran |
---|---|---|---|
Proyek Teknik Pegasus |
access-peg-engineering |
akses-proyek = tim akses = pusat biaya = |
Memungkinkan insinyur membaca semua sumber daya teknik dan membuat serta mengelola sumber daya teknik Pegasus. |
Jaminan Kualitas Proyek Pegasus |
access-peg-quality-assurance |
akses-proyek = tim akses = pusat biaya = |
Memungkinkan tim QA untuk membaca semua sumber daya QA dan membuat, serta mengelola semua sumber daya QA Pegasus. |
Proyek Teknik Unicorn |
access-uni-engineering |
akses-proyek = tim akses = pusat biaya = |
Memungkinkan insinyur membaca semua sumber daya teknik dan membuat, serta mengelola sumber daya teknik Unicorn. |
Jaminan Kualitas Proyek Unicorn |
access-uni-quality-assurance |
akses-proyek = tim akses = pusat biaya = |
Memungkinkan tim QA untuk membaca semua sumber daya QA dan membuat, serta mengelola semua sumber daya QA Unicorn. |
Langkah 4: Uji pembuatan rahasia
Kebijakan izin yang terlampir pada peran memungkinkan karyawan untuk membuat rahasia. Hal ini hanya diperbolehkan jika rahasia ditandai dengan proyek, tim, dan pusat biaya mereka. Konfirmasikan bahwa izin Anda bekerja sesuai harapan dengan masuk sebagai pengguna Anda, dengan asumsi peran yang benar, dan menguji aktivitas di Secrets Manager.
Untuk mencoba membuat rahasia dengan dan tanpa tag yang diperlukan
-
Di jendela browser utama Anda, tetap masuk sebagai pengguna administrator sehingga Anda dapat meninjau pengguna, peran, dan kebijakanIAM. Gunakan jendela penyamaran peramban atau peramban terpisah untuk pengujian Anda. Di sana, masuk sebagai
access-Arnav-peg-eng
IAM pengguna dan buka konsol Secrets Manager di https://console.aws.amazon.com/secretsmanager/. -
Upayakan untuk beralih ke peran
access-uni-engineering
.Operasi ini gagal karena nilai tanda
access-project
dancost-center
tidak cocok dengan penggunaaccess-Arnav-peg-eng
dan peranaccess-uni-engineering
.Untuk informasi selengkapnya tentang beralih peran di AWS Management Console, lihat Beralih dari pengguna ke IAM peran (konsol)
-
Beralih ke peran
access-peg-engineering
. -
Simpan rahasia baru menggunakan informasi berikut. Untuk mempelajari cara menyimpan rahasia, lihat Membuat Rahasia Dasar di Panduan Pengguna AWS Secrets Manager .
penting
Secrets Manager menampilkan peringatan bahwa Anda tidak memiliki izin untuk AWS layanan tambahan yang bekerja dengan Secrets Manager. Misalnya, untuk membuat kredensil untuk RDS database Amazon, Anda harus memiliki izin untuk mendeskripsikan RDS instans, RDS klaster, dan klaster Amazon Redshift. Anda dapat mengabaikan peringatan ini karena Anda tidak menggunakan AWS layanan khusus ini dalam tutorial ini.
-
Di bagian Pilih tipe rahasia, pilih Tipe rahasia lainnya. Di dua kotak teks, masukkan
test-access-key
dantest-access-secret
. -
Masukkan
test-access-peg-eng
untuk bidang Nama rahasia. -
Tambahkan kombinasi tanda yang berbeda dari tabel berikut dan lihat perilaku yang diharapkan.
-
Pilih Toko untuk mencoba membuat rahasia. Jika penyimpanan gagal, kembali ke laman konsol Secrets Manager sebelumnya dan gunakan set tag berikutnya dari tabel berikut. Set tag terakhir dizinkan dan akan berhasil membuat rahasia.
Tabel berikut menunjukkan kombinasi ABAC tag untuk
test-access-peg-eng
peran tersebut.Nilai Tanda access-project
Nilai Tanda access-team
Nilai Tanda cost-center
Tanda tambahan Perilaku yang diharapkan (tidak ada) (tidak ada) (tidak ada) (tidak ada) Ditolak karena nilai tag access-project
tidak cocok dengan nilai peranpeg
.uni
eng
987654
(tidak ada) Ditolak karena nilai tag access-project
tidak cocok dengan nilai peranpeg
.peg
qas
987654
(tidak ada) Ditolak karena nilai tag access-team
tidak cocok dengan nilai peraneng
.peg
eng
123456
(tidak ada) Ditolak karena nilai tag cost-center
tidak cocok dengan nilai peran987654
.peg
eng
987654
Pemilik = Jane Ditolak karena tag tambahan owner
tidak diizinkan oleh kebijakan, meskipun ketiga tanda yang diperlukan hadir dan nilainya sesuai dengan nilai-nilai peran.peg
eng
987654
Nama = Jane Diizinkan karena ketiga tanda yang diperlukan ada dan nilainya sesuai dengan nilai-nilai peran. Anda juga diperbolehkan untuk menyertakan tanda Name
. -
-
Keluar dan ulangi tiga langkah pertama dalam prosedur ini untuk setiap peran dan nilai tanda berikut. Pada langkah keempat dalam prosedur ini, uji setiap set tanda yang hilang, tanda opsional, tanda yang tidak diizinkan, dan nilai tanda tidak valid yang Anda pilih. Kemudian gunakan tanda yang diperlukan untuk membuat rahasia dengan tanda dan nama berikut.
Nama pengguna Nama peran Nama rahasia Tanda rahasia Akses-m ary-peg-qas
access-peg-quality-assurance
test-access-peg-qas
akses-proyek =
peg
tim akses =
qas
pusat biaya =
987654
Akses-s aanvi-uni-eng
access-uni-engineering
test-access-uni-eng akses-proyek =
uni
tim akses =
eng
pusat biaya =
123456
Akses-c arlos-uni-qas
access-uni-quality-assurance
test-access-uni-qas
akses-proyek =
uni
tim akses =
qas
pusat biaya =
123456
Langkah 5: Uji menampilkan rahasia
Kebijakan yang Anda lampirkan ke setiap peran memungkinkan karyawan melihat rahasia apa pun yang ditandai dengan nama tim mereka, apa pun proyek mereka. Konfirmasikan bahwa izin Anda bekerja sesuai harapan dengan menguji peran Anda di Secrets Manager.
Untuk uji melihat rahasia dengan dan tanpa tag yang diperlukan
-
Masuk sebagai salah satu IAM pengguna berikut:
-
access-Arnav-peg-eng
-
access-Mary-peg-qas
-
access-Saanvi-uni-eng
-
access-Carlos-uni-qas
-
-
Beralih ke peran yang sesuai:
-
access-peg-engineering
-
access-peg-quality-assurance
-
access-uni-engineering
-
access-uni-quality-assurance
Untuk informasi selengkapnya tentang beralih peran di AWS Management Console, lihatBeralih dari pengguna ke IAM peran (konsol).
-
-
Di panel navigasi sebelah kiri, pilih ikon menu untuk memperluas menu lalu pilih Rahasia.
-
Anda akan melihat keempat rahasia di tabel, apa pun peran Anda saat ini. Ini diharapkan karena kebijakan bernama
access-same-project-team
memungkinkan tindakansecretsmanager:ListSecrets
untuk semua sumber daya. -
Pilih nama salah satu rahasia.
-
Pada halaman detail rahasia, tanda peran Anda menentukan apakah Anda dapat melihat isi halaman tersebut. Bandingkan nama peran Anda dengan nama rahasia Anda. Jika mereka memiliki nama tim yang sama, tanda
access-team
cocok. Jika tidak cocok, akses akan ditolak.Tabel berikut menunjukkan perilaku melihat ABAC rahasia untuk setiap peran.
Nama peran Nama rahasia Perilaku yang diharapkan access-peg-engineering
test-access-peg-eng
Diizinkan test-access-peg-qas Ditolak test-access-uni-eng Diizinkan test-access-uni-qas Ditolak access-peg-quality-assurance test-access-peg-eng Ditolak test-access-peg-qas Diizinkan test-access-uni-eng Ditolak test-access-uni-qas Diizinkan access-uni-engineering test-access-peg-eng Diizinkan test-access-peg-qas Ditolak test-access-uni-eng Diizinkan test-access-uni-qas Ditolak access-uni-quality-assurance test-access-peg-eng Ditolak test-access-peg-qas Diizinkan test-access-uni-eng Ditolak test-access-uni-qas Diizinkan -
Dari breadcrumbs di bagian atas halaman, pilih Rahasia untuk kembali ke daftar rahasia. Ulangi langkah-langkah dalam prosedur ini menggunakan peran yang berbeda untuk menguji apakah Anda dapat melihat masing-masing rahasia.
Langkah 6: Uji skalabilitas
Alasan penting untuk menggunakan kontrol akses berbasis atribut (ABAC) atas kontrol akses berbasis peran () adalah skalabilitas. RBAC Saat perusahaan Anda menambahkan proyek, tim, atau orang baru AWS, Anda tidak perlu memperbarui kebijakan yang ABAC digerakkan oleh Anda. Misalnya, anggaplah bahwa Example Corporation mendanai proyek baru dengan nama kode Centaur. Seorang insinyur bernama Saanvi Sarkar akan menjadi insinyur utama untuk Centaur sambil terus mengerjakan proyek Unicorn. Saanvi juga akan meninjau pekerjaan untuk proyek Peg. Ada juga beberapa insinyur yang baru direkrut, termasuk Nikhil Jayashankar, yang hanya akan mengerjakan proyek Centaur.
Untuk menambahkan proyek baru ke AWS
-
Masuk sebagai pengguna IAM administrator dan buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Di panel navigasi di sebelah kiri, pilih Peran dan tambahkan IAM peran bernama
access-cen-engineering
. Lampirkan kebijakanaccess-same-project-team
izin ke peran dan tambahkan tag peran berikut:-
access-project
=cen
-
access-team
=eng
-
cost-center
=101010
-
-
Pada panel navigasi di sebelah kiri, pilih Pengguna.
-
Tambahkan pengguna baru bernama
access-Nikhil-cen-eng
, lampirkan kebijakan bernamaaccess-assume-role
, dan tambahkan tag pengguna berikut.-
access-project
=cen
-
access-team
=eng
-
cost-center
=101010
-
-
Gunakan prosedur di Langkah 4: Uji pembuatan rahasia dan Langkah 5: Uji menampilkan rahasia. Di jendela peramban lain, uji apakah Nikhil hanya dapat membuat rahasia teknik Centaur, dan apakah dia dapat melihat semua rahasia teknik.
-
Di jendela browser utama tempat Anda masuk sebagai administrator, pilih pengguna
access-Saanvi-uni-eng
. -
Pada tab Izin, hapus kebijakan access-assume-roleizin.
-
Tambahkan kebijakan inline berikut bernama
access-assume-specific-roles
. Untuk informasi selengkapnya tentang menambahkan kebijakan inline ke pengguna, lihat Untuk menyematkan kebijakan inline bagi pengguna atau peran (konsole).ABACkebijakan: Asumsikan hanya peran tertentu
Kebijakan ini memungkinkan Saanvi untuk mengambil peran teknik untuk proyek Pegasus dan Centaur. Hal ini diperlukan untuk membuat kebijakan kustom ini karena IAM tidak mendukung tag multivalued. Anda tidak dapat menandai pengguna Saanvi dengan
access-project
=peg
danaccess-project
=cen
. Selain itu, model AWS otorisasi tidak dapat mencocokkan kedua nilai. Untuk informasi selengkapnya, lihat Aturan untuk menandai dan IAM AWS STS. Sebagai gantinya, Anda harus menentukan secara manual dua peran yang dapat dia tanggung.Untuk menggunakan kebijakan ini, ganti teks placeholder yang dicetak miring dengan informasi akun Anda.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "TutorialAssumeSpecificRoles", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::
account-ID-without-hyphens
:role/access-peg-engineering", "arn:aws:iam::account-ID-without-hyphens
:role/access-cen-engineering" ] } ] } -
Gunakan prosedur di Langkah 4: Uji pembuatan rahasia dan Langkah 5: Uji menampilkan rahasia. Pada jendela peramban lain, konfirmasikan bahwa Saanvi dapat mengambil kedua peran tersebut. Periksa bahwa dia dapat membuat rahasia hanya untuk proyek, tim, dan pusat biaya miliknya, bergantung pada tanda peran. Konfirmasi juga bahwa dia dapat melihat perincian tentang rahasia apa pun yang dimiliki oleh tim teknik, termasuk rahasia yang baru saja dia buat.
Langkah 7: Uji memperbarui dan menghapus rahasia
Kebijakan access-same-project-team
yang terlampir pada peran memungkinkan karyawan memperbarui dan menghapus rahasia yang ditandai dengan proyek, tim, dan pusat biaya mereka. Konfirmasikan bahwa izin Anda bekerja sesuai harapan dengan menguji peran Anda di Secrets Manager.
Untuk menguji pembaruan dan penghapusan rahasia dengan dan tanpa tag yang diperlukan
-
Masuk sebagai salah satu IAM pengguna berikut:
-
access-Arnav-peg-eng
-
access-Mary-peg-qas
-
access-Saanvi-uni-eng
-
access-Carlos-uni-qas
-
access-Nikhil-cen-eng
-
-
Beralih ke peran yang sesuai:
-
access-peg-engineering
-
access-peg-quality-assurance
-
access-uni-engineering
-
access-peg-quality-assurance
-
access-cen-engineering
Untuk informasi selengkapnya tentang beralih peran di AWS Management Console, lihatBeralih dari pengguna ke IAM peran (konsol).
-
-
Untuk setiap peran, coba perbarui deskripsi rahasia, lalu coba hapus rahasia berikut. Untuk informasi selengkapnya, lihat, lihat Memodifikasi Rahasia dan Menghapus dan Memulihkan Rahasia di Panduan Pengguna AWS Secrets Manager .
Tabel berikut menunjukkan perilaku memperbarui dan menghapus ABAC rahasia untuk setiap peran.
Nama peran Nama rahasia Perilaku yang diharapkan access-peg-engineering
test-access-peg-eng
Diizinkan test-access-uni-eng Ditolak test-access-uni-qas Ditolak access-peg-quality-assurance
test-access-peg-qas Diizinkan test-access-uni-eng Ditolak access-uni-engineering
test-access-uni-eng Diizinkan test-access-uni-qas Ditolak access-peg-quality-assurance
test-access-uni-qas Diizinkan
Ringkasan
Anda sekarang telah berhasil menyelesaikan semua langkah yang diperlukan untuk menggunakan tag untuk kontrol akses berbasis atribut ()ABAC. Anda telah mempelajari cara mendefinisikan strategi penandaan. Anda menerapkan strategi tersebut ke penanggung jawab dan sumber daya Anda. Anda membuat dan menerapkan kebijakan yang menegakkan strategi untuk Secrets Manager. Anda juga belajar bahwa ABAC skala dengan mudah ketika Anda menambahkan proyek baru dan anggota tim. Akibatnya, Anda dapat masuk ke IAM konsol dengan peran pengujian dan mengalami cara menggunakan tag untuk ABAC masuk AWS.
catatan
Anda menambahkan kebijakan yang memungkinkan tindakan hanya berdasarkan kondisi tertentu. Jika Anda menerapkan kebijakan yang berbeda kepada pengguna atau peran Anda yang memiliki izin lebih luas, maka tindakan tersebut mungkin tidak akan dibatasi untuk memerlukan penandaan. Misalnya, jika Anda memberi pengguna izin administratif penuh menggunakan kebijakan AdministratorAccess
AWS terkelola, kebijakan ini tidak membatasi akses tersebut. Untuk informasi selengkapnya tentang bagaimana izin ditentukan saat beberapa kebijakan dilibatkan, lihat Bagaimana logika kode AWS
penegakan mengevaluasi permintaan untuk mengizinkan atau menolak akses.
Sumber daya terkait
Untuk informasi terkait, lihat sumber daya berikut:
Untuk mempelajari cara memantau tag di akun Anda, lihat Memantau perubahan tag pada AWS sumber daya dengan alur kerja tanpa server dan Acara Amazon