Ö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
-
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 -
Ö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)