Mengautentikasi dengan AWS SDK untuk .NETAWS - AWS SDK untuk .NET (V4)

Versi 4 (V4) dari AWS SDK untuk .NET telah dirilis!

Untuk informasi tentang melanggar perubahan dan memigrasi aplikasi Anda, lihat topik migrasi.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengautentikasi dengan AWS SDK untuk .NETAWS

Anda harus menetapkan bagaimana kode Anda mengautentikasi AWS saat mengembangkan dengan Layanan AWS. Ada berbagai cara di mana Anda dapat mengonfigurasi akses terprogram ke AWS sumber daya, tergantung pada lingkungan dan AWS akses yang tersedia untuk Anda.

Untuk melihat berbagai metode otentikasi SDK, lihat Autentikasi dan akses di Panduan Referensi Alat AWS SDKs dan Alat.

Topik ini mengasumsikan bahwa pengguna baru sedang berkembang secara lokal, belum diberikan metode otentikasi oleh majikan mereka, dan akan digunakan AWS IAM Identity Center untuk mendapatkan kredensil sementara. Jika lingkungan Anda tidak termasuk dalam asumsi ini, beberapa informasi dalam topik ini mungkin tidak berlaku untuk Anda, atau beberapa informasi mungkin telah diberikan kepada Anda.

Mengkonfigurasi lingkungan ini memerlukan beberapa langkah, yang dirangkum sebagai berikut:

Login menggunakan kredenal konsol

Anda dapat menggunakan kredenal masuk Konsol AWS Manajemen yang ada untuk akses terprogram ke layanan. AWS Setelah alur otentikasi berbasis browser, buat kredenal AWS sementara yang berfungsi di seluruh alat pengembangan lokal seperti AWS CLI, dan SDK Alat AWS untuk PowerShell for .NET v4. AWS

Dengan proses ini, Anda dapat mengautentikasi menggunakan kredensi root yang dibuat selama pengaturan akun awal, pengguna IAM, atau identitas federasi dari penyedia identitas Anda, dan AWS CLI atau Alat AWS untuk PowerShell secara otomatis mengelola kredensil sementara untuk Anda. Pendekatan ini meningkatkan keamanan dengan menghilangkan kebutuhan untuk menyimpan kredensil jangka panjang secara lokal. Ketika Anda menjalankan Invoke-AWSLogin cmdlet dari Alat AWS untuk PowerShell atau aws login perintah dari AWS CLI, Anda dapat memilih dari sesi konsol aktif Anda, atau masuk melalui alur otentikasi berbasis browser dan ini akan secara otomatis menghasilkan kredensi sementara. Token kredenal sementara akan kedaluwarsa dalam 15 menit, tetapi AWS SDK for .NET v4 secara otomatis menyegarkan token saat diperlukan selama permintaan Anda.

penting

Jika Anda menggunakan kredensi konsol untuk autentikasi, aplikasi Anda harus mereferensikan NuGet paket berikut agar resolusi AWS Signin dapat berfungsi:

  • AWSSDK.Masuk

Kegagalan untuk mereferensikan paket-paket ini akan menghasilkan pengecualian runtime.

configFile akan terlihat seperti ini setelah Anda masuk mengikuti langkah-langkah yang diberikan di atas untuk Alat AWS untuk PowerShell atau AWS CLI.

[default] login_session = arn:aws:iam::0123456789012:user/username region = us-east-1 [my-dev-profile] login_session = arn:aws:iam::0123456789012:user/username region = us-east-1

Aktifkan dan konfigurasikan Pusat Identitas IAM

Untuk menggunakan IAM Identity Center, pertama-tama harus diaktifkan dan dikonfigurasi. Untuk melihat detail tentang cara melakukannya untuk SDK, lihat Langkah 1 dalam topik autentikasi Pusat Identitas IAM di Panduan Referensi Alat AWS SDKs dan Alat. Secara khusus, ikuti instruksi yang diperlukan di bawah Saya tidak memiliki akses yang ditetapkan melalui Pusat Identitas IAM.

Konfigurasikan SDK untuk menggunakan IAM Identity Center.

Informasi tentang cara mengonfigurasi SDK untuk menggunakan IAM Identity Center ada di Langkah 2 dalam topik autentikasi Pusat Identitas IAM di Panduan Referensi Alat AWS SDKs dan Alat. Setelah Anda menyelesaikan konfigurasi ini, sistem Anda harus berisi elemen-elemen berikut:

  • Itu AWS CLI, yang Anda gunakan untuk memulai sesi portal AWS akses sebelum Anda menjalankan aplikasi Anda.

  • AWS configFile bersama yang berisi [default]profil dengan serangkaian nilai konfigurasi yang dapat direferensikan dari SDK. Untuk menemukan lokasi file ini, lihat Lokasi file bersama di Panduan Referensi Alat AWS SDKs dan. AWS SDK untuk .NET Menggunakan penyedia token SSO profil untuk memperoleh kredensil sebelum mengirim permintaan ke. AWSsso_role_nameNilai, yang merupakan peran IAM yang terhubung ke set izin Pusat Identitas IAM, harus memungkinkan akses ke yang Layanan AWS digunakan dalam aplikasi Anda.

    configFile contoh berikut menunjukkan profil default yang disiapkan dengan penyedia token SSO. sso_sessionPengaturan profil mengacu pada sso-session bagian bernama. sso-sessionBagian ini berisi pengaturan untuk memulai sesi portal AWS akses.

    [default] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole region = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://provided-domain.awsapps.com/start sso_registration_scopes = sso:account:access
penting

Jika Anda menggunakan AWS IAM Identity Center untuk otentikasi, aplikasi Anda harus mereferensikan NuGet paket-paket berikut agar resolusi SSO dapat berfungsi:

  • AWSSDK.SSO

  • AWSSDK.SSOOIDC

Kegagalan untuk mereferensikan paket-paket ini akan menghasilkan pengecualian runtime.

Mulai sesi portal AWS akses

Sebelum menjalankan aplikasi yang mengakses Layanan AWS, Anda memerlukan sesi portal AWS akses aktif agar SDK menggunakan autentikasi IAM Identity Center untuk menyelesaikan kredensialnya. Bergantung pada panjang sesi yang dikonfigurasi, akses Anda pada akhirnya akan kedaluwarsa dan SDK akan mengalami kesalahan otentikasi. Untuk masuk ke portal AWS akses, jalankan perintah berikut di AWS CLI.

aws sso login

Karena Anda memiliki pengaturan profil default, Anda tidak perlu memanggil perintah dengan --profile opsi. Jika konfigurasi penyedia token SSO Anda menggunakan profil bernama, perintahnya adalahaws sso login --profile named-profile.

Untuk menguji apakah Anda sudah memiliki sesi aktif, jalankan AWS CLI perintah berikut.

aws sts get-caller-identity

Respons terhadap perintah ini harus melaporkan akun IAM Identity Center dan set izin yang dikonfigurasi dalam config file bersama.

catatan

Jika Anda sudah memiliki sesi portal AWS akses aktif dan menjalankanaws sso login, Anda tidak akan diminta untuk memberikan kredensil.

Proses masuk mungkin meminta Anda untuk mengizinkan AWS CLI akses ke data Anda. Karena AWS CLI dibangun di atas SDK untuk Python, pesan izin mungkin berisi variasi nama. botocore

Informasi tambahan

  • Untuk informasi tambahan tentang penggunaan IAM Identity Center dan SSO di lingkungan pengembangan, lihat Sign-on tunggal di bagianAutentikasi tingkat lanjut. Informasi ini mencakup metode alternatif dan lebih canggih, serta tutorial yang menunjukkan kepada Anda cara menggunakan metode ini.

  • Untuk opsi lainnya tentang otentikasi SDK, seperti penggunaan profil dan variabel lingkungan, lihat bagian konfigurasi di Panduan Referensi Alat AWS SDKs dan Alat.

  • Untuk mempelajari lebih lanjut tentang praktik terbaik, lihat Praktik terbaik keamanan di IAM di Panduan Pengguna IAM.

  • Untuk membuat AWS kredensil jangka pendek, lihat Kredenal Keamanan Sementara di Panduan Pengguna IAM.

  • Untuk mempelajari tentang penyedia kredensi lainnya, lihat Penyedia kredensi terstandarisasi di Panduan Referensi Alat AWS SDKs dan Alat.