Python 用 Simple Message Queue (SMQ) SDK を使用してリクエストを開始するには、エンドポイントとアクセス認証情報を構成する必要があります。Alibaba Cloud サービスは、アクセス認証情報を使用して、ID 情報とアクセス許可を確認します。さまざまなシナリオでの認証と承認の要件に基づいて、さまざまな種類のアクセス認証情報を選択できます。このトピックでは、エンドポイント、一時的なアクセス認証情報、および長期的なアクセス認証情報を構成する方法について説明します。
エンドポイントを構成する
Python 用 SMQ SDK の最新バージョンをダウンロードし、パッケージを解凍して、aliyun-mns-python-sdk サブディレクトリに移動します。
sample.cfg ファイルを開き、エンドポイントを構成します。
[エンドポイント] セクションの [キューの詳細] ページまたは [トピックの詳細] ページで、SMQ のエンドポイントを表示できます。
SMQ のエンドポイントは、リージョンによって異なります。
アクセス認証情報を構成する
次の種類のアクセス認証情報がサポートされています。
長期アクセス認証情報: データセキュリティを確保するために、長期アクセス認証情報を使用しないことをお勧めします。利便性が必要なシナリオの場合、長期アクセス認証情報を使用すると、長期間にわたって複数回更新する必要がなくなります。Alibaba Cloud アカウントのセキュリティを確保するために、3 か月ごとに長期アクセス認証情報を変更することをお勧めします。長期アクセス認証情報が漏洩した場合、または使用されなくなった場合は、長期アクセス認証情報を削除または無効にして、セキュリティリスクを軽減できます。
一時アクセス認証情報: アプリケーションに SMQ へのアクセスを一時的に許可するなど、高いセキュリティが必要なシナリオでは、一時アクセス認証情報を使用することをお勧めします。一時アクセス認証情報は、特定の期間内のみ有効であるため、認証情報の漏洩を防ぎます。一時アクセス認証情報は、きめ細かいアクセス制御をサポートしており、過剰な権限によるセキュリティリスクを防ぎます。
長期アクセス認証情報を構成する
アプリケーションまたはサービスで長期間 SMQ にアクセスする場合は、Resource Access Management (RAM) ユーザーの AccessKey ペアを使用できます。
RAM ユーザーの AccessKey ペアを取得します。
詳細については、「AccessKey ペアを作成する」トピックの RAM ユーザーの AccessKey を作成する セクションをご参照ください。
重要3 か月以上使用されている RAM ユーザーの AccessKey ペアをローテーションすることをお勧めします。長期間使用されていない RAM ユーザーの AccessKey ペアを無効にして削除することをお勧めします。これにより、AccessKey ペアの漏洩のリスクが軽減されます。
RAM ユーザーの AccessKey ペアをアクセス認証情報として構成します。
環境変数を構成する
次のコマンドを実行して、環境変数を構成します。
macOS
ターミナルを開きます。
次のコマンドを実行します。
nano ~/.bash_profile
RAM ユーザーの AccessKey ペアをファイルの末尾に追加します。
// AccessKey ID と AccessKey Secret を設定します。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 ペアをファイルの末尾に追加します。
// AccessKey ID と AccessKey Secret を設定します。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 ペアを構成するには、次の手順を実行します。
Windows デスクトップで、[PC] を右クリックし、[この 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 を使用する
CLI を開きます。
次のコマンドを実行して、AccessKey ペアを使用して環境変数を構成します。
// AccessKey ID と AccessKey Secret を設定します。set ALIBABA_CLOUD_ACCESS_KEY_ID=LTA**** set ALIBABA_CLOUD_ACCESS_KEY_SECRET=moiEs****
次のコマンドを実行して、変更を有効にします。
setx ALIBABA_CLOUD_ACCESS_KEY_ID "%MNS_ACCESS_KEY_ID%" setx ALIBABA_CLOUD_ACCESS_KEY_SECRET "%MNS_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] を選択します。
現在のセッションに対して次の環境変数を指定します。
// AccessKey ID と AccessKey Secret を設定します。$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "LTA****" $env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "moiEs****"
すべての新しいセッションに対して有効
表示されるメッセージで、[windows Powershell] を選択します。
すべての新しいセッションに対して次の環境変数を指定します。
// AccessKey ID と AccessKey Secret を設定します。[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 (管理者)] を選択します。
すべてのユーザーに対して次の環境変数を指定します。
// AccessKey ID と AccessKey Secret を設定します。[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 ペアを取得します。
// 環境変数からアクセス認証情報を取得します。 accid = os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") acckey = os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
アクセス認証情報をコードに埋め込む
警告アクセス認証情報をコードに埋め込むと、セキュリティの問題が発生する可能性があります。漏洩したアクセス認証情報は、攻撃者がリソースにアクセスするために使用される可能性があり、データ侵害が発生します。セキュリティを確保するために、環境変数からアクセス認証情報を取得するなど、より安全な方法を使用することをお勧めします。
// AccessKey ID、AccessKey Secret、エンドポイント、トークンを取得します。accid,acckey,endpoint,token = MNSSampleCommon.LoadConfig() my_account = Account(endpoint, accid, acckey, token)
一時アクセス認証情報を構成する
一時的に SMQ にアクセスする場合は、Security Token Service (STS) を使用して、STS によって提供される一時アクセス認証情報を構成できます。一時アクセス認証情報を使用する場合、RAM ユーザーの AccessKey ペアを開示する必要はありません。これにより、SMQ への安全なアクセスが保証されます。
RAM ユーザーを作成します。
詳細については、RAM ユーザーの作成 をご参照ください。
AliyunSTSAssumeRoleAccess
ポリシーを RAM ユーザーにアタッチします。詳細については、RAM ユーザーに権限を付与する をご参照ください。
RAM ユーザーを使用して STS の AssumeRole オペレーションを呼び出し、一時アクセス認証情報を取得します。
詳細については、AssumeRole をご参照ください。
STS から取得した一時アクセス認証情報を構成します。
環境変数を構成する
STS から取得した一時アクセス認証情報を使用して、環境変数を構成します。
macOS
ターミナルを開きます。
次のコマンドを実行します。
nano ~/.bash_profile
STS から取得した一時アクセス認証情報 (AccessKey ID、AccessKey Secret、セキュリティトークンを含む) をファイルの末尾に追加します。
// AccessKey ID、AccessKey Secret、セキュリティトークンを設定します。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 から取得した一時アクセス認証情報 (AccessKey ID、AccessKey Secret、セキュリティトークンを含む) をファイルの末尾に追加します。
// AccessKey ID、AccessKey Secret、セキュリティトークンを設定します。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 一時アクセス認証情報を構成するには、次の手順を実行します。
Windows デスクトップで、[PC] を右クリックし、[この 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 を使用する
CLI を開きます。
次のコマンドを実行して、一時アクセス認証情報 (AccessKey ID、AccessKey Secret、セキュリティトークンを含む) を使用して環境変数を構成します。
// AccessKey ID、AccessKey Secret、セキュリティトークンを設定します。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] を選択します。
現在のセッションに対して次の環境変数を指定します。
// AccessKey ID、AccessKey Secret、セキュリティトークンを設定します。$env:MNS_ACCESS_KEY_ID = "LTA****" $env:MNS_ACCESS_KEY_SECRET = "moiEs****" $env:MNS_SESSION_TOKEN = "CAE****"
すべての新しいセッションに対して有効
表示されるメッセージで、[windows Powershell] を選択します。
すべての新しいセッションに対して次の環境変数を指定します。
// AccessKey ID、AccessKey Secret、セキュリティトークンを設定します。[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 (管理者)] を選択します。
すべてのユーザーに対して次の環境変数を指定します。
// AccessKey ID、AccessKey Secret、セキュリティトークンを設定します。[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 から取得した一時アクセス認証情報を取得します。
// AccessKey ID、AccessKey Secret、セキュリティトークンを取得します。accid = os.getenv("MNS_ACCESS_KEY_ID") acckey = os.getenv("MNS_ACCESS_KEY_SECRET") token = os.getenv("MNS_SESSION_TOKEN") or ""
アクセス認証情報をコードに埋め込む
警告アクセス認証情報をコードに埋め込むと、セキュリティの問題が発生する可能性があります。漏洩したアクセス認証情報は、攻撃者がリソースにアクセスするために使用される可能性があり、データ侵害が発生します。セキュリティを確保するために、環境変数からアクセス認証情報を取得するなど、より安全な方法を使用することをお勧めします。
// AccessKey ID、AccessKey Secret、セキュリティトークン、エンドポイントを取得します。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)