Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan atribut untuk kontrol akses
Atribut untuk kontrol akses adalah implementasi kumpulan identitas Amazon Cognito dari kontrol akses berbasis atribut (). ABAC Anda dapat menggunakan IAM kebijakan untuk mengontrol akses ke AWS sumber daya melalui kumpulan identitas Amazon Cognito berdasarkan atribut pengguna. Atribut ini dapat diambil dari penyedia identitas sosial dan perusahaan. Anda dapat memetakan atribut dalam akses penyedia dan token ID atau SAML pernyataan ke tag yang dapat direferensikan dalam kebijakan izin. IAM
Anda dapat memilih pemetaan default atau membuat pemetaan kustom Anda sendiri di kolam identitas Amazon Cognito. Pemetaan default memungkinkan Anda menulis IAM kebijakan berdasarkan kumpulan atribut pengguna yang tetap. Pemetaan khusus memungkinkan Anda memilih kumpulan atribut pengguna khusus yang direferensikan dalam kebijakan izin. IAM Nama Atribut di konsol Amazon Cognito dipetakan ke kunci Tag untuk prinsipal, yang merupakan tag yang direferensikan dalam kebijakan izin. IAM
Misalnya, katakanlah Anda memiliki layanan streaming media dengan keanggotaan gratis dan berbayar. Anda menyimpan file media di Amazon S3 dan menandai file tersebut dengan tanda gratis atau premium. Anda dapat menggunakan atribut untuk kontrol akses untuk memungkinkan akses ke konten gratis dan berbayar berdasarkan tingkat keanggotaan pengguna, yang merupakan bagian dari profil pengguna. Anda dapat memetakan atribut keanggotaan ke kunci tag agar prinsipal diteruskan ke kebijakan IAM izin. Dengan cara ini Anda dapat membuat kebijakan izin tunggal dan secara kondisional mengizinkan akses ke konten premium berdasarkan nilai tingkat keanggotaan dan tanda pada file konten.
Topik
Menggunakan atribut untuk kontrol akses memiliki beberapa manfaat:
-
Manajemen izin lebih efisien ketika Anda menggunakan atribut untuk kontrol akses. Anda dapat membuat kebijakan izin dasar yang menggunakan atribut pengguna bukan menciptakan beberapa kebijakan untuk fungsi pekerjaan yang berbeda.
-
Anda tidak perlu memperbarui kebijakan kapan pun Anda menambahkan atau menghapus sumber daya atau pengguna untuk aplikasi Anda. Kebijakan izin hanya akan memberikan akses ke pengguna dengan atribut pengguna yang cocok. Misalnya, Anda mungkin perlu mengontrol akses ke bucket S3 tertentu berdasarkan judul pekerjaan pengguna. Dalam hal ini, Anda dapat membuat kebijakan izin untuk mengizinkan akses ke file ini hanya untuk pengguna dalam jabatan pekerjaan yang ditentukan. Untuk informasi selengkapnya, lihat IAMTutorial: Menggunakan tag SAML sesi untuk ABAC.
-
Atribut dapat dilewatkan sebagai tanda utama untuk kebijakan yang memungkinkan atau menolak izin berdasarkan nilai-nilai atribut tersebut.
Menggunakan atribut untuk kontrol akses dengan kolam identitas Amazon Cognito
Sebelum Anda dapat menggunakan atribut untuk kontrol akses, pastikan bahwa Anda memenuhi prasyarat berikut:
Untuk menggunakan atribut untuk kontrol akses, Klaim yang Anda tetapkan sebagai sumber data menetapkan nilai Kunci Tag yang Anda pilih. Amazon Cognito menerapkan kunci tag dan nilai ke sesi pengguna Anda. IAMKebijakan Anda dapat mengevaluasi akses pengguna Anda dari ${aws:PrincipalTag/
kondisi tersebut. IAMmengevaluasi nilai tag pengguna Anda terhadap kebijakan.tagkey
}
Anda harus menyiapkan IAM peran yang kredensialnya ingin Anda berikan kepada pengguna Anda. Kebijakan kepercayaan dari peran ini harus mengizinkan Amazon Cognito untuk mengambil peran bagi pengguna Anda. Untuk atribut untuk kontrol akses, Anda juga harus mengizinkan Amazon Cognito menerapkan tag utama ke sesi sementara pengguna Anda. Berikan izin untuk mengambil peran dengan tindakan tersebut AssumeRoleWithWebIdentity. Berikan izin untuk menandai sesi pengguna dengan tindakan khusus izin. sts:TagSession
Untuk informasi selengkapnya, lihat Melewati tag sesi AWS Security Token Service di Panduan AWS Identity and Access Management Pengguna. Untuk contoh kebijakan kepercayaan yang memberikan sts:AssumeRoleWithWebIdentity
dan sts:TagSession
izin kepada prinsipal layanan cognito-identity.amazonaws.com
Amazon Cognito, lihat. Menggunakan atribut untuk contoh kebijakan kontrol akses
Untuk mengkonfigurasi atribut untuk kontrol akses di konsol
-
Masuk ke konsol Amazon Cognito
dan pilih Identity pool. Pilih kumpulan identitas. -
Pilih tab Akses pengguna.
-
Temukan penyedia Identitas. Pilih penyedia identitas yang ingin Anda edit. Jika Anda ingin menambahkan IDP baru, pilih Tambahkan penyedia identitas.
-
Untuk mengubah tag utama yang ditetapkan Amazon Cognito saat mengeluarkan kredensi kepada pengguna yang telah diautentikasi dengan penyedia ini, pilih Edit di Atribut untuk kontrol akses.
-
Untuk tidak menerapkan tag utama, pilih Tidak aktif.
-
Untuk menerapkan tag utama berdasarkan
sub
danaud
klaim, pilih Gunakan pemetaan default. -
Untuk membuat skema atribut kustom Anda sendiri ke tag utama, pilih Gunakan pemetaan khusus. Kemudian masukkan kunci Tag yang ingin Anda sumber dari setiap Klaim yang ingin Anda wakili dalam tag.
-
-
Pilih Simpan perubahan.
Menggunakan atribut untuk contoh kebijakan kontrol akses
Pertimbangkan skenario di mana seorang karyawan dari departemen hukum perusahaan perlu membuat daftar semua file dalam bucket milik departemen mereka dan diklasifikasikan dengan tingkat keamanan mereka. Asumsikan token bahwa karyawan ini mendapat dari penyedia identitas berisi klaim berikut.
Klaim
{ . . "sub" : "57e7b692-4f66-480d-98b8-45a6729b4c88", "department" : "legal", "clearance" : "confidential", . . }
Atribut ini dapat dipetakan ke tag dan direferensikan dalam kebijakan IAM izin sebagai tag utama. Anda sekarang dapat mengelola akses dengan mengubah profil pengguna di ujung penyedia identitas. Atau, Anda dapat mengubah atribut pada sisi sumber daya dengan menggunakan nama atau tanda tanpa mengubah kebijakan itu sendiri.
Kebijakan izin berikut melakukan dua hal:
-
Mengizinkan akses daftar ke semua bucket S3 yang diakhiri dengan awalan yang cocok dengan nama departemen pengguna.
-
Mengizinkan akses baca pada file dalam bucket ini selama tanda izin pada file cocok dengan atribut izin pengguna.
Kebijakan izin
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:List*", "Resource": "arn:aws:s3:::*-${aws:PrincipalTag/department}" }, { "Effect": "Allow", "Action": "s3:GetObject*", "Resource": "arn:aws:s3:::*-${aws:PrincipalTag/department}/*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/clearance": "${aws:PrincipalTag/clearance}" } } } ] }
Kebijakan kepercayaan menentukan siapa yang dapat mengambil peran ini. Kebijakan hubungan kepercayaan memungkinkan penggunaan sts:AssumeRoleWithWebIdentity
dan sts:TagSession
untuk mengizinkan akses. Ini menambahkan kondisi untuk membatasi kebijakan ke kumpulan identitas yang Anda buat dan memastikan bahwa itu untuk peran yang diautentikasi.
Kebijakan kepercayaan
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": [ "sts:AssumeRoleWithWebIdentity", "sts:TagSession" ], "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "IDENTITY-POOL-ID" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } } } ] }
Matikan atribut untuk kontrol akses (konsol)
Ikuti prosedur ini untuk menonaktifkan atribut untuk kontrol akses.
Untuk menonaktifkan atribut untuk kontrol akses di konsol
-
Masuk ke konsol Amazon Cognito
dan pilih Identity pool. Pilih kumpulan identitas. -
Pilih tab Akses pengguna.
-
Temukan penyedia Identitas. Pilih penyedia identitas yang ingin Anda edit.
-
Pilih Edit di Atribut untuk kontrol akses.
-
Untuk tidak menerapkan tag utama, pilih Tidak aktif.
-
Pilih Simpan perubahan.
Pemetaan penyedia default
Tabel berikut memiliki informasi pemetaan default untuk penyedia autentikasi yang didukung Amazon Cognito.
Penyedia | Jenis token | Nilai tanda utama | Contoh |
---|---|---|---|
Kolam pengguna Amazon Cognito |
Token ID |
aud (ID klien) dan sub (ID pengguna) |
“6jk8ltokc7ac9es6jrtg9q572f”, “57e7b692-4f66-480d-98b8-45a6729b4c88" |
|
Token akses |
aud(app_id), sub(user_id) |
"492844718097981", "112177216992379" |
|
Token ID |
aud (ID klien) dan sub (ID pengguna) |
"620493171733-eebk7c0hcp5lj3e1tlqp1gntt3k0rncv.apps.googleusercontent.com", "109220063452404746097" |
SAML |
Pernyataan |
“http://schemas.xmlsoap. org/ws/2005/05/identity/claims/nameidentifier" , "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name” |
“auth0|5e28d196f8f55a0eaaa95de3"," user123@gmail.com” |
Apple |
Token ID |
aud (ID klien) dan sub (ID pengguna) |
"com.amazonaws.ec2-54-80-172-243.compute-1.client", "001968.a6ca34e9c1e742458a26cf8005854be9.0733" |
Amazon |
Token akses |
aud (ID klien di Amzn Dev Ac), user_id(ID pengguna) |
“amzn1.application-oa2-client.9d70d9382d3446108aaee3dd763a0fa6", “amzn1.account. AGHNIFJQMFSBG3G6XCPVB35ORQAA” |
OIDCPenyedia standar |
ID dan token akses |
aud (sebagai client_id), sub (sebagai ID pengguna) |
"620493171733-eebk7c0hcp5lj3e1tlqp1gntt3k0rncv.apps.googleusercontent.com", "109220063452404746097" |
|
Token akses |
aud (ID aplikasi; aplikasi Rahasia), sub (ID pengguna) |
“DfwifTtKEX1FiIBRnOTlR0CFK; xGJ5xB8 “, “xIrIVCPjXgLIdkW7fXmwcJJrFvnoK9gwZkLexo1y5z11269003884292222976" |
DevAuth |
Peta |
Tidak berlaku |
"tag1", "tag2" |
catatan
Opsi pemetaan atribut default secara otomatis diisi untuk Kunci Tanda untuk Utama dan nama Atribut. Anda tidak dapat mengubah pemetaan default.