Login untuk pengembangan AWS lokal menggunakan kredensi konsol - AWS Command Line Interface

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

Login untuk pengembangan AWS lokal menggunakan kredensi konsol

Anda dapat menggunakan kredenal masuk Konsol AWS Manajemen yang sudah ada untuk akses terprogram ke layanan. AWS Setelah alur otentikasi berbasis browser, buat AWS kredenal sementara yang berfungsi di seluruh alat pengembangan lokal seperti CLI AWS , Alat untuk dan. AWS PowerShell AWS SDKs Fitur ini menyederhanakan proses konfigurasi dan pengelolaan kredensional AWS 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 AWS CLI secara otomatis mengelola kredensi sementara untuk Anda. Pendekatan ini meningkatkan keamanan dengan menghilangkan kebutuhan untuk menyimpan kredensi jangka panjang secara lokal.

Ketika Anda menjalankan aws login perintah, Anda dapat memilih dari sesi konsol aktif Anda, atau masuk melalui alur otentikasi berbasis browser dan ini akan secara otomatis menghasilkan kredensi sementara. CLI akan secara otomatis menyegarkan kredenal ini hingga 12 jam.

Setelah dikonfigurasi, sesi Anda dapat digunakan di AWS CLI dan lainnya AWS SDKs dan Alat.

Prasyarat

Masuk ke AWS CLI dengan perintah. aws login

Jalankan aws login perintah untuk mengautentikasi menggunakan kredenal AWS Management Console yang 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. Di terminal pilihan Anda, jalankan aws login perintah.

    $ aws login

    Untuk masuk ke profil bernama atau membuat yang baru, gunakan --profile opsi.

    $ aws login --profile my-dev-profile
    • Jika ini adalah profil baru atau tidak ada AWS Wilayah yang ditentukan, AWS CLI meminta Anda untuk menyediakan wilayah.

      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. You are able to change the region in the CLI at any time with the command `aws configure set region NEW_REGION`. AWS Region [us-east-1]:
    • Jika perangkat yang menggunakan AWS CLI tidak memiliki browser, Anda dapat menggunakan --remote opsi untuk memberikan url bagi Anda untuk membuka pada perangkat yang mendukung browser.

      $ aws login --remote
  2. AWS CLI mencoba membuka browser default Anda untuk proses masuk akun Anda AWS .

    Attempting to open the login page for `us-east-1` in your default browser. If the browser does not open, use the following URL to complete your login: https://signin.us-east-1.amazonaws.com/authorize?<abbreviated> If you cannot connect to this URL, make sure that you have specified a valid region.
    • Jika Anda menggunakan --remote opsi ini, instruksi untuk memulai proses masuk secara manual ditampilkan berdasarkan jenis otorisasi yang Anda gunakan. URL yang ditampilkan adalah URL unik yang dimulai dengan: https://us-east-1.signin.amazonaws.com /authorize. Setelah Anda menyelesaikan login browser, Anda harus menyalin dan menempelkan kode otorisasi yang dihasilkan kembali di CLI.

      Browser will not be automatically opened. Please visit the following URL: https://region.signin.amazonaws.com/authorize?<abbreviated> Please enter the authorization code displayed in the browser:
  3. Di browser, pilih kredensi 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, AWS CLI meminta Anda untuk mengonfirmasi bahwa Anda mengganti sesi yang sesuai dengan profil yang ada.

      Profile signin is already configured to use session arn:aws:iam::0123456789012:user/ReadOnly. Do you want to overwrite it to use arn:aws:iam::0123456789012:user/Admin instead? (y/n):.
  4. Pesan terakhir menjelaskan konfigurasi profil yang telah selesai. Anda sekarang dapat menggunakan profil ini untuk meminta kredensional. Gunakan aws login perintah untuk meminta dan mengambil kredenal yang diperlukan untuk menjalankan perintah.

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

File konfigurasi yang dihasilkan

Langkah-langkah ini menghasilkan pembuatan default profil dalam config file yang terlihat seperti berikut:

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

Jalankan perintah dengan profil Anda

Setelah masuk, Anda dapat menggunakan kredensional Anda untuk memanggil perintah AWS CLI dengan profil terkait. Contoh berikut memanggil get-caller-identity perintah menggunakan default profil:

$ aws sts get-caller-identity

Untuk masuk ke sesi tertentu, gunakan --profile opsi.

$ aws sts get-caller-identity --profile my-dev-profile

AWS CLI dan secara otomatis SDKs akan menyegarkan kredenal yang di-cache setiap 15 menit sesuai kebutuhan. Sesi keseluruhan akan berlaku hingga durasi sesi yang ditetapkan dari prinsipal IAM (maksimal 12 jam), setelah itu Anda harus menjalankan aws login lagi.

Keluar dari sesi Anda menggunakan perintah aws logout

Setelah selesai menggunakan sesi, Anda dapat membiarkan kredensialnya kedaluwarsa, atau menjalankan aws logout perintah untuk menghapus kredenal cache Anda. Jika tidak ada profil yang ditentukan pada baris perintah atau di variabel AWS_PROFILE lingkungan, perintah akan membuat Anda keluar dari profil default Anda. Contoh berikut membuat Anda keluar dari profil default Anda.

$ aws logout

Untuk keluar dari sesi tertentu, gunakan --profile opsi.

$ aws logout --profile my-dev-profile

Untuk keluar dari semua profil yang menggunakan kredensi login, gunakan opsi. --all

$ aws logout --all

Kredensial yang di-cache

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

Untuk menyimpan cache credentails jangka pendek di lokasi alternatif, atur variabel AWS_LOGIN_CACHE_DIRECTORY lingkungan.

Berbagi kredensi Login sebagai kredensional proses

Versi lama AWS SDKs atau alat pengembangan lainnya mungkin belum mendukung kredensi konsol. Sebagai solusinya, Anda dapat mengonfigurasi AWS CLI untuk berfungsi sebagai penyedia kredensi proses. CLI akan terus menyegarkan kredensional sesuai kebutuhan, sambil membagikannya dengan alat yang dikonfigurasi untuk menggunakan profil credential_process.

Dalam contoh ini, gunakan AWS CLI untuk masuk terlebih dahulu untuk login profil:

$ aws login --profile signin

Kemudian, konfigurasikan profil secara manual dengan opsi credential_process, yang menunjuk kembali ke profil masuk. Sekarang Anda dapat mengonfigurasi SDKs atau alat untuk menggunakan profil proses, yang akan memanggil CLI untuk membagikan kredensi dari profil masuk.

[profile signin] login_session = arn:aws:iam::0123456789012:user/username region = us-east-1 [profile process] credential_process = aws configure export-credentials --profile signin --format process region = us-east-1

Pemecahan masalah

Halaman ini berisi rekomendasi untuk mengatasi masalah dengan masuk ke pengembangan AWS lokal menggunakan kredenal konsol untuk CLI. AWS

catatan

Untuk memecahkan masalah lain yang mungkin Anda temui menggunakan AWS CLI, lihat. Memecahkan masalah kesalahan untuk AWS CLI

ExpiredToken atau AccessDeniedException kesalahan setelah menggunakan “aws login”

Saat menjalankan perintah AWS CLI setelah menjalankan aws login profil tertentu, Anda mungkin mengalami kesalahan kredenal yang kedaluwarsa atau tidak valid.

$ aws s3 ls An error occurred (ExpiredToken) when calling the ListBuckets operation: The provided token has expired.

Kemungkinan penyebabnya: Anda memiliki campuran kredensional yang ada dan kredensi login baru di profil itu

Jalankan aws configure list atau aws configure list --profile <profile name> cetak dari mana CLI menyelesaikan kredensional baik untuk default atau profil yang diberikan.

Jika kolom TYPE adalah sesuatu selain login, ini berarti masih ada jenis kredenal yang berbeda yang ditetapkan dalam profil target.

Dalam contoh ini, kredensional sedang diselesaikan dari file kredensial bersama di direktori home Anda, yang lebih diutamakan daripada kredenal login.

$ aws configure list NAME : VALUE : TYPE : LOCATION profile : <not set> : None : None access_key : ****************MPLE : shared-credentials-file : secret_key : ****************EKEY : shared-credentials-file : region : us-east-1 : config-file : ~/.aws/config

Untuk mengatasinya, hapus secara manual semua kredensi yang ada dari file konfigurasi dan kredensial Anda untuk profil target. Setelah Anda melakukannya, Anda akan melihat kredensi login saat menjalankan aws configure list lagi.

$ aws configure list NAME : VALUE : TYPE : LOCATION profile : <not set> : None : None access_key : ****************MPLE : login : secret_key : ****************EKEY : login : region : us-east-1 : config-file : ~/.aws/config

Atau menggunakan --debug opsi akan menunjukkan dari mana CLI menyelesaikan kredensialnya.

Firewall memblokir akses jaringan saat menjalankan “aws login”

Saat menjalankan aws login Anda mungkin menemukan popup atau pesan dari perangkat lunak firewall Anda yang mencegah AWS CLI mengakses jaringan Anda

Kemungkinan penyebabnya: Firewall atau perangkat lunak keamanan Anda mencegah AWS CLI membuka port yang digunakan untuk menangani panggilan balik. OAuth

Untuk menghindari masalah ini, gunakan --remote opsi sebagai gantinya. Ini akan meminta Anda untuk menyalin dan menempelkan kode otorisasi alih-alih menggunakan OAuth panggilan balik.

$ aws login --remote

Sumber daya terkait

Sumber daya tambahan adalah sebagai berikut.