このトピックでは、AccessKeyペアまたはSecurity Token Service (STS) トークンを使用してApsaraVideo VOD SDK for Pythonを初期化する方法について説明します。 ビジネス要件に基づいてどちらの方法も使用できます。
背景情報
ApsaraVideo VOD SDKは、2つの異なる方法を使用して初期化できます。 権限付与ポリシーに基づいて必要な権限が付与されたAlibaba CloudアカウントまたはRAMユーザーのAccessKeyペアを使用してSDKを初期化できます。 AccessKeyペアは、Alibaba CloudアカウントまたはRAMユーザーの作成後も有効です。 サーバーでこの方法を使用することを推奨します。 または、権限付与ポリシーに基づいて必要な権限が付与されたSTSトークンを使用してSDKを初期化できます。 STSトークンの有効期間を指定できます。
前提条件
ApsaraVideo VOD SDK for Pythonがインストールされています。 詳細については、「インストール」をご参照ください。
RAM (Resource Access Management) ユーザーが作成され、必要な権限がRAMユーザーに付与されます。 詳細については、「Create and grant permissions to a RAM user」をご参照ください。
ALIBABA_CLOUD_ACCESS_KEY_IDおよびALIBABA_CLOUD_ACCESS_KEY_SECRET環境変数を設定します。 詳細については、「Linux、macOS、およびWindowsでの環境変数の設定」をご参照ください。
重要Alibaba CloudアカウントのAccessKeyペアには、すべてのAPI操作に対する権限があります。 RAMユーザーのAccessKeyペアを使用して、API操作を呼び出したり、ルーチンのO&Mを実行したりすることを推奨します。
AccessKey IDとAccessKeyシークレットをプロジェクトコードにハードコードしないことを推奨します。 そうしないと、AccessKeyペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。
ApsaraVideo VODを使用するリージョンが指定されています。 たとえば、中国 (上海) リージョンでApsaraVideo VODを使用している場合、リージョンIDは
cn-Shanghai
です。 詳細については、「VODセンターとエンドポイント」をご参照ください。
AccessKeyペアを使用してSDKを初期化する
ApsaraVideo VOD API操作を呼び出すことができるように、AccessKeyペアを取得してID検証を完了します。 AccessKey ペアを取得する方法の詳細については、「AccessKey ペアの取得」をご参照ください。
AccessKeyペアを使用してSDKを初期化します。 サンプルコード:
# -*- coding: UTF-8 -*-
import json
import traceback
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.auth.credentials import AccessKeyCredential
# Obtain the AccessKey information.
def init_vod_client():
regionId = 'cn-shanghai' # The region in which ApsaraVideo VOD is activated.
connectTimeout = 3 # The timeout period. Unit: seconds.
// The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. We recommend that you use a RAM user to call API operations or perform routine O&M.
// We recommend that you do not save your AccessKey pair (AccessKey ID and AccessKey secret) in your project code. Otherwise, the AccessKey pair may be leaked. As a result, the security of all resources within your account is compromised.
// In this example, ApsaraVideo VOD reads the AccessKey pair from the environment variables to implement identity verification for API access. Before you run the sample code, configure the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET.
credentials = AccessKeyCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'])
return AcsClient(region_id=regionId, credential=credentials)
STSトークンを使用してSDKを初期化する
SDKを初期化するためにSTSトークンが取得されます。 STSトークンを取得する方法の詳細については、「STSを使用してロールを作成し、ロールに一時的なアクセス許可を付与する」トピックの「STSを使用してアクセスを許可する」セクションを参照してください。
STSトークンを使用してSDKを初期化します。 サンプルコード:
# -*- coding: UTF-8 -*-
import json
import traceback
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.auth.credentials import StsTokenCredential
# Obtain the STS information.
def init_vod_client(accessKeyId, accessKeySecret, securityToken):
regionId = 'cn-shanghai' # The region in which ApsaraVideo VOD is activated.
connectTimeout = 3 # The timeout period. Unit: seconds.
credential = StsTokenCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'], os.environ['ALIBABA_CLOUD_SECURITY_TOKEN'])
return AcsClient(region_id=regionId, auto_retry=True, max_retry_time=3, timeout=connectTimeout, credential=credential)