Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Kredenensial AWS
Setiap perintah AWS Tools for PowerShell harus menyertakan satu set kredensial AWS, yang digunakan untuk menandatangani permintaan layanan web yang sesuai secara kriptografi. Anda dapat menentukan kredensial per perintah, per sesi, atau untuk semua sesi.
Awas
Untuk menghindari risiko keamanan, jangan gunakan pengguna IAM untuk otentikasi saat mengembangkan perangkat lunak yang dibuat khusus atau bekerja dengan data nyata. Sebaliknya, gunakan federasi dengan penyedia identitas seperti AWS IAM Identity Center.
catatan
Informasi dalam topik ini adalah untuk keadaan di mana Anda perlu memperoleh dan mengelola kredensi jangka pendek atau jangka panjang secara manual. Untuk informasi tambahan tentang kredensi jangka pendek dan jangka panjang, lihat Cara lain untuk mengautentikasi dalam Panduan Referensi AWSSDK dan Alat.
Untuk praktik keamanan terbaik, gunakanAWS IAM Identity Center, seperti yang dijelaskan dalamKonfigurasikan otentikasi alat.
Sebagai praktik terbaik, agar kredensial Anda tidak terlihat, jangan menempatkan kredensial literal dalam perintah. Sebaiknya, buat profil untuk setiap set kredensial yang ingin Anda gunakan, dan simpan profil di salah satu dari dua penyimpanan kredensial. Tentukan profil yang benar berdasarkan nama dalam perintah Anda, dan ambil kredensial AWS Tools for PowerShell terkait. Untuk diskusi umum tentang cara mengelola AWS kredensional dengan aman, lihat Praktik Terbaik untuk Mengelola Kunci AWS Akses di. Referensi Umum Amazon Web Services
catatan
Anda memerlukan akun AWS untuk mendapatkan kredensial dan menggunakan AWS Tools for PowerShell. Untuk membuat AWS akun, lihat Memulai: Apakah Anda AWS pengguna pertama kali? dalam Panduan AWS Account Management Referensi.
Topik
Lokasi Penyimpanan Kredensial
AWS Tools for PowerShell dapat menggunakan salah satu dari dua penyimpanan kredensial:
-
Penyimpanan SDK AWS, yang mengenkripsi kredensial Anda dan menyimpannya di folder beranda Anda. Di Windows, penyimpanan ini terletak di:
C:\Users\
.username
\AppData\Local\AWSToolkit\RegisteredAccounts.jsonAWS SDK for .NET
dan Toolkit for Visual Studio Juga dapat menggunakan penyimpanan SDK AWS. -
File kredensial bersama, yang juga terletak di folder beranda Anda, tetapi menyimpan kredensial sebagai teks biasa.
Secara default, file kredensial tersebut disimpan di sini:
-
Di Windows:
C:\Users\
username
\.aws\credentials -
Di Mac/Linux:
~/.aws/credentials
SDK AWS dan AWS Command Line Interface dapat juga menggunakan file kredensial. Jika Anda menjalankan skrip di luar konteks pengguna AWS, pastikan bahwa file yang berisi kredensial Anda disalin ke lokasi di mana semua akun pengguna (sistem lokal dan pengguna) dapat mengakses kredensial Anda.
-
Mengelola Profil
Profil memungkinkan Anda untuk merujuk set kredensial yang berbeda dengan AWS Tools for PowerShell. Anda dapat menggunakan cmdlet AWS Tools for PowerShell untuk mengelola profil Anda di penyimpanan SDK AWS. Anda juga dapat mengelola profil di penyimpanan SDK AWS dengan menggunakan Toolkit for Visual Studio atau secara pemrograman dengan menggunakan AWS SDK for .NET
Menambahkan Profil Baru
Untuk menambahkan profil baru ke penyimpanan SDK AWS, jalankan perintah Set-AWSCredential
. Tindakan ini akan menyimpan access key dan secret key Anda dalam file kredensial default Anda dengan nama profil yang Anda tentukan.
PS >
Set-AWSCredential ` -AccessKey AKIA0123456787EXAMPLE ` -SecretKey wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY ` -StoreAs MyNewProfile
-
-AccessKey
- Access key ID. -
-SecretKey
- Secret key. -
-StoreAs
- Nama profil, yang harus unik. Untuk menetapkan profil default, gunakan namadefault
.
Memperbarui Profil
Penyimpanan SDK AWS harus dikelola secara manual. Jika selanjutnya Anda mengubah kredensial di layanan—misalnya, dengan menggunakan Konsol IAM
The Access Key Id you provided does not exist in our records.
Anda dapat memperbarui profil dengan mengulangi perintah Set-AWSCredential
untuk profil tersebut, dan memberikan access key dan secret key baru.
Membuat Daftar Profil
Anda dapat memeriksa daftar nama terkini dengan perintah berikut. Dalam contoh ini, pengguna bernama Shirley memiliki akses ke tiga profil yang semuanya disimpan dalam file kredensial bersama (~/.aws/credentials
).
PS >
Get-AWSCredential -ListProfileDetail
ProfileName StoreTypeName ProfileLocation ----------- ------------- --------------- default SharedCredentialsFile /Users/shirley/.aws/credentials production SharedCredentialsFile /Users/shirley/.aws/credentials test SharedCredentialsFile /Users/shirley/.aws/credentials
Menghapus Profil
Untuk menghapus profil yang tidak lagi Anda perlukan, gunakan perintah berikut.
PS >
Remove-AWSCredentialProfile -ProfileName an-old-profile-I-do-not-need
Parameter -ProfileName
menentukan profil yang ingin Anda hapus.
Perintah Clear- yang tidak digunakan lagi masih AWSCredential tersedia untuk kompatibilitas mundur, tetapi lebih disukai. Remove-AWSCredentialProfile
Menentukan Kredensial
Ada beberapa cara untuk menentukan kredensial. Cara yang disarankan adalah dengan mengidentifikasi profil bukannya menggabungkan kredensial literal ke baris perintah Anda. AWS Tools for PowerShell menempatkan profil menggunakan urutan pencarian yang dijelaskan di Urutan Pencarian Kredensial.
Pada Windows, kredensial AWS yang disimpan dalam penyimpanan SDK AWS dienkripsi dengan identitas pengguna Windows untuk masuk. Kredensial-kredensial tersebut tidak dapat didekripsi dengan menggunakan akun lain, atau digunakan di perangkat yang berbeda dari akun yang awalnya dibuat. Untuk melakukan tugas-tugas yang memerlukan kredensial pengguna lain, seperti akun pengguna yang akan menjalankan suatu tugas terjadwal, atur profil kredensial, seperti yang dijelaskan di bagian sebelumnya, yang dapat Anda gunakan ketika Anda log in ke komputer sebagai pengguna. Log in sebagai pengguna yang melaksanakan tugas untuk menyelesaikan langkah-langkah pengaturan kredensial, dan buat profil yang berfungsi untuk pengguna tersebut. Kemudian log out dan log in kembali dengan kredensial Anda sendiri untuk mengatur tugas terjadwal tersebut.
catatan
Menggunakan parameter umum -ProfileName
untuk menentukan profil. Parameter ini setara dengan parameter -StoredCredentials
di rilis AWS Tools for PowerShell sebelumnya. Untuk kompatibilitas balik, -StoredCredentials
masih didukung.
Profil Default (Disarankan)
Semua SDK dan alat pengelolaan AWS dapat menemukan kredensial Anda secara otomatis di komputer lokal Anda jika kredensialnya disimpan dalam profil bernama default
. Misalnya, jika Anda memiliki profil bernama default
di komputer lokal, Anda tidak perlu menjalankan cmdlet Initialize-AWSDefaultConfiguration
atau cmdlet Set-AWSCredential
. Alat secara otomatis menggunakan data access key dan secret key yang tersimpan dalam profil tersebut. Untuk menggunakan Wilayah AWS selain Wilayah default Anda (hasil dari Get-DefaultAWSRegion
), Anda dapat menjalankan Set-DefaultAWSRegion
dan menentukan Wilayah.
Jika profil Anda tidak diberi nama default
, tetapi Anda ingin menggunakannya sebagai profil default untuk sesi saat ini, jalankan Set-AWSCredential
untuk menetapkannya sebagai profil default.
Meskipun menjalankan Initialize-AWSDefaultConfiguration
memungkinkan Anda menentukan profil default untuk setiap PowerShell sesi, cmdlet memuat kredensi dari profil yang diberi nama khusus, tetapi menimpa profil dengan profil bernama. default
Kami menyarankan agar Anda tidak menjalankan Initialize-AWSDefaultConfiguration
kecuali Anda menjalankan PowerShell sesi pada instans Amazon EC2 yang tidak diluncurkan dengan profil instans, dan Anda ingin mengatur profil kredensialnya secara manual. Perhatikan bahwa profil kredensial dalam skenario ini tidak akan berisi kredensial. Profil kredensial yang dihasilkan dari menjalankan Initialize-AWSDefaultConfiguration
pada instans EC2 tidak secara langsung menyimpan kredensial, tetapi sebaliknya menunjuk ke metadata instans (yang menyediakan kredensial sementara yang secara otomatis berputar). Namun, tindakan ini tidak akan menyimpan Wilayah instans. Skenario lain yang mungkin harus menjalankan Initialize-AWSDefaultConfiguration
terjadi jika Anda ingin menjalankan panggilan terhadap sebuah Wilayah selain dari Wilayah di mana instans tersebut berjalan. Menjalankan perintah tersebut akan secara permanen menimpa Wilayah yang disimpan dalam metadata instans.
PS >
Initialize-AWSDefaultConfiguration -ProfileName MyProfileName -Region us-west-2
catatan
Kredensial default termasuk dalam penyimpanan SDK AWS di bawah nama profil default
. Perintah tersebut akan menimpa profil yang ada dengan nama itu.
Jika instans EC2 Anda diluncurkan dengan profil instans, PowerShell secara otomatis mendapatkan AWS kredensi dan informasi Wilayah dari profil instans. Anda tidak perlu menjalankan Initialize-AWSDefaultConfiguration
. Menjalankan Initialize-AWSDefaultConfiguration
cmdlet pada instans EC2 yang diluncurkan dengan profil instans tidak diperlukan, karena menggunakan data profil instance yang sama yang PowerShell sudah digunakan secara default.
Profil Sesi
Gunakan Set-AWSCredential
untuk menentukan profil default untuk sesi tertentu. Profil ini menimpa profil default apapun selama sesi berlangsung. Kami merekomendasikan hal ini jika Anda ingin menggunakan profil yang diberi nama khusus di sesi Anda, bukan profil default
saat ini.
PS >
Set-AWSCredential -ProfileName MyProfileName
catatan
Dalam versi Tools untuk Windows PowerShell yang lebih awal dari 1.1, Set-AWSCredential
cmdlet tidak berfungsi dengan benar, dan akan menimpa profil yang ditentukan oleh "”. MyProfileName Sebaiknya gunakan versi Tools for Windows yang lebih baru PowerShell.
Profil Perintah
Pada perintah individual, Anda dapat menambahkan parameter -ProfileName
untuk menentukan profil yang berlaku untuk hanya satu perintah tersebut. Profil ini menimpa profil default atau sesi, seperti yang ditunjukkan dalam contoh berikut.
PS >
Get-EC2Instance -ProfileName MyProfileName
catatan
Bila Anda menentukan profil default atau sesi, Anda juga dapat menambahkan parameter -Region
untuk menimpa Wilayah default atau sesi. Untuk informasi lebih lanjut, lihat Tentukan AWS Wilayah. Contoh berikut menentukan profil dan Wilayah default.
PS >
Initialize-AWSDefaultConfiguration -ProfileName MyProfileName -Region us-west-2
Secara default, file kredensial bersama AWS diasumsikan berada di folder beranda pengguna (C:\Users\username\.aws
di Windows, atau ~/.aws
di Linux). Untuk menentukan file kredensial di lokasi yang berbeda, masukkan parameter -ProfileLocation
dan tentukan jalur file kredensial. Contoh berikut menentukan file kredensial non default untuk perintah tertentu.
PS >
Get-EC2Instance -ProfileName MyProfileName -ProfileLocation C:\aws_service_credentials\credentials
catatan
Jika Anda menjalankan PowerShell skrip selama waktu yang biasanya tidak masuk ke AWS —misalnya, Anda menjalankan PowerShell skrip sebagai tugas terjadwal di luar jam kerja normal Anda—tambahkan -ProfileLocation
parameter saat Anda menentukan profil yang ingin Anda gunakan, dan setel nilainya ke jalur file yang menyimpan kredensialnya. Untuk memastikan bahwa skrip AWS Tools for PowerShell Anda berjalan dengan kredensial akun yang benar, Anda harus menambahkan parameter -ProfileLocation
setiap kali skrip Anda berjalan dalam konteks atau proses yang tidak menggunakan akun AWS. Anda juga dapat menyalin file kredensial Anda ke lokasi yang dapat diakses oleh sistem lokal atau akun lain yang digunakan skrip Anda untuk melakukan tugas.
Urutan Pencarian Kredensial
Ketika Anda menjalankan perintah, AWS Tools for PowerShell mencari kredensial dengan urutan berikut. Pencarian berhenti ketika menemukan kredensial yang dapat digunakan.
-
Kredensial literal yang melekat sebagai parameter di baris perintah.
Kami sangat menyarankan untuk menggunakan profil bukan menempatkan kredensial literal di baris perintah Anda.
-
Nama profil atau lokasi profil tertentu.
-
Jika Anda hanya menyebutkan nama profil, perintah mencari profil tertentu di penyimpanan SDK AWS dan, jika tidak ada, maka akan mencari profil yang disebutkan dari file kredensial bersama AWS di lokasi default.
-
Jika Anda hanya menyebutkan lokasi profil, perintah akan mencari profil
default
dari file kredensial tersebut. -
Jika Anda hanya menyebutkan nama dan lokasi, perintah akan mencari profil yang disebutkan dari file kredensial tersebut.
Jika profil atau lokasi yang disebutkan tidak ditemukan, perintah akan menunjukkan pengecualian. Pencarian akan dilanjutkan ke langkah-langkah berikut hanya jika Anda tidak menyebutkan profil atau lokasi.
-
-
Kredensial yang disebutkan oleh parameter
-Credential
. -
Profil sesi, jika ada.
-
Profil default, dalam urutan sebagai berikut:
-
Profil
default
di penyimpanan SDK AWS. -
Profil
default
di file kredensial bersama AWS. -
Profil
AWS PS Default
di penyimpanan SDK AWS.
-
-
Jika perintah berjalan pada instans Amazon EC2 yang dikonfigurasi untuk menggunakan IAM role, kredensial sementara instans EC2 yang diakses dari profil instans.
Untuk informasi lebih lanjut tentang cara menggunakan peran IAM untuk instans Amazon EC2, lihat AWS SDK for .NET
.
Jika pencarian ini gagal menemukan kredensial yang disebutkan, perintah akan menunjukkan pengecualian.
Penanganan Kredensial di AWS Tools for PowerShell Core
Cmdlet di AWS Tools for PowerShell Core menerima akses dan secret key atau nama-nama profil kredensial AWS ketika berjalan, begitu juga dengan AWS Tools for Windows PowerShell. Ketika berjalan di Windows, kedua modul memiliki akses ke file penyimpanan kredensial AWS SDK for .NET (yang disimpan di file AppData\Local\AWSToolkit\RegisteredAccounts.json
per-pengguna).
File ini menyimpan kunci Anda dalam format terenkripsi, dan tidak dapat digunakan pada komputer yang berbeda. Ini adalah file pertama yang dituju AWS Tools for PowerShell untuk mencari profil kredensial, dan juga file di mana AWS Tools for PowerShell menyimpan profil kredensialnya. Untuk informasi lebih lanjut tentang file penyimpanan kredensial AWS SDK for .NET, lihat Mengkonfigurasi Kredensial AWS. PowerShellModul Tools for Windows saat ini tidak mendukung kredensi penulisan ke file atau lokasi lain.
Kedua modul dapat membaca profil dari file kredensial berbagi AWS yang digunakan oleh SDK AWS dan AWS CLI. Pada Windows, lokasi default untuk file ini adalah C:\Users\<userid>\.aws\credentials
. Pada platform selain Windows, file ini disimpan di ~/.aws/credentials
. Parameter -ProfileLocation
dapat digunakan untuk menunjuk ke nama file non default atau lokasi file.
Penyimpanan kredensial SDK memegang kredensial Anda dalam bentuk terenkripsi dengan menggunakan API kriptografi Windows . API ini tidak tersedia pada platform lain, jadi modul AWS Tools for PowerShell Core menggunakan file kredensial bersama AWS secara eksklusif, dan mendukung penulisan profil kredensial baru untuk file kredensial bersama.
Contoh skrip berikut yang menggunakan Set-AWSCredential
cmdlet menunjukkan opsi untuk menangani profil kredensi di Windows dengan atau. AWSPowerShellAWSPowerShell NetCoremodul.
# Writes a new (or updates existing) profile with name "myProfileName" # in the encrypted SDK store file Set-AWSCredential -AccessKey akey -SecretKey skey -StoreAs myProfileName # Checks the encrypted SDK credential store for the profile and then # falls back to the shared credentials file in the default location Set-AWSCredential -ProfileName myProfileName # Bypasses the encrypted SDK credential store and attempts to load the # profile from the ini-format credentials file "mycredentials" in the # folder C:\MyCustomPath Set-AWSCredential -ProfileName myProfileName -ProfileLocation C:\MyCustomPath\mycredentials
Contoh-contoh berikut menunjukkan perilaku AWSPowerShell. NetCoremodul pada sistem operasi Linux atau macOS.
# Writes a new (or updates existing) profile with name "myProfileName" # in the default shared credentials file ~/.aws/credentials Set-AWSCredential -AccessKey akey -SecretKey skey -StoreAs myProfileName # Writes a new (or updates existing) profile with name "myProfileName" # into an ini-format credentials file "~/mycustompath/mycredentials" Set-AWSCredential -AccessKey akey -SecretKey skey -StoreAs myProfileName -ProfileLocation ~/mycustompath/mycredentials # Reads the default shared credential file looking for the profile "myProfileName" Set-AWSCredential -ProfileName myProfileName # Reads the specified credential file looking for the profile "myProfileName" Set-AWSCredential -ProfileName myProfileName -ProfileLocation ~/mycustompath/mycredentials