Saat pekerjaan DLC Anda perlu mengakses sumber daya cloud lainnya, Anda harus mengonfigurasi pasangan AccessKey untuk autentikasi. Dengan mengasosiasikan peran RAM, pekerjaan DLC dapat menggunakan kredensial akses temporary dari Security Token Service (STS) untuk mengakses layanan cloud lainnya. Pendekatan ini menghilangkan kebutuhan akan pasangan AccessKey jangka panjang dan mengurangi risiko kebocoran kunci. Topik ini menjelaskan cara membuat peran RAM, memberikan izin kepada DLC, serta memperoleh kredensial akses temporary menggunakan peran RAM tersebut.
Manfaat
Peran RAM adalah entitas tepercaya yang dapat diasumsikan oleh layanan cloud dan dirancang untuk menangani skenario akses lintas layanan. Penggunaan peran RAM untuk autentikasi dan kontrol akses memberikan manfaat berikut:
-
Keamanan: Anda tidak perlu mengelola kredensial di dalam pekerjaan. Dengan menggunakan kredensial akses temporary dari STS alih-alih pasangan AccessKey jangka panjang, risiko kebocoran kunci berkurang.
-
Kontrol dan kenyamanan: Anda dapat mengontrol secara tepat akses developer terhadap sumber daya cloud dalam suatu pekerjaan dengan memodifikasi kebijakan izin peran RAM.
Batasan
Anda hanya dapat mengasosiasikan satu peran RAM dengan satu pekerjaan DLC.
Metode konfigurasi
Saat membuat pekerjaan DLC, Anda perlu mengonfigurasi peran RAM untuk DLC dan memperoleh kredensial akses temporary dari STS.
Konfigurasikan peran RAM untuk DLC
Peran default PAI
Peran default PAI didasarkan pada peran layanan AliyunPAIDLCDefaultRole. Peran ini memiliki izin detail halus hanya untuk mengakses MaxCompute dan Object Storage Service (OSS). Kredensial akses temporary yang dikeluarkan dari peran default PAI memiliki izin yang sama dengan Akun Alibaba Cloud saat mengakses tabel MaxCompute. Saat mengakses OSS, peran ini hanya dapat mengakses bucket OSS default yang dikonfigurasi untuk ruang kerja saat ini.
Setelah memberikan peran default PAI, Anda dapat memperoleh kredensial akses temporary di dalam pekerjaan untuk mengakses sumber daya pengembangan dasar tanpa memberikan izin berlebihan atau membuat peran RAM tambahan.
-
Kasus penggunaan
Setelah memberikan peran default PAI, Anda tidak perlu mengonfigurasi pasangan AccessKey dalam skenario berikut:
-
Mengirimkan pekerjaan menggunakan SDK PyODPS ke proyek MaxCompute tempat pemilik pekerjaan memiliki izin eksekusi.
-
Mengakses data di bucket OSS default yang dikonfigurasi untuk ruang kerja saat ini menggunakan SDK OSS.
-
-
Metode konfigurasi
Saat Anda membuat pekerjaan DLC, pada bagian Roles and Permissions, pilih Default Roles of PAI sebagai Instance RAM Role. Di bagian Roles and Permissions, atur Visibility menjadi Visible within the workspace dan Instance RAM Role menjadi default role of PAI.
Setelah mengonfigurasi peran RAM, Anda harus memperoleh kredensial akses temporary menggunakan peran RAM yang diasosiasikan.
Peran kustom
Jika izin kredensial akses temporary yang diperoleh dari peran default PAI tidak memenuhi kebutuhan Anda, Anda dapat membuat peran RAM dan menyesuaikan kebijakan izinnya untuk mengontrol akses developer terhadap sumber daya cloud dalam pekerjaan tersebut. Ikuti langkah-langkah berikut:
-
Login ke RAM console dan buat peran RAM.
Konfigurasikan parameter kunci berikut:
-
Principal Type: Pilih Cloud Services.
-
Principal Name: Pilih PAI.
-
-
Berikan izin kepada peran RAM yang telah dibuat.
Lampirkan kebijakan sistem atau kustom ke peran RAM untuk menentukan izinnya. Misalnya, berikan kebijakan AliyunOSSReadOnlyAccess ke peran RAM agar mendapatkan akses read-only ke OSS.
Jika Anda adalah Pengguna RAM, hubungi administrator Akun Alibaba Cloud Anda untuk memberikan izin kepada Pengguna RAM Anda agar dapat menggunakan peran RAM tersebut. Untuk informasi lebih lanjut, lihat Manage RAM user permissions. Kode berikut memberikan contoh kebijakan izin kustom:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ram:PassRole", "Resource": "acs:ram::*:role/${RoleName}" } ] }Ganti ${RoleName} dengan nama peran RAM yang diasosiasikan dengan pekerjaan DLC.
-
Kirimkan pekerjaan DLC dan asosiasikan peran RAM tersebut. Di bagian Roles and Permissions, konfigurasikan parameter kunci berikut. Untuk informasi tentang parameter lainnya, lihat Create a training job.
Parameter
Description
Instance RAM Role
Pilih Custom Role.
RAM Role
Pilih peran RAM yang telah Anda buat pada langkah sebelumnya. Saat pekerjaan menggunakan kredensial akses temporary untuk mengakses layanan cloud, pekerjaan tersebut memiliki izin yang sama dengan peran kustom ini.
Setelah mengonfigurasi peran RAM, Anda harus memperoleh kredensial akses temporary menggunakan peran RAM yang diasosiasikan.
Tidak ada peran yang diasosiasikan
Jika Anda tidak perlu menggunakan Pasangan Kunci Akses untuk mengakses data, kami menyarankan agar Anda tidak mengaitkan peran. Saat membuat Tugas DLC, pada bagian Roles and Permissions, pilih Does Not Associate Role sebagai Instance RAM Role. Pada bagian konfigurasi Roles and Permissions, atur Visibility ke Visible to creator only dan Instance RAM Role ke Do not associate role.
Memperoleh kredensial akses temporary
Jika Anda menetapkan peran default PAI atau peran kustom ke pekerjaan DLC saat membuatnya, Anda dapat memperoleh kredensial akses temporary dengan salah satu cara berikut:
Gunakan tool credentials
Alibaba Cloud Credentials tool memperoleh kredensial akses temporary dari STS dengan memanggil layanan lokal yang secara otomatis disuntikkan saat pekerjaan dibuat. Kredensial tersebut diperbarui secara otomatis dan berkala.
Saat Anda membuat pekerjaan DLC, lakukan konfigurasi kunci berikut:
-
Instal Alibaba Cloud Credentials tool.
Di bagian Third-party Library Settings, pilih Third-party Libraries dan masukkan alibabacloud_credentials di kotak teks untuk menginstal Alibaba Cloud Credentials tool.
CatatanAnda dapat melewati langkah ini jika library tersebut sudah pra-instal di image.
-
Konfigurasikan file skrip.
Kode berikut memberikan contoh skrip Python. Untuk contoh lain dalam bahasa SDK lainnya, lihat Best practices for using access credentials to access Alibaba Cloud OpenAPI. Anda dapat menggunakan opsi Source Code Repositories atau Mount Configuration untuk mengunggah file skrip ke lingkungan DLC.
from alibabacloud_credentials.client import Client as CredClient from alibabacloud_credentials.models import Config as CredConfig credentialsConfig = CredConfig( type='credentials_uri' ) credentialsClient = CredClient(credentialsConfig)
Akses layanan lokal
Saat Anda membuat pekerjaan DLC, jalankan perintah berikut di bidang Startup Command untuk memperoleh kredensial akses temporary dari layanan lokal yang secara otomatis disuntikkan.
# Obtain a temporary access credential for the instance RAM role.
curl $ALIBABA_CLOUD_CREDENTIALS_URI
Contoh berikut menunjukkan output sampel:
{
"Code": "Success",
"AccessKeyId": "STS.N*********7",
"AccessKeySecret": "3***************d",
"SecurityToken": "DFE32G*******"
"Expiration": "2024-05-21T10:39:29Z"
}
Deskripsi field:
-
SecurityToken: Token temporary peran RAM.
-
Expiration: Waktu kedaluwarsa kredensial akses temporary.
Akses file lokal
Di kontainer DLC, akses file di path yang ditentukan untuk memperoleh kredensial akses temporary untuk peran RAM. File ini secara otomatis disuntikkan dan diperbarui berkala oleh PAI. Path file tersebut adalah /mnt/.alibabacloud/credentials. Kode berikut menunjukkan isi file:
{
"AccessKeyId": "STS.N*********7",
"AccessKeySecret": "3***************d",
"SecurityToken": "DFE32G*******"
"Expiration": "2024-05-21T10:39:29Z"
}
Contoh
Akses ODPS
Saat Anda membuat pekerjaan DLC, lakukan konfigurasi kunci berikut:
-
Instal library yang diperlukan.
Di bagian Third-party Library Settings, konfigurasikan Third-party Libraries untuk menginstal Alibaba Cloud Credentials tool dan SDK ODPS.
alibabacloud_credentials pyodpsCatatanAnda dapat melewati langkah ini jika library tersebut sudah pra-instal di image.
-
Konfigurasikan file skrip.
Kode berikut memberikan contoh skrip Python. Anda dapat menggunakan opsi Source Code Repositories atau Mount Configurations untuk mengunggah file skrip ke lingkungan DLC dan mengonfigurasi Mount Path, seperti
/mnt/data/.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}", # Replace with your project name. endpoint="{odps_endpoint}" # Replace with the endpoint of the region where your project is located. ) for t in o.list_tables(): print(t) -
Konfigurasikan perintah startup.
Atur Startup Command menjadi perintah yang menjalankan skrip tersebut. Misalnya,
python /mnt/data/xx.py. -
Konfigurasikan informasi peran.
Untuk Instance RAM Role, pilih Default Roles of PAI.
Akses OSS
Saat Anda membuat pekerjaan DLC, lakukan konfigurasi kunci berikut:
-
Instal library yang diperlukan.
Di bagian Third-party Library Settings, konfigurasikan Third-party Libraries untuk menginstal Alibaba Cloud Credentials tool dan SDK OSS.
alibabacloud_credentials oss2CatatanAnda dapat melewati langkah ini jika library tersebut sudah pra-instal di image.
-
Konfigurasikan file skrip.
Kode berikut memberikan contoh skrip Python. Anda dapat menggunakan opsi Source Code Repositories atau Mount Configurations untuk mengunggah file skrip ke lingkungan DLC dan mengonfigurasi Mount Path, seperti
/mnt/data/.import oss2 from alibabacloud_credentials.client import Client from alibabacloud_credentials import providers from itertools import islice auth = oss2.ProviderAuth(providers.DefaultCredentialsProvider()) bucket = oss2.Bucket(auth, '{oss_endpoint}', # Replace with the endpoint of the region where your OSS bucket is located. '{oss_bucket}' # Replace with the name of your OSS bucket. ) for b in islice(oss2.ObjectIterator(bucket), 10): print(b.key) -
Konfigurasikan startup command.
Atur Startup Command menjadi perintah yang menjalankan skrip tersebut. Misalnya,
python /mnt/data/xx.py. -
Konfigurasikan informasi peran.
Untuk Instance RAM Role, pilih Default Roles of PAI.
FAQ
Error saat memilih peran kustom
-
Pesan error: check permission for ram role failed atau check permission for RAM user failed.
Anda dapat login ke RAM console untuk memverifikasi bahwa peran tersebut ada.
-
Jika peran tersebut tidak ada, ubah Instance RAM Role menjadi peran yang ada.
-
Jika peran tersebut ada, hubungi administrator Akun Alibaba Cloud Anda untuk memberikan izin kepada Pengguna RAM Anda agar dapat menggunakan peran tersebut. Untuk informasi lebih lanjut, lihat Manage RAM user permissions. Berikut adalah contoh kebijakan izin kustom. Ganti
${RoleName}dengan nama peran RAM Anda.{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ram:PassRole", "Resource": "acs:ram::*:role/${RoleName}" } ] }
-
-
Pesan error: Failed to assume role for user.
Error ini biasanya terjadi karena tidak ada kebijakan kepercayaan yang dikonfigurasi untuk peran Anda. Anda dapat menambahkan kebijakan kepercayaan ke peran Anda dengan mengikuti langkah-langkah berikut:
-
Login ke RAM console sebagai administrator RAM.
-
Di panel navigasi kiri, pilih .
-
Di halaman Roles, klik nama peran RAM target.
-
Di tab Trust Policy, klik Edit Trust Policy.
-
Di editor, modifikasi kebijakan kepercayaan, lalu klik OK.
Asumsikan kebijakan kepercayaan awal peran tersebut adalah:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::aaa:root" ], "Service": [ "xxx.aliyuncs.com" ] } } ], "Version": "1" }Konten kebijakan baru adalah sebagai berikut:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::aaa:root" ], "Service": [ "xxx.aliyuncs.com", "pai.aliyuncs.com" ] } } ], "Version": "1" }
-