Dengan mengaitkan instance RAM role ke instans Anda, Anda dapat menggunakan kredensial temporary STS untuk mengakses sumber daya cloud lainnya alih-alih menggunakan AccessKey jangka panjang, sehingga mengurangi risiko kebocoran kredensial dan meningkatkan keamanan. Topik ini menjelaskan cara memperoleh kredensial temporary STS dengan menggunakan instance RAM role.
Informasi latar belakang
Instance RAM role adalah RAM role yang entitas tepercayanya merupakan layanan Alibaba Cloud. Hal ini memungkinkan layanan cloud tersebut mengasumsikan role tersebut untuk akses lintas layanan yang aman. Untuk informasi selengkapnya tentang RAM role, lihat Apa itu RAM role?.
Penggunaan instance RAM role untuk memperoleh kredensial akses temporary guna autentikasi dan kontrol akses memberikan manfaat utama berikut:
-
Keamanan yang ditingkatkan
Anda tidak perlu mengelola kredensial di dalam instans. Penggunaan kredensial temporary STS alih-alih AccessKey jangka panjang mengurangi risiko kebocoran kredensial.
Batasan
Anda hanya dapat mengaitkan satu RAM role dengan satu instans lingkungan pengembangan individual.
Langkah 1: Konfigurasikan RAM role
Skenario 1: Mengaitkan role default DataWorks
Saat Anda menggunakan Notebook atau Python untuk pengembangan, Anda dapat mengakses beberapa produk cloud tanpa perlu menyediakan ID AccessKey dan AccessKey Secret.
Role default DataWorks memberikan izin untuk mengakses hanya MaxCompute, Hologres, EMR Serverless Spark, Realtime Compute for Apache Flink, dan Platform for AI (PAI). Saat Anda menggunakan kredensial akses temporary yang dikeluarkan dari role ini untuk mengakses layanan-layanan tersebut, Anda memiliki izin yang sama dengan pemilik lingkungan pengembangan individual.
Mengaitkan role default DataWorks ke instans Anda menyediakan kredensial akses temporary yang memberikan akses ke sumber daya pengembangan dasar tanpa peningkatan hak istimewa, sehingga menghilangkan kebutuhan untuk membuat RAM role kustom.
Setelah Anda mengaitkan role default DataWorks, Anda tidak perlu mengonfigurasi AccessKey dalam skenario berikut:
-
Mengakses MaxCompute, Hologres, EMR Serverless Spark, Realtime Compute for Apache Flink, atau Platform for AI (PAI) menggunakan sel SQL Notebook.
-
Mengirimkan tugas ke proyek MaxCompute tempat pemilik instans memiliki izin eksekusi menggunakan ODPS SDK.
Pada bagian Advanced Information, temukan pengaturan Instance RAM role dan pilih DataWorks default role.
Skenario 2: Tidak mengaitkan RAM role
Jika instans Anda terlihat publik di ruang kerja, jangan mengaitkan RAM role dengannya untuk mencegah kebocoran izin. Saat Anda membuat atau mengubah instans, atur opsi Instance RAM role di bagian Advanced Information menjadi Do not associate role.
Jika tidak ada RAM role yang dikaitkan, Anda dapat mengakses produk cloud dengan mengonfigurasi ID AccessKey dan AccessKey Secret di dalam kode Anda.
Langkah 2: Peroleh kredensial akses temporary
Setelah mengaitkan RAM role dengan instans lingkungan pengembangan individual, Anda dapat memperoleh kredensial akses temporary dengan salah satu cara berikut.
Metode 1: Menggunakan Credentials tool
Tool Credentials memanggil layanan lokal yang secara otomatis disuntikkan ke instans saat pembuatan. Layanan ini mengambil kredensial temporary STS dan secara otomatis memperbaruinya.
Untuk memperoleh kredensial instance RAM role menggunakan tool Credentials, jalankan perintah berikut untuk menginstal tool tersebut. Contoh berikut menggunakan Python.
pip install alibabacloud_credentials
Kode berikut menunjukkan contoh cara menggunakan tool Credentials. Untuk contoh SDK dalam bahasa lain, lihat Praktik terbaik penggunaan kredensial akses untuk memanggil operasi API.
from alibabacloud_credentials.client import Client as CredClient
from alibabacloud_credentials.models import Config as CredConfig
credentialsConfig = CredConfig(
type='credentials_uri' # Opsional. Jika Anda belum mengonfigurasi penyedia lain dalam rantai kredensial default, Anda tidak perlu secara eksplisit menentukan parameter ini. SDK Credentials secara otomatis memperoleh kredensial temporary menggunakan URI.
)
credentialsClient = CredClient(credentialsConfig)
Metode 2: Kueri titik akhir layanan lokal
Dari terminal di dalam instans lingkungan pengembangan individual Anda, Anda dapat menjalankan perintah berikut untuk langsung mengkueri layanan lokal yang disuntikkan dan memperoleh kredensial.
# Peroleh kredensial akses temporary untuk instance RAM role.
curl $ALIBABA_CLOUD_CREDENTIALS_URI
Kode berikut menunjukkan contoh respons. Parameter tersebut dijelaskan sebagai berikut:
-
SecurityToken: Token temporary dari instance RAM role. -
Expiration: Waktu kedaluwarsa kredensial akses temporary.
{
"Code": "Success",
"AccessKeyId": "************",
"AccessKeySecret": "************",
"SecurityToken": "DFE32G*******",
"Expiration": "2024-05-21T10:39:29Z"
}
Metode 3: Baca file kredensial lokal
Anda dapat mengakses file di path tertentu di dalam instans lingkungan pengembangan individual untuk memperoleh kredensial akses temporary dari instance RAM role. File tersebut berada di /mnt/.alibabacloud/credentials dan berisi konten berikut:
{
"AccessKeyId": "*********",
"AccessKeySecret": "***************",
"SecurityToken": "DFE32G*******",
"Expiration": "2024-05-21T10:39:29Z"
}
Langkah 3: Akses MaxCompute
-
Jalankan perintah berikut untuk menginstal tool Credentials dan ODPS SDK.
# Instal tool Credentials. pip install alibabacloud_credentials # Instal ODPS SDK. pip install odps -
Gunakan kredensial temporary dari instance RAM role untuk mengakses ODPS dan mengambil daftar tabel dalam proyek tertentu.
from alibabacloud_credentials import providers from odps.accounts import CredentialProviderAccount from odps import ODPS if __name__ == '__main__': account = CredentialProviderAccount(providers.DefaultCredentialsProvider()) o = ODPS( account=account, project="{odps_project}", # Ganti dengan nama proyek Anda. endpoint="{odps_endpoint}"# Ganti dengan titik akhir wilayah tempat proyek Anda berada. ) for t in o.list_tables(): print(t)