Mengautentikasi dengan Alat AWS untuk PowerShellAWS - Alat AWS untuk PowerShell (versi 5)

Versi 5 (V5) dari Alat AWS untuk PowerShell 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 Alat AWS untuk PowerShellAWS

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 untuk Alat untuk PowerShell, lihat Otentikasi 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. Layanan AWS Setelah alur otentikasi berbasis browser, buat Alat AWS untuk PowerShell kredensil sementara yang berfungsi di seluruh alat pengembangan lokal seperti, dan. AWS SDKs Alat AWS untuk PowerShell AWS CLI Fitur ini menyederhanakan proses konfigurasi dan pengelolaan kredensional CLI, terutama jika Anda lebih memilih otentikasi interaktif daripada mengelola kunci akses jangka panjang.

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 Alat untuk PowerShell secara otomatis mengelola kredensil sementara untuk Anda. Pendekatan ini meningkatkan keamanan dengan menghilangkan kebutuhan untuk menyimpan kredensil jangka panjang secara lokal.

Saat menjalankan Invoke-AWSLogin cmdlet, Anda dapat memilih dari sesi konsol aktif, atau masuk melalui alur otentikasi berbasis browser dan ini akan secara otomatis menghasilkan kredensi sementara. Alat AWS untuk PowerShell akan secara otomatis menyegarkan kredensil ini hingga 12 jam.

Setelah dikonfigurasi, sesi Anda dapat digunakan di Alat AWS untuk PowerShell dan semua alat lainnya AWS SDKs .

Masuk AWS dengan Invoke- Cmdlet AWSLogin

Jalankan Invoke-AWSLogin cmdlet untuk mengautentikasi menggunakan kredenal AWS Management Console yang sudah ada. Jika sebelumnya Anda belum mengonfigurasi profil, Anda akan diminta untuk informasi tambahan.

Untuk masuk atau mengonfigurasi profil, ikuti langkah-langkah di bawah ini.

  1. Pastikan Anda telah mengimpor modul yang benar yang telah Anda instal dari panduan instalasi.

    catatan

    Kami memiliki tiga modul berbeda untuk PowerShell -AWS.Tools, AWSPowerShell.NetCore danAWSPowerShell. Untuk informasi selengkapnya, lihat Apa yang dimaksud dengan Alat AWS untuk PowerShell?.

    • Di PowerShell terminal Anda, jalankan cmdlet. Ini akan menggunakan default profil.

      PS > Invoke-AWSLogin
    • Untuk masuk ke profil bernama atau membuat yang baru, gunakan -ProfileName parameter.

      PS > Invoke-AWSLogin -ProfileName 'my-dev-profile'
    • Jika ini adalah profil baru atau tidak Wilayah AWS telah ditentukan atau dikonfigurasi di salah satu profiles/environment variabel Anda sebelumnya, cmdlet meminta Anda untuk menyediakan wilayah.

      Press Ctrl+C to cancel the following login prompts. Specify AWS Region No AWS region has been configured. The AWS region is the geographic location of your AWS resources. If you've used AWS before and already have resources in your account, tell us which region they were created in. If you haven't created resources in your account before, you can pick the region closest to you: https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html AWS Region:
  2. Alat AWS untuk PowerShell Upaya untuk membuka browser default Anda untuk proses masuk AWS akun Anda.

    Using region 'us-west-2' Attempting to open the login page for 'us-west-2' in your default browser. If the browser does not open, use the following URL to complete your login: https://signin.us-west-2.amazonaws.com/authorize?<abbreviated> If you cannot connect to this URL, make sure that you have specified a valid region.
    • Jika perangkat yang menggunakan Alat AWS untuk PowerShell tidak memiliki browser, Anda dapat menggunakan -Remote parameter untuk menyediakan URL untuk Anda buka pada perangkat yang mendukung browser.

      PS > Invoke-AWSLogin -Remote
    • Jika Anda menggunakan -Remote parameter, instruksi untuk memulai proses masuk secara manual ditampilkan berdasarkan jenis otorisasi yang Anda gunakan. URL yang ditampilkan adalah URL unik yang dimulai dengan: https://signin.us-east-1.amazonaws.com /authorize. Setelah Anda menyelesaikan login browser, Anda harus menyalin dan menempelkan kode otorisasi yang dihasilkan kembali di terminal.

      Press Ctrl+C to cancel the following login prompts. Using region 'us-west-2' determined by profile/environment defaults. To override, specify '-Region' parameter. Please complete the login workflow via the following URL: https://us-west-2.signin.aws.amazon.com/v1/authorize?<abbrievated> Please enter the authorization code displayed in the browser:
  3. Di browser, pilih kredensil Anda untuk digunakan dari daftar yang ditampilkan dan kemudian kembali ke terminal Anda.

    • Jika profil yang Anda konfigurasikan memiliki sesi login yang dikonfigurasi sebelumnya yang tidak cocok dengan sesi baru Anda, akan Alat AWS untuk PowerShell meminta Anda untuk mengonfirmasi bahwa Anda mengganti sesi yang sesuai dengan profil yang ada.

      WARNING: Previously profile default was configured for arn:aws:iam::0123456789012:user/ReadOnly, and is now being updated to arn:aws:iam::0123456789012:user/Admin. Do you wish to change the identity that default is associated with? (y/n)
  4. Pesan terakhir menjelaskan konfigurasi profil yang telah selesai.

    Login completed successfully for profile 'my-dev-profile'.

    Token otentikasi di-cache ke disk di bawah file. aws/login/cachedirektori dengan nama file hash berdasarkan profil yang diselesaikan.

File konfigurasi yang dihasilkan

Langkah-langkah ini menghasilkan pembuatan profil default atau yang ditentukan dalam file konfigurasi yang terlihat seperti berikut:

[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

Jalankan perintah dengan profil Anda

Setelah masuk, Anda dapat menggunakan kredensil Anda untuk memanggil Alat untuk PowerShell cmdlet dengan profil terkait. Contoh berikut memanggil Get-STSCallerIdentity cmdlet menggunakan profil default:

PS > Get-STSCallerIdentity

Untuk memeriksa sesi tertentu, gunakan -ProfileName parameter.

PS > Get-STSCallerIdentity -ProfileName 'my-dev-profile'

Token kredenal sementara akan kedaluwarsa dalam 15 menit, tetapi Alat AWS untuk PowerShell dan SDKs secara otomatis menyegarkan token saat diperlukan selama permintaan Anda. Sesi keseluruhan akan berlaku hingga 12 jam, setelah itu Anda harus menjalankan Invoke-AWSLogin cmdlet lagi.

Keluar dari sesi Anda menggunakan Invoke-AWSLogout cmdlet

Setelah selesai dengan sesi, Anda dapat membiarkan kredensialnya kedaluwarsa, atau menjalankan Invoke-AWSLogout cmdlet untuk menghapus kredenal cache Anda. Jika tidak ada profil yang ditentukan dalam CLI atau di variabel AWS_PROFILE lingkungan, perintah akan membuat Anda keluar dari profil default Anda. Contoh berikut membuat Anda keluar dari profil default Anda.

PS > Invoke-AWSLogout

Untuk keluar dari sesi profil tertentu, gunakan -ProfileName parameter.

PS > Invoke-AWSLogout -ProfileName 'my-dev-profile'

Untuk keluar dari semua sesi profil yang telah Anda login, gunakan -All parameter.

PS > Invoke-AWSLogout -All

Kredensial Cached

Kredensi cache sementara, serta metadata yang diperlukan untuk menyegarkannya disimpan secara default di Windows atau %USERPROFILE%\.aws\login\cache di Linux dan macOS. ~/.aws/login/cache

Anda dapat mengganti lokasi ini dengan mengatur variabel AWS_LOGIN_CACHE_DIRECTORY lingkungan.

Aktifkan dan konfigurasikan Pusat Identitas IAM

Untuk menggunakannya AWS IAM Identity Center, pertama-tama harus diaktifkan dan dikonfigurasi. Untuk melihat detail tentang cara melakukannya PowerShell, 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 Alat PowerShell untuk menggunakan IAM Identity Center.

catatan

Dimulai dengan versi 4.1.538 dari Tools for PowerShell, metode yang disarankan untuk mengonfigurasi kredensi SSO dan memulai sesi portal AWS akses adalah dengan menggunakan Initialize-AWSSSOConfigurationdan Invoke-AWSSSOLogincmdlet, seperti yang dijelaskan dalam topik ini. Jika Anda tidak memiliki akses ke versi Alat untuk PowerShell (atau yang lebih baru) atau tidak dapat menggunakan cmdlet tersebut, Anda masih dapat melakukan tugas-tugas ini dengan menggunakan. AWS CLI Untuk mengetahui caranya, lihatGunakan AWS CLI untuk login portal.

Prosedur berikut memperbarui AWS config file bersama dengan informasi SSO yang Alat untuk PowerShell digunakan untuk mendapatkan kredensi sementara. Sebagai konsekuensi dari prosedur ini, sesi portal AWS akses juga dimulai. Jika config file bersama sudah memiliki informasi SSO dan Anda hanya ingin tahu cara memulai sesi portal akses menggunakan Alat untuk PowerShell, lihat bagian selanjutnya dalam topik ini,Mulai sesi portal AWS akses.

  1. Jika Anda belum melakukannya, buka PowerShell dan instal yang Alat AWS untuk PowerShell sesuai untuk sistem operasi dan lingkungan Anda, termasuk cmdlet umum. Untuk informasi tentang cara melakukan ini, lihat Memulai dengan Alat AWS untuk PowerShell.

    Misalnya, jika menginstal versi Tools termodulasi untuk PowerShell Windows, kemungkinan besar Anda akan menjalankan perintah yang mirip dengan yang berikut ini:

    Install-Module -Name AWS.Tools.Installer Install-AWSToolsModule AWS.Tools.Common
  2. Jalankan perintah berikut. Ganti nilai properti contoh dengan nilai dari konfigurasi Pusat Identitas IAM Anda. Untuk informasi tentang properti ini dan cara menemukannya, lihat setelan penyedia kredensi Pusat Identitas IAM di Panduan Referensi Alat AWS SDKs dan Alat.

    $params = @{ ProfileName = 'my-sso-profile' AccountId = '111122223333' RoleName = 'SamplePermissionSet' SessionName = 'my-sso-session' StartUrl = 'https://provided-domain.awsapps.com/start' SSORegion = 'us-west-2' RegistrationScopes = 'sso:account:access' }; Initialize-AWSSSOConfiguration @params

    Atau, Anda cukup menggunakan cmdlet dengan sendirinyaInitialize-AWSSSOConfiguration, dan Alat untuk PowerShell meminta Anda untuk nilai properti.

    Pertimbangan untuk nilai properti tertentu:

    • Jika Anda hanya mengikuti instruksi untuk mengaktifkan dan mengkonfigurasi IAM Identity Center, nilainya -RoleName mungkinPowerUserAccess. Tetapi jika Anda membuat izin Pusat Identitas IAM yang ditetapkan khusus untuk PowerShell pekerjaan, gunakan itu sebagai gantinya.

    • Pastikan untuk menggunakan Wilayah AWS tempat Anda telah mengkonfigurasi Pusat Identitas IAM.

  3. Pada titik ini, AWS config file bersama berisi profil yang dipanggil my-sso-profile dengan serangkaian nilai konfigurasi yang dapat direferensikan dari Alat untuk PowerShell. Untuk menemukan lokasi file ini, lihat Lokasi file bersama di Panduan Referensi Alat AWS SDKs dan.

    Alat untuk PowerShell 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.

    Contoh berikut menunjukkan profil yang dibuat dengan menggunakan perintah yang ditunjukkan di atas. Beberapa nilai properti dan urutannya mungkin berbeda di profil Anda yang sebenarnya. sso-sessionProperti profil mengacu pada bagian bernamamy-sso-session, yang berisi pengaturan untuk memulai sesi portal AWS akses.

    [profile my-sso-profile] sso_account_id=111122223333 sso_role_name=SamplePermissionSet sso_session=my-sso-session [sso-session my-sso-session] sso_region=us-west-2 sso_registration_scopes=sso:account:access sso_start_url=https://provided-domain.awsapps.com/start/
  4. Jika Anda sudah memiliki sesi portal AWS akses aktif, Alat untuk PowerShell memberi tahu Anda bahwa Anda sudah masuk.

    Jika bukan itu masalahnya, Alat untuk PowerShell mencoba membuka halaman otorisasi SSO secara otomatis di browser web default Anda. Ikuti petunjuk di browser Anda, yang mungkin termasuk kode otorisasi SSO, nama pengguna dan kata sandi, dan izin untuk mengakses AWS IAM Identity Center akun dan set izin.

    Alat untuk PowerShell memberi tahu Anda bahwa login SSO berhasil.

Mulai sesi portal AWS akses

Sebelum menjalankan perintah yang mengakses Layanan AWS, Anda memerlukan sesi portal AWS akses aktif sehingga Alat untuk PowerShell dapat menggunakan autentikasi IAM Identity Center untuk menyelesaikan kredensil. Untuk masuk ke portal AWS akses, jalankan perintah berikut di PowerShell, di mana -ProfileName my-sso-profile nama profil yang dibuat di config file bersama saat Anda mengikuti prosedur di bagian sebelumnya dari topik ini.

Invoke-AWSSSOLogin -ProfileName my-sso-profile

Jika Anda sudah memiliki sesi portal AWS akses aktif, Alat untuk PowerShell memberi tahu Anda bahwa Anda sudah masuk.

Jika bukan itu masalahnya, Alat untuk PowerShell mencoba membuka halaman otorisasi SSO secara otomatis di browser web default Anda. Ikuti petunjuk di browser Anda, yang mungkin termasuk kode otorisasi SSO, nama pengguna dan kata sandi, dan izin untuk mengakses AWS IAM Identity Center akun dan set izin.

Alat untuk PowerShell memberi tahu Anda bahwa login SSO berhasil.

Untuk menguji apakah Anda sudah memiliki sesi aktif, jalankan perintah berikut setelah menginstal atau mengimpor AWS.Tools.SecurityToken modul sesuai kebutuhan.

Get-STSCallerIdentity -ProfileName my-sso-profile

Respons terhadap Get-STSCallerIdentity cmdlet melaporkan akun IAM Identity Center dan set izin yang dikonfigurasi dalam file bersama. config

Contoh

Berikut ini adalah contoh bagaimana menggunakan IAM Identity Center dengan Tools for PowerShell. Ini mengasumsikan sebagai berikut:

  • Anda telah mengaktifkan IAM Identity Center dan mengonfigurasinya seperti yang dijelaskan sebelumnya dalam topik ini. Properti SSO ada di my-sso-profile profil, yang telah dikonfigurasi sebelumnya dalam topik ini.

  • Saat Anda masuk melalui Initialize-AWSSSOConfiguration atau Invoke-AWSSSOLogin cmdlet, pengguna memiliki setidaknya izin hanya-baca untuk Amazon S3.

  • Beberapa bucket S3 tersedia untuk dilihat pengguna tersebut.

Instal atau impor AWS.Tools.S3 modul sesuai kebutuhan dan kemudian gunakan PowerShell perintah berikut untuk menampilkan daftar bucket S3.

Get-S3Bucket -ProfileName my-sso-profile

Informasi tambahan

  • Untuk opsi lebih lanjut tentang otentikasi Alat untuk PowerShell, seperti penggunaan profil dan variabel lingkungan, lihat bagian konfigurasi di Panduan Referensi Alat AWS SDKs dan Alat.

  • Beberapa perintah memerlukan AWS Region untuk ditentukan. Ada beberapa cara untuk melakukannya, termasuk opsi -Region cmdlet, [default] profil, dan variabel AWS_REGION lingkungan. Untuk informasi selengkapnya, lihat Tentukan AWS Wilayah untuk Alat AWS untuk PowerShell di panduan ini dan AWS Wilayah 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.