Tüm Ürünler
Search
Belge Merkezi

Platform For AI:DLC için RAM rolü yapılandırın

Son Güncelleme:Oct 04, 2026

DLC işleriniz diğer cloud kaynaklarına eriştiğinde kimlik doğrulama için bir AccessKey çifti yapılandırmanız gerekir. Bir RAM rolü ilişkilendirerek DLC işinizin Security Token Service (STS) üzerinden geçici kimlik bilgilerini kullanmasını sağlayabilir, uzun vadeli AccessKey çiftlerine olan ihtiyacı ortadan kaldırabilir ve anahtar sızdırma riskini azaltabilirsiniz. Bu konuda RAM rolü oluşturma, DLC'ye izin verme ve RAM rolünü kullanarak geçici erişim kimlik bilgilerini alma adımları açıklanmaktadır.

Avantajlar

RAM rolü, cloud hizmetlerinin hizmetler arası erişimi yönetmek için üstlenebileceği güvenilir bir varlıktır. Kimlik doğrulama ve erişim kontrolü için RAM rolü kullanmanın aşağıdaki avantajları vardır:

  • Güvenlik: Geçici STS kimlik bilgileri uzun vadeli AccessKey çiftlerinin yerine geçer ve anahtar sızdırma riskini azaltır.

  • Kontrol ve kolaylık: RAM rolünün izin ilkesini değiştirerek geliştiricilerin cloud kaynaklarına erişimini hassas şekilde kontrol edebilirsiniz.

Sınırlamalar

Tek bir DLC işine yalnızca bir RAM rolü ilişkilendirebilirsiniz.

Yapılandırma yöntemleri

Bir DLC işi oluştururken bir RAM rolü yapılandırın ve geçici STS kimlik bilgilerini alın.

DLC için RAM rolü yapılandırma

PAI default role

default role of PAI, AliyunPAIDLCDefaultRole hizmet rolüne dayanır. Yalnızca MaxCompute ve Object Storage Service (OSS) kaynaklarına erişmek için ayrıntılı izinlere sahiptir. Bu rolden verilen geçici kimlik bilgilerinin MaxCompute tablolarına erişirken sahip olduğu yetkiler Alibaba Cloud account ile aynıdır. OSS'e erişirken ise yalnızca mevcut workspace için yapılandırılmış varsayılan OSS paketine erişebilir.

PAI'nin varsayılan rolünü verdikten sonra aşırı izin vermeden veya ek bir RAM rolü oluşturmadan iş içinde temel geliştirme kaynaklarına erişmek için geçici kimlik bilgileri alabilirsiniz.

  • Kullanım senaryoları

    PAI'nin varsayılan rolü verildiğinde aşağıdaki senaryolarda bir AccessKey çifti yapılandırmanıza gerek kalmaz:

    • İş sahibinin yürütme izinlerine sahip olduğu bir MaxCompute projesine PyODPS SDK kullanarak iş gönderme.

    • OSS SDK kullanarak mevcut workspace için yapılandırılan varsayılan OSS paketi içindeki verilere erişme.

  • Yapılandırma yöntemi

    Bir DLC işi oluştururken, Roles and Permissions bölümünde Instance RAM Role olarak Default Roles of PAI seçeneğini işaretleyin. Roles and Permissions bölümünde Visibility değerini Visible within the workspace olarak ayarlayın ve Instance RAM Role değerini default role of PAI olarak belirleyin.

RAM rolünü yapılandırdıktan sonra ilişkili RAM rolünü kullanarak geçici bir erişim kimlik bilgisi almanız gerekir.

Custom role

default role of PAI üzerinden alınan geçici kimlik bilgilerinin izinleri ihtiyaçlarınızı karşılamıyorsa bir RAM rolü oluşturup izin ilkesini özelleştirebilirsiniz. Aşağıdaki adımları izleyin:

  1. RAM konsolunda oturum açın ve bir RAM rolü oluşturun.

    Aşağıdaki temel parametreleri yapılandırın:

    • Principal Type: Cloud Services seçeneğini işaretleyin.

    • Principal Name: PAI seçeneğini işaretleyin.

  2. Oluşturulan RAM rolüne izin verin.

    Rolün izinlerini tanımlamak için RAM rolüne bir sistem veya özel ilke ekleyin. Örneğin RAM rolüne OSS üzerinde salt okunur erişim sağlamak için AliyunOSSReadOnlyAccess ilkesini atayın.

    Bir RAM kullanıcısıysanız RAM kullanıcınızın bu RAM rolünü kullanma izinlerini vermesi için Alibaba Cloud hesap yöneticinize başvurun. Daha fazla bilgi için bkz. RAM kullanıcı izinlerini yönetme. Aşağıdaki kod özel bir izin ilkesi örneğini göstermektedir:

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

    ${RoleName} ifadesini DLC işiyle ilişkilendirilen RAM rolünün adıyla değiştirin.

  3. DLC işini gönderin ve RAM rolünü ilişkilendirin. Roles and Permissions bölümünde aşağıdaki temel parametreleri yapılandırın. Diğer parametreler hakkında bilgi için bkz. Eğitim işi oluşturma.


    Parameter


    Description


    Instance RAM Role


    Custom Role seçeneğini işaretleyin.


    RAM Role


    Önceki adımlarda oluşturduğunuz RAM rolünü seçin. Geçici kimlik bilgisi cloud hizmetlerine erişirken bu özel rolün izinlerini devralır.

RAM rolünü yapılandırdıktan sonra ilişkili RAM rolünü kullanarak geçici bir erişim kimlik bilgisi almanız gerekir.

No associated role

Verilere erişmek için bir AccessKey çifti kullanmanız gerekmiyorsa rol ilişkilendirmemeniz önerilir. Bir DLC işi oluştururken, Roles and Permissions bölümünde Instance RAM Role olarak Does Not Associate Role seçeneğini işaretleyin. Roles and Permissions bölümünde Visibility değerini Visible to creator only olarak ayarlayın ve Instance RAM Role değerini Do not associate role olarak belirleyin.

Geçici bir erişim kimlik bilgisi alma

Bir DLC işine PAI'nin varsayılan rolünü veya özel bir rol atadıysanız geçici kimlik bilgilerini aşağıdaki yollardan biriyle alabilirsiniz:

Use the credentials tool

Alibaba Cloud Credentials aracı, iş oluşturulurken otomatik olarak enjekte edilen yerel bir hizmeti çağırarak STS'den geçici kimlik bilgilerini alır. Kimlik bilgileri düzenli aralıklarla otomatik olarak yenilenir.

Bir DLC işi oluştururken aşağıdaki temel yapılandırmaları tamamlayın:

  • Alibaba Cloud Credentials aracını yükleyin.

    Third-party Library Settings bölümünde Third-party Libraries seçeneğini işaretleyin ve Alibaba Cloud Credentials aracını yüklemek için metin kutusuna alibabacloud_credentials yazın.

    Not

    Kitaplık görüntüde önceden yüklüyse bu adımı atlayabilirsiniz.

  • Bir komut dosyası dosyası yapılandırın.

    Aşağıdaki kod bir Python komut dosyası örneği sunar. Diğer SDK dillerindeki daha fazla örnek için bkz. Alibaba Cloud OpenAPI'ye erişmek için erişim kimlik bilgilerini kullanmaya ilişkin en iyi uygulamalar. Komut dosyası dosyasını DLC ortamına yüklemek için Source Code Repositories veya Mount Configuration seçeneğini kullanabilirsiniz.

    from alibabacloud_credentials.client import Client as CredClient
    from alibabacloud_credentials.models import Config as CredConfig
    credentialsConfig = CredConfig(
        type='credentials_uri'
    )
    credentialsClient = CredClient(credentialsConfig)
    

Access the local service

Bir DLC işi oluştururken otomatik olarak enjekte edilen yerel hizmetten geçici kimlik bilgilerini almak için Startup Command alanında aşağıdaki komutu çalıştırın.

# Obtain a temporary access credential for the instance RAM role.
curl $ALIBABA_CLOUD_CREDENTIALS_URI

Aşağıdaki örnek bir çıktıyı göstermektedir:

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

Alan açıklamaları:

  • SecurityToken: RAM rolünün geçici güvenlik belirteci.

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

Access a local file

DLC konteynerinde belirtilen yoldaki dosyayı okuyarak RAM rolü için geçici kimlik bilgilerini alın. Bu dosya PAI tarafından otomatik olarak enjekte edilir ve periyodik olarak yenilenir. Dosya yolu /mnt/.alibabacloud/credentials şeklindedir. Aşağıdaki kod dosya içeriğini göstermektedir:

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

Örnekler

Access ODPS

Bir DLC işi oluştururken aşağıdaki temel yapılandırmaları tamamlayın:

  • Gerekli kitaplıkları yükleyin.

    Third-party Library Settings bölümünde Alibaba Cloud Credentials aracını ve ODPS SDK'yı yüklemek için Third-party Libraries değerini yapılandırın.

    alibabacloud_credentials
    pyodps
    Not

    Bu kitaplıklar görüntüde önceden yüklüyse bu adımı atlayabilirsiniz.

  • Bir komut dosyası dosyası yapılandırın.

    Aşağıdaki kod bir Python komut dosyası örneği sunar. Komut dosyası dosyasını DLC ortamına yüklemek ve /mnt/data/ gibi bir Mount Path yapılandırmak için Source Code Repositories veya Mount Configurations seçeneğini kullanabilirsiniz.

    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)
    
  • Başlatma komutunu yapılandırın.

    Startup Command değerini komut dosyasını çalıştıran komut olarak ayarlayın. Örneğin python /mnt/data/xx.py.

  • Rol bilgilerini yapılandırın.

    Instance RAM Role için Default Roles of PAI seçeneğini işaretleyin.

Access OSS

Bir DLC işi oluştururken aşağıdaki temel yapılandırmaları tamamlayın:

  • Gerekli kitaplıkları yükleyin.

    Third-party Library Settings bölümünde Alibaba Cloud Credentials aracını ve OSS SDK'yı yüklemek için Third-party Libraries değerini yapılandırın.

    alibabacloud_credentials
    oss2
    Not

    Bu kitaplıklar görüntüde önceden yüklüyse bu adımı atlayabilirsiniz.

  • Bir komut dosyası dosyası yapılandırın.

    Aşağıdaki kod bir Python komut dosyası örneği sunar. Komut dosyası dosyasını DLC ortamına yüklemek ve /mnt/data/ gibi bir Mount Path yapılandırmak için Source Code Repositories veya Mount Configurations seçeneğini kullanabilirsiniz.

    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)
    
  • Başlatma komutunu yapılandırın.

    Startup Command değerini komut dosyasını çalıştıran komut olarak ayarlayın. Örneğin python /mnt/data/xx.py.

  • Rol bilgilerini yapılandırın.

    Instance RAM Role için Default Roles of PAI seçeneğini işaretleyin.

SSS

Özel rol seçerken hata oluşması

  • Hata mesajı: check permission for ram role failed veya check permission for RAM user failed.

    Rolün var olduğunu doğrulamak için RAM konsolunda oturum açabilirsiniz.

    • Rol yoksa Instance RAM Role değerini mevcut bir rolle değiştirin.

    • Rol varsa RAM kullanıcınızın bu rolü kullanma izinlerini vermesi için Alibaba Cloud hesap yöneticinize başvurun. Daha fazla bilgi için bkz. RAM kullanıcı izinlerini yönetme. Aşağıda örnek bir özel izin ilkesi verilmiştir. ${RoleName} ifadesini RAM rolünüzün adıyla değiştirin.

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "ram:PassRole",
            "Resource": "acs:ram::*:role/${RoleName}"
          }
        ]
      }
  • Hata mesajı: Failed to assume role for user.

    Bu hata genellikle rolünüz için bir güven ilkesi yapılandırılmadığında ortaya çıkar. Aşağıdaki adımları izleyerek bir güven ilkesi ekleyin:

    1. Bir RAM yöneticisi olarak RAM konsolunda oturum açın.

    2. Sol gezinme bölmesinde Identities > Roles seçeneklerini tıklayın.

    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. Düzenleyicide güven ilkesini değiştirin ve ardından OK seçeneğini tıklayın.

      Rolün orijinal güven ilkesinin şu olduğunu varsayalım:

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

      Yeni ilke içeriği aşağıdaki gibidir:

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