Python SDK を使用して SMQ リクエストを行うには、エンドポイントとアクセス認証情報を設定する必要があります。Alibaba Cloud サービスは、アクセス認証情報を使用して ID と権限を検証します。ご利用のユースケースの認証と権限付与の要件に基づいて、さまざまな種類のアクセス認証情報を選択できます。このトピックでは、エンドポイント、一時的なアクセス認証情報、および長期的なアクセス認証情報の設定方法について説明します。
エンドポイントの設定
-
最新バージョンの Python SDK をダウンロードします。パッケージを解凍し、
aliyun-mns-python-sdkサブディレクトリに移動します。 -
sample.cfgファイルを開き、エンドポイントを設定します。-
SMQ エンドポイントに関する情報は、コンソールの キューの詳細 または トピックの詳細 ページの [エンドポイント] セクションで確認できます。Message Service (MNS) コンソールにログインします。[キューリスト] で、対象のキューの名前をクリックして [キュー詳細] ページに移動します。ページ下部の [エンドポイント] セクションで、パブリックアクセスまたは内部アクセス用のエンドポイントを取得し、
sample.cfgファイルに追加します。 -
エンドポイントはリージョンによって異なります。
-
アクセス認証情報の設定
以下の種類のアクセス認証情報を使用できます。
-
長期的なアクセス認証情報:セキュリティを最大限に高めるため、長期的なアクセス認証情報の代わりに一時的なアクセス認証情報を使用してください。長期的なアクセス認証情報は、頻繁にリフレッシュする必要がないため便利です。アカウントのセキュリティを強化するため、長期的なアクセス認証情報は 3 か月ごとにローテーションしてください。長期的なアクセス認証情報が漏洩した場合や利用されなくなった場合は、セキュリティリスクを防ぐため、直ちに削除または無効化してください。
-
一時的なアクセス認証情報:アプリケーションに SMQ へのアクセスを一時的に許可するなど、高いセキュリティが求められるユースケースでは、一時的なアクセス認証情報を使用します。これらの認証情報は限られた時間のみ有効であるため、認証情報漏洩のリスクが軽減されます。さらに、きめ細かなアクセス制御をサポートしているため、過剰な権限に伴うセキュリティリスクを回避できます。
長期的なアクセス認証情報の使用
アプリケーションやサービスから SMQ サービスに長期的にアクセスする準備ができたら、RAM ユーザーの AccessKey ペア を使用してご利用の SMQ にアクセスできます。
-
RAM ユーザーの AccessKey ペアを取得します。
詳細については、「RAM ユーザーの AccessKey ペアの作成」をご参照ください。
重要3 か月以上経過した RAM ユーザーの AccessKey ペアはローテーションしてください。AccessKey ペアが利用されなくなった場合は、漏洩を防ぐため、直ちに無効化して削除してください。
-
RAM ユーザーの AccessKey ペアを設定します。
環境変数
-
環境変数を設定します。
macOS
-
ターミナルを開きます。
-
次のコマンドを実行します。
nano ~/.bash_profile -
ファイルの末尾に RAM ユーザーの AccessKey ペアを追加します。
export ALIBABA_CLOUD_ACCESS_KEY_ID=LTA**** export ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs**** -
Ctrl+Xを押し、Yを押して確定し、Enterを押して保存し、終了します。 -
次のコマンドを実行して変更を適用します。
source ~/.bash_profile -
次のコマンドを実行して環境変数の設定を検証します。
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET成功した場合の出力例:
LTA**** moiEs****
Linux
-
ターミナルを開きます。
-
次のコマンドを実行します。
sudo vim /etc/profile -
ファイルの末尾に RAM ユーザーの AccessKey ペアを追加します。
export ALIBABA_CLOUD_ACCESS_KEY_ID=LTA**** export ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs**** -
ESCを押して挿入モードを終了し、:wqと入力してからEnterを押してファイルを保存し、終了します。 -
次のコマンドを実行して変更を適用します。
source /etc/profile -
次のコマンドを実行して環境変数の設定を検証します。
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET成功した場合の出力例:
LTA**** moiEs****
Windows
GUI
Windows 10 の GUI を使用して RAM ユーザーの AccessKey ペアを環境変数として設定するには:
-
デスクトップで [この PC] を右クリックし、[プロパティ] > [システムの詳細設定] > [環境変数] を選択します。[システム環境変数] または [ユーザー環境変数] セクションで、[新規] をクリックします。
-
次の環境変数を追加します。
パラメーター
例
ALIBABA_CLOUD_ACCESS_KEY_ID
LTA****
ALIBABA_CLOUD_ACCESS_KEY_SECRET
moiEs****
-
次のコマンドを実行して環境変数の設定を検証します。
echo $ALIBABA_CLOUD_ACCESS_KEY_ID echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET成功した場合の出力例:
LTA**** moiEs****
CMD
-
コマンドプロンプトを開きます。
-
次のコマンドを実行して RAM ユーザーの AccessKey ペアを設定します。
set ALIBABA_CLOUD_ACCESS_KEY_ID=LTA**** set ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs**** -
次のコマンドを実行して変更を適用します。
setx ALIBABA_CLOUD_ACCESS_KEY_ID "%ALIBABA_CLOUD_ACCESS_KEY_ID%" setx ALIBABA_CLOUD_ACCESS_KEY_SECRET "%ALIBABA_CLOUD_ACCESS_KEY_SECRET%" -
次のコマンドを実行して環境変数の設定を検証します。
echo %ALIBABA_CLOUD_ACCESS_KEY_ID% echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%成功した場合の出力例:
LTA**** moiEs****
Windows PowerShell
-
Win + Xキーを同時に押します。 -
RAM ユーザーの AccessKey ペアを設定します。
現在のセッション
-
ポップアップメニューから [Windows PowerShell] を選択します。
-
現在のセッションに次の環境変数を追加します。
$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "LTA****" $env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "moiEs****"
新しいセッション
-
ポップアップメニューから [Windows PowerShell] を選択します。
-
すべての新しいセッションに次の環境変数を追加します。
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTA****', [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'moiEs****', [System.EnvironmentVariableTarget]::User)
すべてのユーザー
-
ポップアップメニューから [Windows PowerShell (管理者)] を選択します。
-
すべてのユーザーに次の環境変数を追加します。
[System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_ID', 'LTA****', [System.EnvironmentVariableTarget]::Machine) [System.Environment]::SetEnvironmentVariable('ALIBABA_CLOUD_ACCESS_KEY_SECRET', 'moiEs****', [System.EnvironmentVariableTarget]::Machine)
-
-
次のコマンドを実行して環境変数の設定を検証します。
Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_ID Get-ChildItem env:ALIBABA_CLOUD_ACCESS_KEY_SECRET成功した場合の出力例:
LTA**** moiEs****
-
-
環境変数から RAM ユーザーの AccessKey ペアを取得します。
// 環境変数から取得した RAM ユーザーの AccessKey ペアを使用してアクセス認証情報を設定します。 accid = os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") acckey = os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
コードへの埋め込み
警告コードにアクセス認証情報を埋め込むことは、重大なセキュリティリスクを伴います。認証情報が漏洩すると、攻撃者がご利用の SMQ リソースにアクセスできるようになり、金銭的な損失につながる可能性があります。環境変数など、より安全な方法を使用することを強く推奨します。
accid,acckey,endpoint,token = MNSSampleCommon.LoadConfig() my_account = Account(endpoint, accid, acckey, token) -
一時的なアクセス認証情報の使用
SMQ サービスに一時的にアクセスする必要がある場合は、Security Token Service (STS) を使用して一時的なアクセス認証情報を発行できます。一時的なアクセス認証情報では、RAM ユーザーの AccessKey ペアを公開する必要がないため、SMQ へのアクセスがより安全になります。
-
RAM ユーザーを作成します。
詳細については、「RAM ユーザーの作成」をご参照ください。
-
RAM ユーザーに
AliyunSTSAssumeRoleAccess権限を付与します。詳細については、「RAM ユーザーの権限管理」をご参照ください。
-
RAM ユーザーを使用して STS の AssumeRole 操作を呼び出し、一時的なアクセス認証情報を取得します。
詳細については、「AssumeRole」をご参照ください。
-
STS から取得した一時的なアクセス認証情報を設定します。
環境変数
-
STS から取得した一時的なアクセス認証情報を使用して環境変数を設定します。
macOS
-
ターミナルを開きます。
-
次のコマンドを実行します。
nano ~/.bash_profile -
ファイルの末尾に STS から取得した一時的なアクセス認証情報 (AccessKeyId、AccessKeySecret、SecurityToken を含む) を追加します。
export MNS_ACCESS_KEY_ID=LTA**** export MNS_ACCESS_KEY_SECRET=moiEs**** export MNS_SESSION_TOKEN=CAES**** -
Ctrl+Xを押し、Yを押して確定し、Enterを押して保存し、終了します。 -
次のコマンドを実行して変更を適用します。
source ~/.bash_profile -
次のコマンドを実行して環境変数の設定を検証します。
echo $MNS_ACCESS_KEY_ID echo $MNS_ACCESS_KEY_SECRET echo $MNS_SESSION_TOKEN成功した場合の出力例:
LTA**** moiEs**** CAES****
Linux
-
ターミナルを開きます。
-
次のコマンドを実行します。
sudo vim /etc/profile -
ファイルの末尾に STS から取得した一時的なアクセス認証情報 (AccessKeyId、AccessKeySecret、SecurityToken を含む) を追加します。
export MNS_ACCESS_KEY_ID=LTA**** export MNS_ACCESS_KEY_SECRET=moiEs**** export MNS_SESSION_TOKEN=CAES**** -
ESCを押して挿入モードを終了し、:wqと入力してからEnterを押してファイルを保存し、終了します。 -
次のコマンドを実行して変更を適用します。
source /etc/profile -
次のコマンドを実行して環境変数の設定を検証します。
echo $MNS_ACCESS_KEY_ID echo $MNS_ACCESS_KEY_SECRET echo $MNS_SESSION_TOKEN成功した場合の出力例:
LTA**** moiEs**** CAES****
Windows
GUI
Windows 10 の GUI を使用して STS の一時的な認証情報を環境変数として設定するには:
-
デスクトップで [この PC] を右クリックし、[プロパティ] > [システムの詳細設定] > [環境変数] を選択します。[システム環境変数]/[ユーザー環境変数] セクションで、[新規] をクリックします。
-
次の環境変数を追加します。
パラメーター
例
MNS_ACCESS_KEY_ID
LTA****
MNS_ACCESS_KEY_SECRET
moiEs****
MNS_SESSION_TOKEN
CAES****
-
次のコマンドを実行して環境変数の設定を検証します。
echo %MNS_ACCESS_KEY_ID% echo %MNS_ACCESS_KEY_SECRET% echo %MNS_SESSION_TOKEN%成功した場合の出力例:
LTA**** moiEs**** CAES****
CMD
-
コマンドプロンプトを開きます。
-
次のコマンドを実行して、STS から取得した一時的なアクセス認証情報 (AccessKeyId、AccessKeySecret、SecurityToken を含む) を設定します。
set MNS_ACCESS_KEY_ID=LTA**** set MNS_ACCESS_KEY_SECRET=moiEs**** set MNS_SESSION_TOKEN=CAES**** -
次のコマンドを実行して変更を適用します。
setx MNS_ACCESS_KEY_ID "%MNS_ACCESS_KEY_ID%" setx MNS_ACCESS_KEY_SECRET "%MNS_ACCESS_KEY_SECRET%" setx MNS_SESSION_TOKEN "%MNS_SESSION_TOKEN%" -
次のコマンドを実行して環境変数の設定を検証します。
echo %MNS_ACCESS_KEY_ID% echo %MNS_ACCESS_KEY_SECRET% echo %MNS_SESSION_TOKEN%成功した場合の出力例:
LTA**** moiEs**** CAES****
Windows PowerShell
-
Win + Xキーを同時に押します。 -
STS からの一時的なアクセス認証情報を設定します。
現在のセッション
-
ポップアップメニューから [Windows PowerShell] を選択します。
-
現在のセッションに次の環境変数を追加します。
$env:MNS_ACCESS_KEY_ID = "LTA****" $env:MNS_ACCESS_KEY_SECRET = "moiEs****" $env:MNS_SESSION_TOKEN = "CAE****"
新しいセッション
-
ポップアップメニューから [Windows PowerShell] を選択します。
-
すべての新しいセッションに次の環境変数を追加します。
[System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_ID', 'LTA****', [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_SECRET', 'moiEs****', [System.EnvironmentVariableTarget]::User) [System.Environment]::SetEnvironmentVariable('MNS_SESSION_TOKEN', 'CAES****', [System.EnvironmentVariableTarget]::User)
すべてのユーザー
-
ポップアップメニューから [Windows PowerShell (管理者)] を選択します。
-
すべてのユーザーに次の環境変数を追加します。
[System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_ID', 'LTA****', [System.EnvironmentVariableTarget]::Machine) [System.Environment]::SetEnvironmentVariable('MNS_ACCESS_KEY_SECRET', 'moiEs****', [System.EnvironmentVariableTarget]::Machine) [System.Environment]::SetEnvironmentVariable('MNS_SESSION_TOKEN', 'CAES****', [System.EnvironmentVariableTarget]::Machine)
-
-
次のコマンドを実行して環境変数の設定を検証します。
Get-ChildItem env:MNS_ACCESS_KEY_ID Get-ChildItem env:MNS_ACCESS_KEY_SECRET Get-ChildItem env:MNS_SESSION_TOKEN成功した場合の出力例:
LTA**** moiEs**** CAES****
-
-
環境変数から STS の一時的なアクセス認証情報を取得します。
accid = os.getenv("MNS_ACCESS_KEY_ID") acckey = os.getenv("MNS_ACCESS_KEY_SECRET") token = os.getenv("MNS_SESSION_TOKEN") or ""
コードへの埋め込み
警告コードにアクセス認証情報を埋め込むことは、重大なセキュリティリスクを伴います。認証情報が漏洩すると、攻撃者がご利用の SMQ リソースにアクセスできるようになり、金銭的な損失につながる可能性があります。環境変数など、より安全な方法を使用することを強く推奨します。
accid = os.getenv("MNS_ACCESS_KEY_ID") acckey = os.getenv("MNS_ACCESS_KEY_SECRET") token = os.getenv("MNS_SESSION_TOKEN") or "" endpoint = "example.endpoint" my_account = Account(endpoint, accid, acckey, token) -