Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Federasi SAML 2.0
AWS mendukung federasi identitas dengan SAML 2.0 (Security Assertion Markup Language 2.0)
catatan
Federasi identitas IAM SAML mendukung respons SAML terenkripsi dari penyedia identitas SAML-based federasi (). IdPs Pusat Identitas IAM dan Amazon Cognito tidak mendukung pernyataan SAML terenkripsi dari penyedia identitas IAM SAML.
Anda dapat secara tidak langsung menambahkan dukungan untuk pernyataan SAML terenkripsi ke federasi kumpulan identitas Amazon Cognito dengan kumpulan pengguna Amazon Cognito. Kumpulan pengguna memiliki federasi SAML yang independen dari federasi IAM SAML dan mendukung penandatanganan dan enkripsi SAML. Meskipun fitur ini tidak meluas langsung ke kumpulan identitas, kumpulan pengguna dapat berupa IdPs kumpulan identitas. Untuk menggunakan enkripsi SAML dengan kumpulan identitas, tambahkan penyedia SAML dengan enkripsi ke kumpulan pengguna yang merupakan IdP ke kumpulan identitas.
Penyedia SAML Anda harus dapat mengenkripsi pernyataan SAML dengan kunci yang disediakan kumpulan pengguna Anda. Kumpulan pengguna tidak akan menerima pernyataan yang dienkripsi dengan sertifikat yang disediakan IAM.
Federasi IAM mendukung penggunaan kasus ini:
-
Akses federasi untuk mengizinkan pengguna atau aplikasi di organisasi Anda memanggil operasi AWS API. Kasus penggunaan ini dibahas di bagian berikut. Anda menggunakan pernyataan SAML (sebagai bagian dari tanggapan autentikasi) yang dibuat dalam organisasi Anda untuk mendapatkan kredensial keamanan sementara. Skenario ini serupa dengan skenario federasi lain yang mendukung IAM, seperti yang dijelaskan dalam Minta kredentif keamanan sementara dan Federasi OIDC. Namun, SAML 2.0 berbasis IdPs di organisasi Anda menangani banyak detail pada waktu berjalan untuk melakukan otentikasi dan pemeriksaan otorisasi.
-
Web-basedsingle sign-on (SSO) ke Konsol Manajemen AWS dari organisasi Anda. Pengguna dapat masuk ke portal di organisasi Anda yang dihosting oleh IdP yang kompatibel dengan SAML 2.0, memilih opsi untuk dikunjungi AWS, dan dialihkan ke konsol tanpa harus memberikan informasi masuk tambahan. Anda dapat menggunakan IdP SAML pihak ketiga untuk menetapkan akses SSO ke konsol atau Anda dapat membuat IdP kustom untuk mengaktifkan akses konsol bagi pengguna eksternal Anda. Untuk informasi selengkapnya tentang membangun IdP kustom, lihat Aktifkan akses broker identitas khusus ke AWS konsol.
Topik
Ikhtisar peran untuk memungkinkan SAML-federated akses ke Anda AWS sumber daya
Mengidentifikasi pengguna secara unik di SAML-based federasi
Konfigurasikan IDP SAMP 2.0 Anda dengan mengandalkan kepercayaan pihak dan menambahkan klaim
Mengaktifkan prinsipal federasi SAMP 2.0 untuk mengakses Konsol Manajemen AWS
Menggunakan SAML-based federasi untuk akses API ke AWS
Asumsikan bahwa Anda ingin menyediakan cara bagi karyawan untuk menyalin data dari komputer mereka ke folder cadangan. Anda membuat aplikasi yang dapat dijalankan pengguna di komputer mereka. Di bagian belakang, aplikasi membaca dan menulis objek dalam bucket Amazon S3. Pengguna tidak memiliki akses langsung ke AWS. Alih-alih, proses berikut ini digunakan:
-
Pengguna dalam organisasi Anda menggunakan aplikasi klien untuk meminta autentikasi dari IdP organisasi Anda.
-
IdP mengautentikasi pengguna menggunakan penyimpanan identitas organisasi Anda.
-
IdP menyusun pernyataan SAML dengan informasi tentang pengguna dan mengirimkan pertanyaan ke aplikasi klien. Saat Anda mengaktifkan enkripsi SAML untuk IdP IAM SAML Anda, pernyataan ini dienkripsi oleh IdP eksternal Anda.
-
Aplikasi klien memanggil AWS STS
AssumeRoleWithSAMLAPI, meneruskan ARN penyedia SAML, ARN peran yang akan diasumsikan, dan pernyataan SAML dari IdP. Jika enkripsi diaktifkan, pernyataan yang dilewatkan melalui aplikasi klien tetap dienkripsi saat transit. -
(Opsional) AWS STS menggunakan kunci pribadi yang Anda unggah dari IdP eksternal untuk mendekripsi pernyataan SAML terenkripsi.
-
Tanggapan API ke aplikasi klien meliputi kredensial keamanan sementara.
-
Aplikasi klien menggunakan kredensial keamanan sementara untuk menghubungi operasi API Amazon S3.
Ikhtisar pengkonfigurasian federasi berbasis SAML 2.0
Sebelum Anda dapat menggunakan federasi berbasis SAML 2.0 seperti yang dijelaskan dalam skenario dan diagram sebelumnya, Anda harus mengonfigurasi IdP organisasi Anda dan Anda Akun AWS untuk saling percaya. Proses umum untuk mengonfigurasikan kepercayaan ini dijelaskan dalam langkah-langkah berikut. Di dalam organisasi, Anda harus memiliki IdP yang mendukung SAML 2.0, seperti Microsoft Active Directory Federation Service (AD FS, bagian dari Windows Server), Shibboleth, atau penyedia SAML 2.0 lain yang kompatibel.
catatan
Untuk meningkatkan ketahanan federasi, sebaiknya Anda mengonfigurasi IdP dan AWS
federasi untuk mendukung beberapa titik akhir masuk SAML. Untuk detailnya, lihat artikel Blog AWS Keamanan Cara menggunakan titik akhir SAML regional untuk failover.
Konfigurasikan IdP organisasi Anda dan AWS untuk saling percaya
-
Daftar AWS sebagai penyedia layanan (SP) dengan IdP organisasi Anda. Gunakan dokumen metadata SAML dari
https://region-code.signin.aws.amazon.com/static/saml-metadata.xmlUntuk daftar
region-codenilai yang mungkin, lihat kolom Wilayah di titik akhir AWS Sign-In titik akhirAnda dapat secara opsional menggunakan dokumen metadata SAML dari
https://signin.aws.amazon.com/static/saml-metadata.xml. -
Menggunakan IdP organisasi Anda, Anda menghasilkan file XML metadata SAML yang setara yang dapat menggambarkan IdP Anda sebagai penyedia identitas IAM di. AWS Itu harus menyertakan nama penerbit, tanggal pembuatan, tanggal kedaluwarsa, dan kunci yang AWS dapat digunakan untuk memvalidasi tanggapan otentikasi (pernyataan) dari organisasi Anda.
Jika Anda mengizinkan pernyataan SAML terenkripsi dikirim dari IdP eksternal Anda, Anda harus membuat file kunci pribadi menggunakan IdP organisasi Anda, dan mengunggah file ini ke konfigurasi IAM SAML Anda dalam format file.pem. AWS STS membutuhkan kunci pribadi ini untuk mendekripsi respons SAML yang sesuai dengan kunci publik yang diunggah ke IdP Anda.
catatan
Sebagaimana didefinisikan oleh Profil Interoper V2.0 abilitas Metadata SAML Versi 1.0
, IAM tidak mengevaluasi atau mengambil tindakan pada kedaluwarsa X.509 sertifikat dalam dokumen metadata SAML. Jika Anda khawatir tentang X.509 sertifikat yang kedaluwarsa, sebaiknya pantau tanggal kedaluwarsa sertifikat dan merotasi sertifikat sesuai dengan kebijakan tata kelola dan keamanan organisasi Anda. -
Di konsol IAM, Anda membuat penyedia identitas SAML. Sebagai bagian dari proses ini, Anda mengunggah dokumen metadata SAML dan kunci dekripsi pribadi yang dihasilkan oleh IdP di organisasi Anda di. Tahap 2 Untuk informasi selengkapnya, lihat Buat penyedia identitas SAML di IAM.
-
Di IAM, Anda membuat satu atau lebih peran IAM. Dalam kebijakan kepercayaan peran, Anda menetapkan penyedia SAML sebagai prinsipal, yang menetapkan hubungan kepercayaan antara organisasi Anda dan AWS. Kebijakan izin peran menetapkan hal yang diizinkan oleh pengguna organisasi Anda di AWS. Untuk informasi selengkapnya, lihat Membuat peran untuk penyedia identitas pihak ketiga.
catatan
IDP SAML yang digunakan dalam kebijakan kepercayaan peran harus berada di akun yang sama dengan peran tersebut.
-
Di IdP organisasi Anda, Anda menentukan pernyataan yang memetakan pengguna atau grup dalam organisasi Anda ke peran IAM. Perhatikan bahwa pengguna dan grup yang berbeda pada organisasi Anda mungkin memetakan IAM role yang berbeda. Langkah yang tepat untuk melakukan pemetaan bergantung pada IdP apa yang Anda gunakan. Di skenario sebelumnya dari folder Amazon S3 untuk pengguna, mungkin semua pengguna akan memetakan peran yang sama yang memberikan izin Amazon S3. Untuk informasi selengkapnya, lihat Konfigurasikan pernyataan SAML untuk respons otentikasi.
Jika IdP Anda mengaktifkan SSO ke AWS konsol, maka Anda dapat mengonfigurasi durasi maksimum sesi konsol. Untuk informasi selengkapnya, lihat Mengaktifkan prinsipal federasi SAMP 2.0 untuk mengakses Konsol Manajemen AWS.
-
Dalam aplikasi yang Anda buat, Anda memanggil AWS Security Token Service
AssumeRoleWithSAMLAPI, meneruskannya ARN penyedia SAML yang Anda buatTahap 3, ARN peran untuk mengasumsikan bahwa Anda membuatTahap 4, dan pernyataan SAML tentang pengguna saat ini yang Anda dapatkan dari IdP Anda. AWS memastikan bahwa permintaan untuk mengambil peran berasal dari IdP yang direferensikan dalam penyedia SAML.Untuk informasi selengkapnya, lihat AssumeRoleWithSAML di dalam Referensi API AWS Security Token Service .
-
Jika permintaan berhasil, API mengembalikan serangkaian kredensial keamanan sementara, yang dapat digunakan aplikasi Anda untuk membuat permintaan yang ditandatangani ke AWS. Aplikasi Anda memiliki informasi tentang pengguna saat ini dan dapat mengakses folder khusus pengguna di Amazon S3, seperti yang dijelaskan dalam skenario sebelumnya.
Ikhtisar peran untuk memungkinkan SAML-federated akses ke Anda AWS sumber daya
Peran yang Anda buat di IAM menentukan apa yang diizinkan dilakukan oleh prinsipal federasi SAML dari organisasi Anda. AWS Saat membuat kebijakan kepercayaan untuk peran, Anda menentukan penyedia SAML yang dibuat sebelumnya sebagai Principal. Anda juga dapat mencakup kebijakan kepercayaan dengan Condition untuk hanya mengizinkan pengguna yang cocok dengan atribut SAML tertentu untuk mengakses peran. Misalnya, Anda dapat menentukan bahwa hanya pengguna yang afiliasi SAML-nya staff (seperti yang ditegaskan olehhttps://openidp.feide.no) yang diizinkan untuk mengakses peran, seperti yang diilustrasikan oleh kebijakan sampel berikut:
catatan
IDP SAML yang digunakan dalam kebijakan kepercayaan peran harus berada di akun yang sama dengan peran tersebut.
K saml:aud unci konteks dalam kebijakan menentukan URL yang ditampilkan browser Anda saat masuk ke konsol. URL titik akhir masuk ini harus sesuai dengan atribut penerima penyedia identitas Anda. Anda dapat menyertakan URL masuk dalam wilayah tertentu. AWS
merekomendasikan penggunaan titik akhir Regional alih-alih titik akhir global untuk meningkatkan ketahanan federasi. Jika Anda hanya memiliki satu titik akhir yang dikonfigurasi, Anda tidak akan dapat bergabung ke AWS
dalam hal yang tidak mungkin terjadi bahwa titik akhir menjadi tidak tersedia. Untuk daftar region-code nilai yang mungkin, lihat kolom Wilayah di titik akhir AWS
Sign-In titik akhir
Contoh berikut menunjukkan format URL masuk dengan opsional yang region-code.
https://
region-code.signin.aws.amazon.com/saml
Jika enkripsi SAML diperlukan, URL masuk harus menyertakan pengidentifikasi unik yang ditetapkan AWS untuk penyedia SAML Anda, yang dapat Anda temukan di halaman detail penyedia identitas. Dalam contoh berikut, URL masuk menyertakan pengenal unik IdP, yang mengharuskan /acs/ ditambahkan ke jalur masuk.
https://
region-code.signin.aws.amazon.com/saml/acs/IdP-ID
Untuk kebijakan izin dalam peran tersebut, Anda menentukan izin seperti yang Anda inginkan untuk peran apa pun. Misalnya, jika pengguna dari organisasi Anda diizinkan untuk menjalankan instans Amazon Elastic Compute Cloud, Anda harus secara eksplisit mengizinkan tindakan Amazon EC2 dalam kebijakan izin, seperti yang ada di AmazonEC2FullAccess kebijakan yang dikelola.
Untuk informasi selengkapnya tentang kunci SAML yang dapat Anda periksa di kebijakan, lihat Kunci yang tersedia untuk SAML-based AWS STS federasi.
Mengidentifikasi pengguna secara unik di SAML-based federasi
Saat Anda membuat kebijakan akses di IAM, seringkali berguna untuk dapat menentukan izin berdasarkan identitas pengguna. Misalnya, bagi pengguna yang telah difederasikan menggunakan SAML, aplikasi mungkin ingin menyimpan informasi di Amazon S3 menggunakan struktur seperti ini:
amzn-s3-demo-bucket/app1/user1
amzn-s3-demo-bucket/app1/user2
amzn-s3-demo-bucket/app1/user3
Anda dapat membuat bucket (amzn-s3-demo-bucket) dan folder (app1) melalui konsol Amazon S3 atau AWS CLI, karena itu adalah nilai statis. Namun, folder khusus pengguna (user1user2,user3,, dll.) harus dibuat pada waktu berjalan menggunakan kode, karena nilai yang mengidentifikasi pengguna tidak diketahui sampai pertama kali pengguna masuk melalui proses federasi.
Untuk menulis kebijakan yang merujuk detail spesifik pengguna sebagai bagian dari nama sumber daya, Identitas pengguna harus tersedia dalam kunci SAML yang dapat digunakan dalam ketentuan kebijakan. Kunci-kunci berikut tersedia untuk federasi berbasis SAML 2.0 untuk digunakan dalam kebijakan IAM. Anda dapat menggunakan nilai yang dikembalikan oleh kunci berikut untuk membuat pengidentifikasi pengguna unik untuk sumber daya seperti folder Amazon S3.
-
saml:namequalifier. Nilai hash berdasarkan konkasi dariIssuernilai tanggapan (saml:iss) dan string dengan ID akunAWSdan nama ramah (bagian terakhir ARN) penyedia SAML di IAM. Gabungan ID akun dan nama ramah penyedia SAML tersedia untuk kebijakan IAM sebagai kuncinya.saml:docID akun dan nama penyedia harus dipisahkan dengan '/' seperti pada "123456789012/provider_name”. Untuk informasi lebih lanjut, lihat kuncisaml:docdi Kunci yang tersedia untuk SAML-based AWS STS federasi.Kombinasi
NameQualifierdanSubjectdapat digunakan untuk mengidentifikasi prinsipal federasi SAML secara unik. Kode pseudo berikut menunjukkan bagaimana nilai ini dihitung. Dalam pseudocode ini+menunjukkan penggabungan,SHA1mewakili fungsi yang menghasilkan ringkasan pesan menggunakan SHA-1, danBase64mewakili fungsi yang menghasilkan versi kode dari Base-64 output hash.Base64 ( SHA1 ( "https://example.com/saml" + "123456789012" + "/MySAMLIdP" ) )Untuk informasi selengkapnya tentang kunci kebijakan yang tersedia untuk SAML-based federasi, lihatKunci yang tersedia untuk SAML-based AWS STS federasi.
-
saml:sub(string). Ini adalah subjek klaim, yang mencakup nilai yang secara unik mengidentifikasi pengguna secara individu dalam organisasi (misalnya,_cbb88bf52c2510eabe00c1642d4643f41430fe25e3). -
saml:sub_type(string). Kunci ini dapat berupapersistent,transient, atauFormatURI penuh dariSubjectdan elemenNameIDyang digunakan dalam pernyataan SAML Anda. Nilai daripersistentmenunjukkan bahwa nilai dalamsaml:subsama untuk pengguna di semua sesi. Jika nilainyatransient, pengguna memiliki nilaisaml:subuntuk setiap sesi. Untuk informasi tentang elemenNameIDFormatatribut, lihat Konfigurasikan pernyataan SAML untuk respons otentikasi.
Contoh berikut menunjukkan kebijakan izin yang menggunakan kunci sebelumnya untuk memberikan izin ke folder khusus pengguna di Amazon S3. Kebijakan ini mengasumsikan bahwa objek Amazon S3 diidentifikasi menggunakan awalan yang menyertakan keduanya saml:namequalifier dansaml:sub. Perhatikan bahwa elemen Condition mencakup pengujian untuk memastikan bahwa saml:sub_type diatur ke persistent. Jika diatur ke transient, nilai saml:sub untuk pengguna dapat berbeda untuk setiap sesi, dan kombinasi nilai tidak boleh digunakan untuk mengidentifikasi folder khusus pengguna.
Untuk informasi selengkapnya tentang pernyataan pemetaan dari IdP ke kunci kebijakan, lihat Konfigurasikan pernyataan SAML untuk respons otentikasi.