Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial IAM: Gunakan a CloudFormation template untuk membuat SAML Identity Provider (IdP)
Untuk mengatur federasi SAML untuk AWS akun Anda, Anda perlu membuat SAML Identity Provider (IdP). Tutorial ini menunjukkan cara menggunakan CloudFormation template untuk membuat SAML IdP yang membangun kepercayaan antara AWS dan IdP eksternal Anda.
Template membuat SAML IdP yang dikonfigurasi dengan dokumen metadata IdP Anda. Peran IAM federasi kemudian dapat mereferensikan IdP ini untuk memungkinkan pengguna yang diautentikasi dari IdP eksternal Anda mengakses sumber daya. AWS
Sumber daya yang digunakan terdiri dari IdP SAML yang dikonfigurasi dengan dokumen metadata IdP Anda dan pengaturan enkripsi opsional.
Prasyarat
Tutorial ini mengasumsikan bahwa Anda telah melakukan hal berikut:
-
Python 3.6 atau yang lebih baru diinstal pada mesin lokal Anda untuk menjalankan perintah Python yang digunakan dalam tutorial ini untuk memformat file XML metadata SAML IdP Anda.
-
Dokumen metadata SAML dari IdP eksternal Anda disimpan sebagai file XML.
Buat IdP SAML menggunakan CloudFormation
Untuk membuat SAML IdP, buat CloudFormation template dan gunakan untuk membuat tumpukan yang berisi sumber daya IdP.
Buattemplat
Pertama, buat CloudFormation template.
-
Di Templat bagian tersebut, pilih ikon salin pada tab JSON atau YAML untuk menyalin konten template.
-
Tempelkan isi template ke file baru.
-
Simpan file secara lokal.
Buat tumpukan
Selanjutnya, gunakan template yang telah Anda simpan untuk menyediakan tumpu CloudFormation kan.
-
Buka CloudFormation konsol di https://console.aws.amazon.com/cloudformation
. -
Pada halaman Stacks, dari menu Buat tumpukan, pilih dengan sumber daya baru (standar).
-
Tentukan template:
-
Di bawah Prasyarat, pilih Pilih template yang ada.
-
Di bawah Tentukan template, pilih Unggah file template.
-
Pilih Pilih file, navigasikan ke file template, dan pilih.
-
Pilih Berikutnya.
-
-
Tentukan detail tumpukan berikut:
-
Masukkan nama tumpukan.
-
Untuk IdentityProviderName, Anda dapat membiarkan ini kosong untuk membuat nama secara otomatis berdasarkan nama tumpukan, atau memasukkan nama khusus untuk IdP SAML Anda. Nama khusus hanya harus berisi karakter alfanumerik, titik, garis bawah, dan tanda hubung.
-
Untuk IdentityProviderSAMLMetadataDocument, Anda perlu memformat file XML metadata SAML Anda sebagai satu baris sebelum menempelkannya ke bidang ini. Ini diperlukan karena CloudFormation konsol memerlukan konten XML untuk diformat sebagai satu baris ketika melewati parameter konsol.
Gunakan perintah Python berikut untuk memformat ulang file XML Anda:
python3 -c "import sys, re; content=open(sys.argv[1]).read(); print(re.sub(r'>\s+<', '><', content.replace('\n', '').replace('\r', '').strip()))"saml-metadata.xmlcatatan
Dokumen metadata SAML IdP harus diformat sebagai satu baris untuk input parameter konsol. Perintah Python menghapus jeda baris dan spasi putih ekstra untuk membuat format yang diperlukan sambil mempertahankan semua konten dan struktur asli.
Salin output dari perintah Python dan tempelkan ke IdentityProviderSAMLMetadataDocument bidang.
Contoh dokumen metadata SAML yang diformat (disingkat):
<?xml version="1.0" encoding="UTF-8"?><md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://portal.sso.example.com/saml/assertion/CompanyIdP"><md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"><md:KeyDescriptor use="signing"><ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><ds:X509Data><ds:X509Certificate>MIIDXTCCAkWgAwIBAgIJAJC1HiIAZAiIMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV...</ds:X509Certificate></ds:X509Data></ds:KeyInfo></md:KeyDescriptor><md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://portal.sso.example.com/saml/logout/CompanyIdP"/><md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat><md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://portal.sso.example.com/saml/assertion/CompanyIdP"/></md:IDPSSODescriptor></md:EntityDescriptor> -
Untuk parameter lain, terima nilai default atau masukkan sendiri berdasarkan kebutuhan Anda:
-
IdentityProviderAddPrivateKey- Kunci pribadi opsional untuk mendekripsi pernyataan SAML
-
IdentityProviderAssertionEncryptionMode- Opsional, mengatur mode enkripsi untuk pernyataan SAML (Diizinkan, Diperlukan, atau kosong)
-
-
Pilih Berikutnya.
-
-
Konfigurasikan opsi tumpukan:
-
Di bawah Opsi kegagalan tumpukan, pilih Hapus semua sumber daya yang baru dibuat.
catatan
Memilih opsi ini mencegah Anda dari kemungkinan ditagih untuk sumber daya yang kebijakan penghapusannya menentukan bahwa sumber daya tersebut akan dipertahankan meskipun pembuatan tumpukan gagal.
-
Terima semua nilai default lainnya.
-
Di bawah Kemampuan, centang kotak untuk mengetahui bahwa CloudFormation mungkin membuat sumber daya IAM di akun Anda.
-
Pilih Berikutnya.
-
-
Tinjau detail tumpukan dan pilih Kirim.
CloudFormation membuat tumpukan. Setelah pembuatan tumpukan selesai, sumber daya tumpukan siap digunakan. Anda dapat menggunakan tab Resources pada halaman detail tumpukan untuk melihat sumber daya yang disediakan di akun Anda.
Tumpukan akan menampilkan nilai-nilai berikut, yang dapat Anda lihat di tab Output:
-
ProviderArn: ARN dari IdP SAML yang dibuat (misalnya,).
arn:aws:iam::123456789012:saml-provider/CompanyIdPAnda akan membutuhkan ARN ini saat membuat peran yang mempercayai penyedia ini. -
ProviderName: Nama IdP SAML yang dibuat (misalnya,
CompanyIdPjika Anda menentukan nama khusus, ataumy-saml-stack-saml-providerjika Anda menggunakan penamaan default).
Output ini juga diekspor, memungkinkannya diimpor oleh tumpu CloudFormation
kan lain menggunakan Fn::ImportValue fungsi.
Verifikasi SAML IdP
Setelah SAML IdP dibuat, Anda dapat memverifikasi konfigurasinya dan mencatat ARN-nya untuk digunakan dengan peran federasi.
-
Buka konsol IAM di https://console.aws.amazon.com/iam/
. -
Pada panel navigasi, silakan pilih Penyedia identitas.
Anda akan melihat IdP SAML yang baru dibuat dalam daftar.
-
Pilih nama IdP untuk melihat detailnya.
Pada halaman detail IdP, Anda dapat melihat dokumen metadata SAML dan detail konfigurasi lainnya.
-
Perhatikan ARN Penye dia yang ditampilkan pada halaman detail.
Anda akan memerlukan ARN ini saat membuat peran IAM federasi yang mempercayai IdP ini.
-
Tinjau dokumen metadata untuk memastikannya cocok dengan apa yang Anda berikan dari IdP eksternal Anda.
IdP SAML Anda sekarang siap digunakan oleh peran IAM federasi. Anda dapat membuat peran yang mempercayai IdP ini untuk mengizinkan pengguna yang diautentikasi dari IdP eksternal Anda mengambil peran tersebut dan mengakses sumber daya tersebut. AWS
Bersihkan: hapus sumber daya
Sebagai langkah terakhir, Anda akan menghapus tumpukan dan sumber daya yang dikandungnya.
-
Buka CloudFormation konsol.
-
Pada halaman Stacks, pilih tumpukan yang dibuat dari template, lalu pilih Hapus, lalu kon firmasikan H apus.
CloudFormation memulai penghapusan tumpukan dan semua sumber daya yang disertakan.
CloudFormation rincian template
Sumber daya
Tem CloudFormation plate untuk tutorial ini akan membuat sumber daya berikut di akun Anda:
AWS::IAM::SAMLProvider: IdP SAML yang membangun kepercayaan antara AWS dan IdP eksternal Anda.
Konfigurasi
Template mencakup parameter yang dapat dikonfigurasi berikut:
-
IdentityProviderName- Nama untuk IdP SAML Anda (biarkan kosong untuk nama yang dibuat secara otomatis)
Contoh:
CompanyIdPatauEnterpriseSSO -
IdentityProviderSAMLMetadataDocument- Dokumen metadata SAML dari IdP eksternal Anda (diformat sebagai satu baris)
-
IdentityProviderAddPrivateKey- Kunci pribadi opsional untuk mendekripsi pernyataan SAML
-
IdentityProviderAssertionEncryptionMode- Opsional, mengatur mode enkripsi untuk pernyataan SAML
CloudFormation templat
Simpan kode JSON atau YAML berikut sebagai file terpisah untuk digunakan sebagai CloudFormation template untuk tutorial ini.