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