全部产品
Search
文档中心

Platform For AI:Mengaitkan peran RAM dengan instans DSW

更新时间:Nov 28, 2025

Untuk mengakses sumber daya cloud lainnya dari instans Data Science Workshop (DSW), Anda biasanya perlu mengonfigurasi pasangan AccessKey guna memverifikasi identitas. Namun, Anda dapat mengaitkan peran RAM dengan instans DSW agar dapat mengakses sumber daya cloud tersebut menggunakan kredensial temporary Security Token Service (STS) tanpa perlu menyimpan pasangan AccessKey jangka panjang, sehingga mengurangi risiko kebocoran kunci.

Apa itu instance RAM role?

Instance RAM role memungkinkan sebuah instans untuk mengasumsikan peran RAM, sehingga instans tersebut dapat memperoleh kredensial temporary STS dari peran tersebut guna mengakses sumber daya cloud yang telah diizinkan. Pendekatan ini mempermudah akses lintas layanan dan menawarkan keunggulan berikut:

  • Keamanan dan kerahasiaan

    Anda tidak perlu mengelola kredensial di dalam instans. Kredensial temporary STS dapat digunakan sebagai pengganti pasangan AccessKey jangka panjang untuk mengurangi risiko kebocoran kunci.

  • Manajemen yang mudah

    Anda dapat memodifikasi kebijakan instance RAM role untuk mengontrol akses ke sumber daya cloud dalam instans DSW secara lebih mudah dan detail halus.

Batasan

Satu instans DSW hanya dapat dikaitkan dengan satu peran RAM.

Langkah-langkah implementasi

Langkah 1: Mengaitkan peran RAM dengan instans DSWimage

Skenario 1: Default Roles of PAI

Peran default Platform for AI (PAI) hanya memiliki izin untuk mengakses layanan PAI, MaxCompute, dan Object Storage Service (OSS). Anda dapat menggunakan peran ini untuk menerapkan pengelolaan izin detail halus. Jika Anda menggunakan kredensial temporary yang dikeluarkan oleh peran default PAI, Anda akan memiliki izin yang sama dengan pemilik instans DSW saat mengakses layanan PAI dan tabel MaxCompute. Saat mengakses OSS, Anda hanya dapat mengakses bucket yang dikonfigurasi sebagai jalur penyimpanan default untuk ruang kerja saat ini.

Setelah mengaitkan peran default PAI dengan sebuah instans, Anda tidak perlu lagi mengonfigurasi pasangan AccessKey dalam skenario berikut:

  • Mengirimkan tugas pelatihan ke ruang kerja saat ini menggunakan PAI SDK.

  • Mengirimkan tugas pelatihan ke ruang kerja saat ini menggunakan DLC SDK.

  • Mengirimkan tugas ke proyek MaxCompute yang memiliki izin eksekusi oleh pemilik instans menggunakan ODPS SDK.

  • Mengakses data di bucket yang merupakan jalur penyimpanan default untuk ruang kerja saat ini menggunakan OSS SDK.

  • Menggunakan layanan Tongyi Lingma di lingkungan pengembangan terintegrasi web (IDE).

Skenario 2: Custom Roles

  1. Masuk ke RAM console dan buat peran RAM. Untuk informasi selengkapnya, lihat Buat peran RAM untuk layanan Alibaba Cloud tepercaya.

    Perhatikan parameter kunci berikut:

    • Principal Type: Cloud Service

    • Principal Name: Platform for AI / PAI (pai.aliyun.cs.com)

  2. Berikan izin kepada instance RAM role.

    Klik Grant Permission di kolom Actions untuk menyambungkan kebijakan sistem atau kebijakan kustom ke peran RAM tersebut. Dengan demikian, peran RAM memiliki izin untuk mengakses atau melakukan operasi pada sumber daya terkait. Misalnya, Anda dapat menyambungkan kebijakan AliyunOSSFullAccess ke peran RAM tersebut. Untuk informasi selengkapnya, lihat Langkah 3: Berikan izin kepada peran RAM.

    Catatan

    Jika Anda menggunakan RAM user, hubungi pemilik Akun Alibaba Cloud untuk membuat kebijakan berikut dan menyambungkan kebijakan tersebut ke RAM user Anda, sehingga RAM user tersebut memiliki izin instance RAM role.

    Kode contoh berikut menunjukkan contoh kebijakan. Ganti ${RoleName} dengan nama instance RAM role Anda.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "ram:PassRole",
          "Resource": "acs:ram::*:role/${RoleName}"
        }
      ]
    }
  3. Buat instans DSW dan kaitkan instance RAM role dengan instans tersebut. Untuk informasi selengkapnya, lihat Buat instans DSW.

Skenario 3: Tidak Mengaitkan Peran

Jika instans Anda diatur sebagai publik di ruang kerja, kami menyarankan agar Anda tidak mengaitkan instans tersebut dengan peran RAM untuk mencegah kebocoran izin. Saat membuat instans atau mengubah konfigurasi instans, Anda dapat mengatur parameter Instance RAM Role di bagian Advanced Information menjadi Does Not Associate Role.

Perbarui konfigurasi instance RAM role

  1. Buka halaman Data Science Workshop (DSW).

    1. Masuk ke PAI console.

    2. Di bilah navigasi atas halaman Overview, pilih wilayah.

    3. Di panel navigasi sebelah kiri, klik Workspaces. Di halaman Workspace, klik nama ruang kerja tersebut.

    4. Di panel navigasi sebelah kiri halaman ruang kerja, pilih Model Training>Data Science Workshop (DSW) untuk membuka halaman DSW.

  2. Klik Change Setting pada kolom Actions instans DSW.

  3. Di bagian Roles and Permissions, konfigurasikan parameter Instance RAM Role.

    Catatan

    Instans yang sedang berjalan akan dimulai ulang dalam skenario berikut: parameter Instance RAM Role diubah dari Default Roles of PAI atau Custom Roles menjadi Does Not Associate Role, atau sebaliknya, dari Does Not Associate Role menjadi Default Roles of PAI atau Custom Roles. Sebelum memperbarui konfigurasi, pastikan Anda telah menyimpan data instans.

  4. Klik Yes.

Langkah 2: Dapatkan kredensial temporary menggunakan instance RAM role

Anda dapat menggunakan salah satu metode berikut untuk mendapatkan kredensial temporary dari instans DSW yang telah dikaitkan dengan peran RAM:

Metode 1: Gunakan alat Alibaba Cloud Credentials

Alat Credentials memanggil layanan on-premises instans—yang secara otomatis disuntikkan saat instans dibuat—untuk memperoleh kredensial temporary STS yang diperbarui secara berkala.

Untuk menggunakan alat Credentials guna memperoleh kredensial instance RAM role, jalankan perintah berikut untuk menginstal alat Alibaba Cloud Credentials. Contoh perintah dalam Python:

pip install alibabacloud_credentials

Bagian berikut menyediakan contoh kode penggunaan alat Credentials. Untuk informasi tentang penggunaan SDK dalam bahasa pemrograman lainnya, lihat bagian "Sample code" dalam topik Best practices for using an access credential to call API operations.

from alibabacloud_credentials.client import Client as CredClient
from alibabacloud_credentials.models import Config as CredConfig

credentialsConfig = CredConfig(
	type='credentials_uri' # Opsional. Jika Anda tidak mengonfigurasi metode akses lain untuk rantai kredensial default, Anda tidak perlu menentukan parameter ini. SDK Credentials memperoleh kredensial temporary melalui URI.
)
credentialsClient = CredClient(credentialsConfig)

Metode 2: Akses layanan on-premises instans DSW

Jika Anda menggunakan instans DSW, Anda dapat menjalankan perintah berikut di tab Terminal untuk mengakses server yang secara otomatis disuntikkan ke layanan on-premises:

# Dapatkan kredensial temporary instance RAM role.
curl $ALIBABA_CLOUD_CREDENTIALS_URI

Bagian berikut menyediakan contoh tanggapan. Parameter:

  • SecurityToken: token temporary instance RAM role.

  • Expiration: periode validitas kredensial temporary instance RAM role.

{
	"Code": "Success",
	"AccessKeyId": "STS.N*********7",
	"AccessKeySecret": "3***************d",
	"SecurityToken": "DFE32G*******",
	"Expiration": "2024-05-21T10:39:29Z"
}

Metode 3: Akses file on-premises instans DSW

Anda dapat mengakses file di jalur tertentu dalam instans DSW untuk memperoleh kredensial temporary instance RAM role. File tersebut secara otomatis disuntikkan dan diperbarui secara berkala. Jalur file tersebut adalah /mnt/.alibabacloud/credentials. Contoh isi file:

{
	"AccessKeyId": "STS.N*********7",
	"AccessKeySecret": "3***************d",
	"SecurityToken": "DFE32G*******",
	"Expiration": "2024-05-21T10:39:29Z"
}

Langkah 3: Akses layanan cloud lainnya menggunakan instance RAM role

Contoh 1: Akses MaxCompute menggunakan instance RAM role

  1. Jalankan perintah berikut untuk menginstal alat Credentials dan ODPS SDK:

    # Instal alat Credentials.
    pip install alibabacloud_credentials
    # Instal ODPS SDK.
    pip install odps
  2. Gunakan kredensial temporary instance RAM role untuk mengakses MaxCompute dan memperoleh daftar tabel dari proyek tertentu. Untuk informasi tentang cara memperoleh titik akhir wilayah, lihat Endpoints.

    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 nilai ini dengan nama proyek Anda.
                 endpoint="{odps_endpoint}"# Ganti nilai ini dengan titik akhir wilayah tempat proyek Anda berada.
                )
    
        for t in o.list_tables():
            print(t)

Contoh 2: Akses OSS menggunakan instance RAM role

  1. Jalankan perintah berikut untuk menginstal alat Credentials dan OSS SDK:

    # Instal alat Credentials.
    pip install alibabacloud_credentials
    # Instal OSS SDK.
    pip install oss2
  2. Gunakan kredensial temporary instance RAM role untuk mengakses OSS dan menampilkan 10 objek di bucket tertentu. Untuk informasi tentang cara memperoleh titik akhir wilayah untuk OSS, lihat Regions and endpoints.

    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 nilai ini dengan titik akhir wilayah tempat bucket OSS Anda berada.
                         '{oss_bucket}'# Ganti nilai ini dengan nama bucket OSS Anda.
                        )
    
    for b in islice(oss2.ObjectIterator(bucket), 10):
        print(b.key)

Contoh 3: Akses DLC menggunakan instance RAM role

  1. Jalankan perintah berikut untuk menginstal alat Credentials, OpenAPI SDK, dan DLC SDK:

    # Instal alat Credentials.
    pip install alibabacloud_credentials
    # Instal Alibaba Cloud OpenAPI SDK.
    pip install alibabacloud-tea-util alibabacloud_tea_openapi
    # Instal PAI-DLC SDK.
    pip install alibabacloud_pai_dlc20201203
  2. Gunakan kredensial temporary instance RAM role untuk mengakses Deep Learning Containers (DLC) dan menampilkan daftar pekerjaan DLC di ruang kerja tertentu.

    from alibabacloud_credentials.client import Client as CredClient
    from alibabacloud_tea_openapi.models import Config
    from alibabacloud_pai_dlc20201203.client import Client as pai_dlc20201203Client
    from alibabacloud_pai_dlc20201203 import models as pai_dlc_20201203_models
    from alibabacloud_tea_util.models import RuntimeOptions
    
    # Gunakan alat Credentials untuk menginisialisasi klien DLC.
    credentialsClient = CredClient()
    config = Config(credential=credentialsClient)
    config.endpoint = '{dlc_endpoint}' # Ganti nilai ini dengan titik akhir wilayah tempat ruang kerja Anda berada.
    client = pai_dlc20201203Client(config)
    
    # Inisialisasi permintaan dan panggil API ListJobs.
    list_jobs_request = pai_dlc_20201203_models.ListJobsRequest()
    list_jobs_request.workspace_id = '{workspace_id}' # Ganti nilai ini dengan ID ruang kerja Anda.
    runtime_options = RuntimeOptions()
    headers = {}
    resp = client.list_jobs_with_options(list_jobs_request, headers, runtime_options)
    
    jobs = resp.to_map()['body']['Jobs']
    print(jobs[0])

FAQ

T: Bagaimana cara mengatasi PassRoleFailedError saat membuat instans dengan peran kustom?

Masuk ke RAM console dan periksa apakah peran RAM tersebut ada.

  • Jika peran tersebut tidak ada, ubah instance RAM role menjadi peran yang sudah ada.

  • Jika peran tersebut ada, hubungi pemilik Akun Alibaba Cloud Anda untuk memberikan izin kepada RAM user Anda agar dapat menggunakan peran tersebut. Bagian berikut menyediakan contoh kebijakan. Ganti parameter ${RoleName} dengan nama peran RAM tersebut.

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "ram:PassRole",
          "Resource": "acs:ram::*:role/${RoleName}"
        }
      ]
    }

T: Bagaimana cara mengatasi AssumeRoleFailedError saat membuat instans dengan peran kustom?

Masalah ini terjadi karena kebijakan kepercayaan belum dikonfigurasi untuk peran Anda. Lakukan langkah-langkah berikut:

  1. Masuk ke RAM console sebagai administrator.

  2. Di panel navigasi sebelah kiri, pilih Identities > Roles.

  3. Di halaman Roles, temukan peran RAM yang diperlukan.

  4. Di tab Trust Policy, klik Edit Trust Policy.

  5. Modifikasi isi kebijakan kepercayaan tersebut dan klik OK.

    Contoh kebijakan kepercayaan awal untuk peran tersebut:

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "RAM": [
              "acs:ram::aaa:root"
            ],
            "Service": [
              "xxx.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }

    Contoh kebijakan baru:

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "RAM": [
              "acs:ram::aaa:root"
            ],
            "Service": [
              "xxx.aliyuncs.com",
              "pai.aliyuncs.com" 
            ]
          }
        }
      ],
      "Version": "1"
    }