全部产品
Search
文档中心

Alibaba Cloud SDK:Kelola kredensial akses

更新时间:Jun 28, 2025

Topik ini menjelaskan cara mengonfigurasi kredensial akses untuk memastikan penggunaan SDK secara aman dan efisien dalam pengembangan.

Gunakan pasangan AccessKey

import os

from aliyunsdkcore.client import AcsClient
from aliyunsdkecs.request.v20140526.DescribeRegionsRequest import DescribeRegionsRequest

# Inisialisasi klien SDK.
client = AcsClient(
    os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),  # Dapatkan ID AccessKey dari Pengguna Resource Access Management (RAM) melalui variabel lingkungan.
    os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),  # Dapatkan Rahasia AccessKey dari pengguna RAM melalui variabel lingkungan.
    '<region_id>'  # ID wilayah.
)

# Buat permintaan API dan konfigurasikan parameter.
request = DescribeRegionsRequest()

# Kirim permintaan.
response = client.do_action_with_exception(request)
print(str(response, encoding='utf-8'))

Gunakan token STS

Untuk memastikan keamanan bisnis Anda, Anda dapat mengajukan kredensial keamanan sementara (TSC) dari Security Token Service (STS) untuk membuat klien sementara.

import os

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.auth.credentials import StsTokenCredential
from aliyunsdkecs.request.v20140526.AcceptInquiredSystemEventRequest import AcceptInquiredSystemEventRequest

cred = StsTokenCredential(
    sts_access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),  # Dapatkan ID AccessKey yang diberikan oleh STS dari variabel lingkungan.
    sts_access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),  # Dapatkan Rahasia AccessKey yang diberikan oleh STS dari variabel lingkungan.
    sts_token=os.environ.get('ALIBABA_CLOUD_SECURITY_TOKEN')  # Dapatkan token STS yang diberikan oleh STS dari variabel lingkungan.
)

client = AcsClient(
    region_id='<region_id>',
    credential=cred
)

request = AcceptInquiredSystemEventRequest()
request.set_accept_format('json')
response = client.do_action_with_exception(request)

print(str(response, encoding='utf-8'))

Gunakan peran RAM

Anda dapat menetapkan peran RAM ke klien. Kemudian, klien secara otomatis akan mengajukan dan memelihara token STS sebelum memulai permintaan API, sehingga menjadi klien STS dengan periode validitas tertentu. Anda juga dapat secara manual mengajukan token STS dan membuat klien STS.

import os

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.auth.credentials import RamRoleArnCredential
from aliyunsdkecs.request.v20140526.DescribeRegionsRequest import DescribeRegionsRequest

cred = RamRoleArnCredential(
    sts_access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),  # Dapatkan ID AccessKey dari pengguna RAM melalui variabel lingkungan.
    sts_access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),  # Dapatkan Rahasia AccessKey dari pengguna RAM melalui variabel lingkungan.
    role_arn='<ram_role_arn>',
    session_role_name='<session_role_name>'
)

client = AcsClient(
    region_id='<region_id>',
    credential=cred
)

request = DescribeRegionsRequest()
response = client.do_action_with_exception(request)
print(str(response, encoding='utf-8'))

Gunakan peran RAM dari instance ECS

Anda dapat menetapkan peran RAM yang terpasang pada instance Elastic Compute Service (ECS) ke klien. Selanjutnya, klien akan mengajukan token STS dari http://100.100.100.200/latest/meta-data/ram/security-credentials/.

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.auth.credentials import EcsRamRoleCredential
from aliyunsdkecs.request.v20140526.AcceptInquiredSystemEventRequest import AcceptInquiredSystemEventRequest

cred = EcsRamRoleCredential(
    role_name='<ram_role_name>'
)

client = AcsClient(
    region_id='<region_id>',
    credential=cred
)

request = AcceptInquiredSystemEventRequest()
request.set_accept_format('json')
response = client.do_action_with_exception(request)
print(str(response, encoding='utf-8'))

Gunakan kredensial default

Klien SDK mencari kredensial dalam variabel lingkungan. Jika variabel ALIYUN_ACCESS_KEY_ID dan ALIYUN_ACCESS_KEY_SECRET didefinisikan dan ditentukan, pasangan AccessKey tersebut digunakan sebagai kredensial default.

from aliyunsdkcore.client import AcsClient
from aliyunsdkecs.request.v20140526.DescribeRegionsRequest import DescribeRegionsRequest

# Inisialisasi klien SDK.
client = AcsClient(
    =region_id='<region_id>'  # ID wilayah.
)

# Buat permintaan API dan konfigurasikan parameter.
request = DescribeRegionsRequest()

# Kirim permintaan.
response = client.do_action_with_exception(request)
print(str(response, encoding='utf-8'))