PHP 用 Simple Message Queue(SMQ、旧称 MNS) SDK を使用してリクエストを開始するには、エンドポイントとアクセス認証情報を構成する必要があります。Alibaba Cloud サービスは、アクセス認証情報を使用して、ID 情報とアクセス許可を確認します。さまざまなシナリオでの認証と承認の要件に基づいて、さまざまな種類のアクセス認証情報を選択できます。このトピックでは、エンドポイント、一時アクセス認証情報、および長期アクセス認証情報を構成する方法について説明します。
エンドポイントを構成する
PHP 用 SMQ SDK を使用してリクエストを開始する場合は、PHP ファイルの下部にエンドポイントを構成する必要があります。次のコードは例を示しています。$endPoint = "" フィールドにエンドポイントを構成します。
$accessId = getenv(Constants::ALIYUN_AK_ENV_KEY);
$accessKey = getenv(Constants::ALIYUN_SK_ENV_KEY);
$endPoint = ""; // エンドポイントを設定します。
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_profileRAM ユーザーの 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/profileRAM ユーザーの 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 ペアを構成するには、次の手順を実行します。
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 ペアを使用して環境変数を構成するには、次のコマンドを実行します。
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] を選択します。
現在のセッションに対して次の環境変数を構成します。
$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 ペアを取得します。
// 環境変数からアクセス認証情報を取得します。 $accessId = getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); $accessKey = getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
コードにアクセス認証情報を埋め込む
警告コードにアクセス認証情報を埋め込むと、セキュリティの問題が発生する可能性があります。漏洩したアクセス認証情報は、攻撃者がリソースにアクセスするために使用される可能性があり、データ侵害につながります。セキュリティを確保するために、環境変数からアクセス認証情報を取得するなど、より安全な方法を使用することをお勧めします。
$accessId = getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); $accessKey = getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); $endPoint = "example.endpoint"; // エンドポイントの例 $client = new Client($endPoint, $accessId, $accessKey);
一時アクセス認証情報を使用する
SMQ に一時的にアクセスする場合は、Security Token Service(STS)を使用して、STS によって提供される一時アクセス認証情報を構成できます。一時アクセス認証情報を使用する場合、RAM ユーザーの AccessKey ペアを開示する必要はありません。これにより、SMQ への安全なアクセスが保証されます。
RAM ユーザーを作成します。
詳細については、「RAM ユーザーを作成する」をご参照ください。
AliyunSTSAssumeRoleAccessポリシーを RAM ユーザーにアタッチします。詳細については、「RAM ユーザーに権限を付与する」をご参照ください。
RAM ユーザーとして STS の AssumeRole オペレーションを呼び出して、一時アクセス認証情報を取得します。
詳細については、「AssumeRole」をご参照ください。
STS から取得した一時アクセス認証情報を構成します。
環境変数を構成する
STS から取得した一時アクセス認証情報を使用して、環境変数を構成します。
macOS
ターミナルを開きます。
次のコマンドを実行します。
nano ~/.bash_profileSTS から取得した一時アクセス認証情報(AccessKey ID、AccessKey シークレット、セキュリティトークンを含む)をファイルの末尾に追加します。
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/profileSTS から取得した一時アクセス認証情報(AccessKey ID、AccessKey シークレット、セキュリティトークンを含む)をファイルの末尾に追加します。
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 シークレット、セキュリティトークンを含む一時アクセス認証情報を使用して環境変数を構成するには、次のコマンドを実行します。
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 から取得した一時アクセス認証情報を取得します。
$accessId = getenv("MNS_ACCESS_KEY_ID"); $accessKey = getenv("MNS_ACCESS_KEY_SECRET"); $securityToken = getenv("MNS_SESSION_TOKEN");
コードにアクセス認証情報を埋め込む
警告コードにアクセス認証情報を埋め込むと、セキュリティの問題が発生する可能性があります。漏洩したアクセス認証情報は、攻撃者がリソースにアクセスするために使用される可能性があり、データ侵害につながります。セキュリティを確保するために、環境変数からアクセス認証情報を取得するなど、より安全な方法を使用することをお勧めします。
$accessId = getenv("MNS_ACCESS_KEY_ID"); $accessKey = getenv("MNS_ACCESS_KEY_SECRET"); $securityToken = getenv("MNS_SESSION_TOKEN"); $endPoint = "example.endpoint"; // エンドポイントの例 $client = new Client($endPoint, $accessId, $accessKey, $securityToken);