Untuk mengakses layanan Alibaba Cloud lainnya dalam pekerjaan Deep Learning Containers (DLC), Anda dapat mengonfigurasi pasangan AccessKey untuk otentikasi identitas. Namun, jika Anda mengaitkan peran RAM dengan pekerjaan DLC, Anda dapat menggunakan kredensial akses sementara dari Security Token Service (STS) tanpa perlu mengonfigurasi pasangan AccessKey, sehingga meningkatkan keamanan. Dokumen ini menjelaskan cara membuat peran RAM, mengaitkannya dengan pekerjaan DLC, serta memperoleh kredensial akses sementara melalui STS.
Manfaat
Anda dapat menggunakan peran RAM yang entitas tepercayanya adalah layanan Alibaba Cloud. Layanan tersebut dapat mengasumsikan peran RAM untuk menerapkan akses lintas layanan. Dengan menggunakan peran RAM, Anda dapat memperoleh kredensial akses sementara untuk otentikasi identitas dan kontrol akses. Metode ini menawarkan manfaat berikut:
Keamanan dan kerahasiaan: Tidak perlu mengelola kredensial dalam pekerjaan DLC. Anda dapat menggunakan kredensial akses sementara dari STS sebagai pengganti pasangan AccessKey, mengurangi risiko kebocoran kredensial.
Pengelolaan yang nyaman: Modifikasi kebijakan yang dilampirkan pada peran RAM memungkinkan Anda mengelola izin akses pengembang terhadap layanan Alibaba Cloud dalam pekerjaan DLC secara lebih rinci dan efisien.
Batasan
Setiap pekerjaan DLC hanya dapat dikaitkan dengan satu peran RAM.
Metode konfigurasi
Kaitkan peran RAM saat membuat pekerjaan DLC, lalu peroleh kredensial akses sementara melalui STS menggunakan peran RAM tersebut.
Mengaitkan peran RAM dengan pekerjaan DLC
Skenario 1: Mengaitkan peran default PAI dengan pekerjaan DLC
Peran Default Platform for AI (PAI) adalah peran RAM yang ditetapkan kepada AliyunPAIDLCDefaultRole. Peran default ini memiliki izin akses ke MaxCompute dan Object Storage Service (OSS) serta mendukung kontrol akses yang lebih rinci. Saat mengakses tabel MaxCompute, kredensial akses sementara yang diberikan memiliki izin yang sama dengan pemilik instance DLC. Saat mengakses OSS, kredensial hanya dapat digunakan untuk mengakses bucket OSS default yang dikonfigurasi untuk ruang kerja saat ini.
Dengan mengaitkan peran default PAI, Anda dapat memperoleh kredensial akses sementara untuk mengakses sumber daya pengembangan dasar dalam pekerjaan DLC tanpa perlu membuat peran RAM tambahan.
Skenario Penggunaan
Setelah mengaitkan peran default PAI, Anda tidak perlu mengonfigurasi pasangan AccessKey dalam skenario berikut:
Gunakan MaxCompute SDK untuk menyerahkan pekerjaan ke proyek MaxCompute di mana pemilik pekerjaan memiliki izin eksekusi.
Gunakan OSS SDK untuk mengakses data di bucket OSS default yang dikonfigurasi untuk ruang kerja saat ini.
Metode Konfigurasi
Saat menyerahkan pekerjaan pelatihan, pilih Default Roles of PAI untuk Instance RAM Role di bagian Roles and Permissions.

Setelah mengaitkan peran RAM dengan pekerjaan DLC, Anda harus memperoleh kredensial akses sementara menggunakan peran RAM.
Skenario 2: Mengaitkan peran kustom dengan pekerjaan DLC
Jika izin kredensial akses sementara yang diperoleh menggunakan peran default PAI tidak memenuhi kebutuhan Anda, buat peran RAM baru dan lampirkan izin yang sesuai untuk mengontrol jangkauan sumber daya Alibaba Cloud yang dapat diakses oleh pengembang dalam pekerjaan tersebut. Ikuti langkah-langkah berikut:
Masuk ke Konsol RAM dan buat peran RAM.
Catat parameter kunci berikut:
Principal Type: Pilih Cloud Service.
Principal Name: Pilih Platform for AI / PAI.
Berikan izin kepada peran RAM.
Lampirkan kebijakan sistem atau kebijakan kustom ke peran RAM agar dapat mengakses atau mengelola sumber daya terkait. Sebagai contoh, lampirkan kebijakan AliyunOSSReadOnlyAccess ke peran RAM.
Jika Anda menggunakan pengguna RAM, hubungi pemilik akun Alibaba Cloud untuk memberikan izin kepada pengguna RAM saat ini agar dapat menggunakan peran RAM. Untuk informasi lebih lanjut, lihat Memberikan Izin kepada Pengguna RAM. Contoh dokumen kebijakan:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ram:PassRole", "Resource": "acs:ram::*:role/${RoleName}" } ] }Ganti ${RoleName} dalam dokumen kebijakan sampel di atas dengan nama peran RAM yang ingin Anda kaitkan dengan pekerjaan DLC.
Kaitkan peran RAM dengan pekerjaan DLC dan serahkan pekerjaan DLC. Konfigurasikan parameter kunci berikut di bagian Peran dan Izin. Untuk informasi tentang parameter lainnya, lihat Serahkan Pekerjaan Pelatihan.

Parameter
Deskripsi
Instance RAM Role
Pilih Custom Roles.
RAM Role
Pilih peran RAM yang Anda buat di Langkah 1. Setelah Anda mengaitkan peran RAM dengan pekerjaan DLC, Anda memiliki izin dari peran RAM untuk mengakses layanan Alibaba Cloud lainnya dalam pekerjaan DLC menggunakan kredensial akses sementara yang disediakan oleh STS.
Setelah mengaitkan peran RAM dengan pekerjaan DLC, Anda harus memperoleh kredensial akses sementara menggunakan peran RAM.
Skenario 3: Tidak mengaitkan peran RAM dengan pekerjaan DLC
Jika Anda tidak perlu menggunakan pasangan AccessKey untuk mengakses data, kami sarankan Anda tidak mengaitkan peran RAM dengan pekerjaan DLC. Saat menyerahkan pekerjaan pelatihan, pilih Does Not Associate Role untuk Instance RAM Role di bagian Roles and Permissions. 
Memperoleh kredensial akses sementara menggunakan peran RAM yang terkait dengan pekerjaan DLC
Saat membuat pekerjaan DLC, jika Anda mengaitkan pekerjaan DLC dengan peran default PAI atau peran kustom, peroleh kredensial akses sementara menggunakan metode berikut:
Metode 1: Gunakan alat Alibaba Cloud Credentials
Alat Alibaba Cloud Credentials memanggil layanan lokal yang secara otomatis diinjeksikan saat Anda membuat pekerjaan DLC untuk memperoleh kredensial akses sementara dari STS. Kredensial ini diperbarui secara berkala.
Saat menyerahkan pekerjaan pelatihan, selesaikan konfigurasi berikut:
Instal alat Alibaba Cloud Credentials.
Di halaman Buat Pekerjaan, pilih Select from List untuk parameter Third-party Libraries dan masukkan alibabacloud_credentials di bidang Pustaka Pihak Ketiga untuk menginstal alat Alibaba Cloud Credentials.
CatatanJika pustaka pihak ketiga sudah diinstal sebelumnya di gambar, Anda dapat melewati konfigurasi ini.
Konfigurasikan file skrip.
Contoh ini menggunakan file skrip Python. Untuk informasi lebih lanjut tentang kode sampel SDK untuk bahasa pemrograman lainnya, lihat Kode Sampel. Anda dapat memilih Konfigurasi Online untuk parameter Code Builds, atau pilih Local Upload untuk mengunggah file skrip dari mesin lokal Anda 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)
Metode 2: Akses layanan lokal pekerjaan DLC
Saat menyerahkan pekerjaan pelatihan, atur parameter Startup Command ke perintah berikut. Dengan cara ini, Anda dapat mengakses layanan lokal yang secara otomatis diinjeksikan ke dalam pekerjaan DLC untuk memperoleh kredensial akses sementara.
# Memperoleh kredensial akses sementara untuk peran RAM instance.
curl $ALIBABA_CLOUD_CREDENTIALS_URIKeluaran berikut dikembalikan:
{
"Code": "Success",
"AccessKeyId": "STS.N*********7",
"AccessKeySecret": "3***************d",
"SecurityToken": "DFE32G*******"
"Expiration": "2024-05-21T10:39:29Z"
}Dalam keluaran, perhatikan parameter berikut:
SecurityToken: kredensial akses sementara untuk peran RAM.
Expiration: waktu kedaluwarsa kredensial akses sementara untuk peran RAM.
Metode 3: Akses file lokal pekerjaan DLC
Akses file di jalur tertentu dari kontainer DLC untuk memperoleh kredensial akses sementara menggunakan peran RAM. File ini secara otomatis diinjeksikan oleh PAI dan diperbarui secara berkala. Jalur file adalah /mnt/.alibabacloud/credentials. Contoh kode sampel berikut menunjukkan isi file:
{
"AccessKeyId": "STS.N*********7",
"AccessKeySecret": "3***************d",
"SecurityToken": "DFE32G*******"
"Expiration": "2024-05-21T10:39:29Z"
}Contoh
Contoh 1: Akses MaxCompute menggunakan peran RAM yang terkait dengan pekerjaan DLC
Saat menyerahkan pekerjaan pelatihan, selesaikan konfigurasi berikut:
Instal alat Alibaba Cloud Credentials.
Atur parameter Third-party Libraries ke Select from List dan masukkan pustaka pihak ketiga berikut untuk menginstal Alibaba Cloud Credentials dan MaxCompute SDK.
alibabacloud_credentials pyodpsCatatanJika pustaka pihak ketiga sudah diinstal sebelumnya di gambar, Anda dapat melewati konfigurasi ini.
Konfigurasikan file skrip.
Contoh ini menggunakan file skrip Python. Anda dapat memilih Konfigurasi Online untuk parameter Code Builds, atau pilih Local Upload untuk mengunggah file skrip dari mesin lokal Anda ke lingkungan DLC. Kemudian, konfigurasikan 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}", # Ganti {odps_project} dengan nama proyek Anda. endpoint="{odps_endpoint}" # Ganti {odps_endpoint} dengan titik akhir wilayah tempat proyek Anda berada. ) for t in o.list_tables(): print(t)Konfigurasikan perintah startup.
Atur Startup Command ke perintah yang menjalankan skrip. Sebagai contoh,
python /mnt/data/xx.py.Konfigurasikan Role Information.
Pilih Default Roles of PAI untuk Instance RAM Role.
Contoh 2: Akses OSS menggunakan peran RAM yang terkait dengan pekerjaan DLC
Saat menyerahkan pekerjaan pelatihan, selesaikan konfigurasi berikut:
Instal alat Alibaba Cloud Credentials.
Atur parameter Third-party Libraries ke Select from List dan masukkan pustaka pihak ketiga berikut untuk menginstal Alibaba Cloud Credentials dan OSS SDK.
alibabacloud_credentials oss2CatatanJika pustaka pihak ketiga sudah diinstal sebelumnya di gambar, Anda dapat melewati konfigurasi ini.
Konfigurasikan file skrip.
Contoh ini menggunakan file skrip Python. Anda dapat memilih Konfigurasi Online untuk parameter Code Builds, atau pilih Local Upload untuk mengunggah file skrip dari mesin lokal Anda ke lingkungan DLC. Kemudian, konfigurasikan 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}', # Ganti {oss_endpoint} dengan titik akhir wilayah tempat bucket OSS Anda berada. '{oss_bucket}' # Ganti {oss_bucket} dengan nama bucket OSS Anda. ) for b in islice(oss2.ObjectIterator(bucket), 10): print(b.key)Konfigurasikan perintah startup.
Atur Startup Command ke perintah yang menjalankan skrip. Sebagai contoh,
python /mnt/data/xx.py.Konfigurasikan Role Information.
Pilih Default Roles of PAI untuk Instance RAM Role.
FAQ
Apa yang harus saya lakukan jika terjadi kesalahan saat saya mengaitkan peran kustom dengan pekerjaan DLC selama pembuatan pekerjaan?
Pesan kesalahan adalah cek izin untuk peran ram gagal atau cek izin untuk sub user gagal.
Untuk menyelesaikan masalah ini, masuk ke Konsol RAM untuk memeriksa apakah peran RAM ada.
Jika peran RAM tidak ada, ubah peran RAM menjadi peran yang ada.
Jika peran RAM ada, hubungi pemilik akun Alibaba Cloud untuk memberikan izin kepada pengguna RAM saat ini agar dapat menggunakan peran RAM. Untuk informasi lebih lanjut, lihat Memberikan Izin kepada Pengguna RAM. Kode sampel berikut menunjukkan dokumen kebijakan. Ganti
${RoleName}dengan nama peran RAM.{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ram:PassRole", "Resource": "acs:ram::*:role/${RoleName}" } ] }
Pesan kesalahan adalah Gagal mengasumsikan peran untuk pengguna.
Dalam banyak kasus, kesalahan ini terjadi karena tidak ada kebijakan kepercayaan yang dikonfigurasi untuk peran RAM. Untuk mengonfigurasi kebijakan kefigurasi kebijakan kepercayaan untuk peran RAM, ikuti langkah-langkah berikut:
Masuk ke Konsol RAM sebagai pengguna RAM dengan hak administratif.
Di panel navigasi kiri, pilih .
Di halaman Roles, klik nama Peran RAM yang telah Anda buat.
Di tab Trust Policy, klik Edit Trust Policy.
Di editor kode, modifikasi isi kebijakan kepercayaan dan klik OK.
Kode sampel berikut menunjukkan dokumen kebijakan asli peran RAM:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::aaa:root" ], "Service": [ "xxx.aliyuncs.com" ] } } ], "Version": "1" }Kode sampel berikut menunjukkan dokumen kebijakan baru peran RAM:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::aaa:root" ], "Service": [ "xxx.aliyuncs.com", "pai.aliyuncs.com" ] } } ], "Version": "1" }