Tüm Ürünler
Search
Belge Merkezi

DataWorks:Bireysel geliştirme ortamı için RAM rolü yapılandırma

Son Güncelleme:Oct 05, 2026

Örnek bir RAM rolünü örneğinizle ilişkilendirerek, uzun vadeli bir AccessKey yerine STS geçici kimlik bilgisi kullanarak diğer cloud kaynaklarına erişebilirsiniz. Bu yaklaşım, kimlik bilgilerinin sızma riskini azaltır ve güvenliği artırır. Bu konuda, örnek RAM rolü kullanarak STS geçici kimlik bilgisinin nasıl elde edileceği açıklanmaktadır.

Arka plan bilgileri

Örnek RAM rolü, güvenilir varlığı bir Alibaba Cloud hizmeti olan bir RAM rolüdür. Bu yapı, cloud hizmetinin güvenli çapraz hizmet erişimi sağlamak amacıyla rolü üstlenmesine olanak tanır. RAM rolleri hakkında daha fazla bilgi için bkz. RAM rolü nedir?.

Kimlik doğrulama ve erişim kontrolü için geçici erişim kimlik bilgisi almak üzere örnek RAM rolü kullanmanın temel faydası şudur:

  • Gelişmiş güvenlik

    Kimlik bilgilerini örnek içinde yönetmeniz gerekmez. Uzun vadeli bir AccessKey yerine STS geçici kimlik bilgisi kullanmak, kimlik bilgilerinin sızma riskini azaltır.

Sınırlamalar

Bireysel geliştirme ortamı örneğiyle yalnızca bir RAM rolü ilişkilendirebilirsiniz.

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

Senaryo 1: DataWorks varsayılan rolünü ilişkilendirme

Notebook veya Python kullanarak geliştirme yaparken, bazı cloud ürünlerine AccessKey ID ve AccessKey Secret sağlamadan erişebilirsiniz.

DataWorks varsayılan rolü, yalnızca MaxCompute, Hologres, EMR Serverless Spark, Realtime Compute for Apache Flink ve Platform for AI (PAI) hizmetlerine erişim izni verir. Bu rolden verilen geçici erişim kimlik bilgisini kullanarak bu hizmetlere eriştiğinizde, bireysel geliştirme ortamı sahibinin sahip olduğu izinlerle aynı yetkilere sahip olursunuz.

DataWorks varsayılan rolünü örneğinizle ilişkilendirmek, yetki yükseltmesi olmadan temel geliştirme kaynaklarına erişim sağlayan geçici bir erişim kimlik bilgisi sunar. Böylece özel bir RAM rolü oluşturmanıza gerek kalmaz.

DataWorks varsayılan rolünü ilişkilendirdikten sonra, aşağıdaki senaryolarda bir AccessKey yapılandırmanız gerekmez:

  • Notebook SQL hücresi kullanarak MaxCompute, Hologres, EMR Serverless Spark, Realtime Compute for Apache Flink veya Platform for AI (PAI) hizmetlerine erişin.

  • ODPS SDK kullanarak, örnek sahibinin çalıştırma izinlerine sahip olduğu bir MaxCompute projesine görevler gönderin.

Advanced Information bölümünde Instance RAM role ayarını bulun ve DataWorks default role seçeneğini belirleyin.

Senaryo 2: RAM rolü ilişkilendirmeme

Örneğiniz çalışma alanında herkese açık görünür durumdaysa, izin sızıntısını önlemek için bununla bir RAM rolü ilişkilendirmeyin. Bir örnek oluştururken veya değiştirirken, Instance RAM role bölümündeki Advanced Information seçeneğini Do not associate role olarak ayarlayın.

Hiçbir RAM rolü ilişkilendirilmezse, kodunuzda AccessKey ID ve AccessKey Secret'ı yapılandırarak cloud ürünlerine erişebilirsiniz.

Adım 2: Geçici erişim kimlik bilgisi alma

Bir RAM rolünü bireysel geliştirme ortamı örneğiyle ilişkilendirdikten sonra, aşağıdaki yöntemlerden birini kullanarak geçici erişim kimlik bilgisi alabilirsiniz.

Yöntem 1: Credentials aracını kullanma

Credentials aracı, örnek oluşturulduğunda otomatik olarak enjekte edilen yerel bir hizmeti çağırır. Bu hizmet, bir STS geçici kimlik bilgisi getirir ve bunu otomatik olarak döndürür.

Credentials aracını kullanarak örnek RAM rolünün kimlik bilgisini almak için aracı yüklemek üzere aşağıdaki komutu çalıştırın. Aşağıdaki örnekte Python kullanılmıştır.

pip install alibabacloud_credentials

Aşağıdaki kod, Credentials aracının nasıl kullanılacağına ilişkin bir örnek göstermektedir. Diğer dillerdeki SDK örnekleri için bkz. API işlemlerini çağırmak için erişim kimlik bilgisi kullanmaya yönelik en iyi uygulamalar.

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 providers in the default credential chain, you do not need to explicitly specify this parameter. The Credentials SDK automatically obtains a temporary credential by using the URI.
)
credentialsClient = CredClient(credentialsConfig)

Yöntem 2: Yerel hizmet uç noktasını sorgulama

Bireysel geliştirme ortamı örneğiniz içindeki terminalden, enjekte edilen yerel hizmeti doğrudan sorgulamak ve kimlik bilgilerini almak için aşağıdaki komutu çalıştırabilirsiniz.

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

Aşağıdaki kod, örnek bir yanıt göstermektedir. Parametrelerin açıklamaları şöyledir:

  • SecurityToken: Örnek RAM rolünün geçici belirteci.

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

{
	"Code": "Success",
	"AccessKeyId": "************",
	"AccessKeySecret": "************",
	"SecurityToken": "DFE32G*******",
	"Expiration": "2024-05-21T10:39:29Z"
}

Yöntem 3: Yerel kimlik bilgisi dosyasını okuma

Bireysel geliştirme ortamı örneği içinde belirli bir yoldaki bir dosyaya erişerek örnek RAM rolünün geçici erişim kimlik bilgisini alabilirsiniz. Dosya /mnt/.alibabacloud/credentials konumunda bulunur ve aşağıdaki içeriği içerir:

{
	"AccessKeyId": "*********",
	"AccessKeySecret": "***************",
	"SecurityToken": "DFE32G*******",
	"Expiration": "2024-05-21T10:39:29Z"
}

Adım 3: MaxCompute'e erişme

  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. Örnek RAM rolünden alınan geçici kimlik bilgisini kullanarak ODPS'e erişin ve belirtilen bir projedeki tabloların listesini alın.

    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)