Tüm Ürünler
Search
Belge Merkezi

Platform For AI:Configure a RAM role for a DSW instance

Son Güncelleme:Oct 04, 2026

Bir RAM rolünü bir DSW örneğiyle ilişkilendirmek, örneğin diğer cloud kaynaklarına erişmek için rolün geçici STS kimlik bilgilerini kullanmasını sağlar. Bu sayede uzun vadeli AccessKey'leri yapılandırma gereksinimi ortadan kalkar ve kimlik bilgilerinin sızdırılma riski azalır.

Örnek RAM rolü nedir

Bir örnek RAM role DSW örneği için geçici, rol tabanlı bir kimlik sağlar. Bir DSW örneğine bir RAM rolü verildiğinde:

  • Örnek içindeki işlemler, yerel meta veri hizmetinden veya bir kimlik bilgisi dosyasından otomatik olarak kısa vadeli STS kimlik bilgileri alabilir.

  • Kimlik bilgileri, eklenen izin ilkesinde tanımlanan yetkileri sağlayarak OSS, MaxCompute ve PAI-DLC gibi yetkili cloud hizmetlerine güvenli erişim olanağı tanır.

  • Kodunuzda veya yapılandırma dosyalarınızda AccessKey'in düz metin olarak depolanmasını tamamen önleyerek güvenlik ve uyumluluk gereksinimlerini karşılamanıza yardımcı olur.

Temel avantajlar şunlardır:

  • Güvenli: Uzun vadeli AccessKey'ler yerine otomatik olarak yenilenen kısa vadeli STS kimlik bilgilerini kullanır; sabit kodlanmış anahtarların ve kimlik bilgisi sızıntılarının risklerini ortadan kaldırır.

  • Kolay yönetim: İzin yönetimini RAM rol ilkeleri aracılığıyla merkezi hale getirir. İlke değişiklikleri, örnekleri yeniden başlatmaya veya kodu güncellemeye gerek kalmadan anında etkinleşir.

  • Doğal güven: Kimlik bilgileri Alibaba Cloud Security Token Service (STS) tarafından verilir, bu nedenle ek kimlik doğrulama ara katmanı gerektirmeden varsayılan olarak güvenilir kabul edilir.

Sınırlamalar

Bir DSW örneğiyle aynı anda yalnızca bir RAM rolü ilişkilendirebilirsiniz.

Yordam

Adım 1: RAM rolü yapılandırma

DSW örneği yapılandırma sayfasında aşağıdaki üç rol seçeneğinden birini seçebilirsiniz:

PAI default role

Platform for AI (PAI) varsayılan bir rol sağlar. Bu rolü bir örneğe verdikten sonra, yapılandırılmış bir AccessKey olmadan aşağıdaki kaynaklara otomatik olarak erişim kazanır:

  • ODPS SDK'yı kullanarak, örnek sahibinin çalıştırma iznine sahip olduğu MaxCompute projelerine iş gönderme.

  • OSS SDK'yı kullanarak geçerli çalışma alanı için yapılandırılan varsayılan depolama yolu paketindeki verilere erişme.

  • WebIDE'de Tongyi Lingma hizmetini kullanma.

  • PAI veya PAI-DLC SDK'yı kullanarak geçerli çalışma alanına eğitim işleri oluşturma ve gönderme.

Custom role

  1. RAM console konsoluna gidin ve bir RAM rolü oluşturun. Ayrıntılı talimatlar için bkz. Create a RAM role for a trusted Alibaba Cloud service.

    Anahtar parametreleri aşağıdaki gibi yapılandırın:

    • Trusted entity type: Alibaba Cloud service

    • Trusted entity name: Platform for AI (pai.aliyun.cs.com)

  2. RAM rolüne izin verin.

    Add Authorization öğesini tıklayın ve RAM rolüne bir sistem veya özel izin ilkesi ekleyin. Bu işlem, role gerekli kaynaklara erişme veya bunları işletme yetkisi verir. Örneğin, AliyunOSSFullAccess ilkesini ekleyin. Daha fazla bilgi için bkz. Step 3: Grant permissions to a RAM role.

    Not

    DSW örneğini yönetmek için bir RAM kullanıcı kullanıyorsanız, kök hesap yöneticinizden RAM kullanıcınıza aşağıdaki izin ilkesini oluşturup eklemesini isteyin. Bu ilke, RAM kullanıcınızın örnek RAM rolünü kullanmasına olanak tanır.

    Aşağıdaki kod, gereken izin ilkesini gösterir. ${RoleName} değerini DSW örneği RAM rolünün adıyla değiştirin.

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

No associated role

Örneğiniz çalışma alanında herkese açıksa, izinlerin açığa çıkmasını önlemek için bununla bir RAM rolü ilişkilendirmemenizi öneririz. Bir örnek oluştururken veya yapılandırmasını değiştirirken, Advanced Information bölümünde Instance RAM Role ayarını Does Not Associate Role olarak belirleyin.

RAM rolü yapılandırmasını güncelleme

  1. DSW sayfasına gidin.

    1. PAI console konsoluna gidin ve hedef bölge ile çalışma alanınızı seçin.

    2. Sol gezinme bölmesinde Model Training > Data Science Workshop (DSW) seçeneğini belirleyerek DSW sayfasına gidin.

  2. DSW örneğinin sağındaki Change Settings öğesini tıklayın.

  3. Roles and Permissions bölümünde örnek RAM rolünü yapılandırın.

    Önemli

    Çalışan bir örneğin RAM rolünü Default Roles of PAI veya Custom Roles seçeneğinden Does Not Associate Role seçeneğine veya Does Not Associate Role seçeneğinden Default Roles of PAI veya Custom Roles seçeneğine değiştirirseniz örnek hemen yeniden başlatılır. Lütfen örneği kaydettiğinizden emin olun.

  4. Yapılandırmayı tamamladıktan sonra OK öğesini tıklayın.

Adım 2: Geçici kimlik bilgilerini alma

Bir RAM rolünü bir örnekle ilişkilendirdikten sonra cloud hizmetlerine erişmek için geçici kimlik bilgilerini birkaç farklı yolla alıp kullanabilirsiniz.

Credentials tool

Alibaba Cloud SDK'larından Credentials aracını kullanmanızı öneririz. Bu araç, kimlik bilgisi edinme ve yenileme işlemlerini otomatik olarak gerçekleştirir; cloud hizmetlerine erişim için en iyi uygulamadır.

  1. Bağımlılığı yükleyin (Python örneği):

    pip install alibabacloud_credentials
  2. Örnek kullanım:

    from alibabacloud_credentials.client import Client as CredClient
    from alibabacloud_credentials.models import Config as CredConfig
    credentialsConfig = CredConfig(
    	type='credentials_uri'   # Optional. If you have not configured other access methods in the default credential chain, you do not need to explicitly specify the type. The Credentials SDK obtains temporary credentials by using the URI method.
    )
    credentialsClient = CredClient(credentialsConfig)

Diğer dillerdeki daha fazla SDK örneği için bkz. Best practices for using credentials to access Alibaba Cloud OpenAPI.

Local service

DSW örneğinde terminalde aşağıdaki komutu çalıştırarak yerel olarak enjekte edilen hizmetten kimlik bilgilerini alın.

# Obtain temporary access credentials for the instance RAM role
curl $ALIBABA_CLOUD_CREDENTIALS_URI

Aşağıda örnek bir yanıt verilmiştir:

  • SecurityToken: Örnek RAM rolü için geçici belirteç.

  • Expiration: Geçici erişim kimlik bilgilerinin sona erme zamanı.

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

Local file

DSW örneğinde PAI, örnek RAM rolü için geçici kimlik bilgilerini içeren bir dosyayı otomatik olarak enjekte eder ve düzenli aralıklarla yeniler. /mnt/.alibabacloud/credentials yolundaki dosyayı okuyarak bu kimlik bilgilerini alabilirsiniz. Dosyanın içeriği şu şekildedir:

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

Adım 3: Diğer cloud hizmetlerine erişim

Access OSS

  1. Credentials aracını ve OSS SDK'yı yüklemek için aşağıdaki komutları çalıştırın:

    # Install the credentials tool
    pip install alibabacloud_credentials
    # Install the OSS SDK
    pip install oss2
  2. Belirtilen paketteki 10 nesneyi listelemek üzere OSS'e erişmek için örnek RAM rolünün geçici kimlik bilgilerini kullanın. OSS bölge uç noktaları için bkz. 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>',# Replace  with the endpoint of the region where your OSS bucket is located.
                         '<oss_bucket>'# Replace  with your OSS bucket name.
                        )
    for b in islice(oss2.ObjectIterator(bucket), 10):
        print(b.key)

Access MaxCompute

  1. Credentials aracını ve ODPS SDK'yı yüklemek için aşağıdaki komutları çalıştırın:

    # Install the credentials tool
    pip install alibabacloud_credentials
    # Install the ODPS SDK
    pip install odps
  2. Belirtilen projedeki tabloların listesini almak üzere MaxCompute'e erişmek için örnek RAM rolünün geçici kimlik bilgilerini kullanın. MaxCompute bölge uç noktaları için bkz. 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>", # 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)

Access PAI-DLC

  1. Credentials aracını, OpenAPI SDK'yı ve PAI-DLC SDK'yı yüklemek için aşağıdaki komutları çalıştırın:

    # Install the credentials tool
    pip install alibabacloud_credentials
    # Install the Alibaba Cloud OpenAPI SDK
    pip install alibabacloud-tea-util alibabacloud_tea_openapi
    # Install the PAI-DLC SDK
    pip install alibabacloud_pai_dlc20201203
  2. Belirtilen çalışma alanındaki PAI-DLC işlerini listelemek üzere PAI-DLC'ye erişmek için örnek RAM rolünün geçici kimlik bilgilerini kullanın.

    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
    # Use the Credentials tool to initialize the PAI-DLC client.
    credentialsClient = CredClient()
    config = Config(credential=credentialsClient)
    config.endpoint = '<dlc_endpoint>' # Replace  with the endpoint of your region.
    client = pai_dlc20201203Client(config)
    # Initialize the request and call the ListJobs API.
    list_jobs_request = pai_dlc_20201203_models.ListJobsRequest()
    list_jobs_request.workspace_id = '<workspace_id>' # Replace  with your workspace ID.
    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])

SSS

PassRoleFailedError sorununu çözme

Rolün var olduğunu doğrulamak için RAM console konsoluna gidin.

  • Rol yoksa örnek RAM rolünü mevcut bir rolle değiştirin.

  • Rol varsa kök hesap yöneticinizden RAM kullanıcınıza bu rolü kullanma izni vermesini isteyin. Gerekli izin ilkesi aşağıdadır (${RoleName} değerini RAM rolünün adıyla değiştirin):

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

AssumeRoleFailedError sorununu çözme

Bu hata genellikle rolünüzün güven ilkesinin yanlış yapılandırılması nedeniyle oluşur. Sorunu çözmek için şu adımları izleyin:

  1. Bir RAM yöneticisi olarak RAM console konsoluna gidin.

  2. Sol gezinme bölmesinde Identity Management > Roles seçeneğini belirleyin.

  3. Roles sayfasında hedef RAM rolünün adını tıklayın.

  4. Trust Policy sekmesinde Edit Trust Policy seçeneğini tıklayın.

  5. Güven ilkesini değiştirmek için pai.aliyuncs.com değerini Service asiline ekleyin ve ardından OK öğesini tıklayın.

    Örneğin, orijinal güven ilkesi şu şekildeyse:

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

    İlkeyi pai.aliyuncs.com değerini içerecek şekilde güncelleyin:

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