STS の一時的なセキュリティ認証情報をお持ちの場合、StsToken モードを使用して Alibaba Cloud CLI を設定できます。このモードでは、CLI は提供された認証情報を直接使用し、自動更新は行いません。認証情報の有効期限が切れた場合は、新しい認証情報を取得し、設定を上書きする必要があります。
前提条件
Alibaba Cloud CLI のバージョンが
3.3.0以降である必要があります。aliyun versionを実行して現在のバージョンを確認できます。バージョンが3.3.0より前の場合は、「CLI のインストール/更新」を参照してアップグレードしてください。AssumeRole API の呼び出し、またはその他の方法で有効な STS の一時的なセキュリティ認証情報を取得している必要があります。認証情報には以下が含まれます。
AccessKey ID (通常は
STS.で始まります)AccessKey Secret
セキュリティトークン
認証情報の有効期限を確認しておく必要があります。一時的なセキュリティ認証情報は、STS トークン取得時に設定された有効期間 (
DurationSeconds) に応じて、通常 15 分から 1 時間で失効します。
認証情報の設定
インタラクティブな方法、または非インタラクティブな方法で、Alibaba Cloud CLI に一時的なセキュリティ認証情報を設定できます。
インタラクティブ設定
次のコマンドを実行して設定を開始します。
<ProfileName>をStsProfileなどのカスタムプロファイル名に置き換えます。aliyun configure --mode StsToken --profile <ProfileName>プロンプトに従って認証情報を入力します。
Configuring profile 'StsProfile' in 'StsToken' authenticate mode... Access Key Id []: STS.NUr5xxxxx Access Key Secret []: 7Bshxxxxx Sts Token []: CAISxxxxxxxxxxxxxxxx... Default Region Id []: cn-hangzhou Default Output Format [json]: json (Only support json) Default Language [zh|en] en: en Saving profile[StsProfile] ...Done.ターミナルに
Saving profile[...] ...Done.とウェルカムメッセージが表示されると、設定は完了です。
非インタラクティブ設定
コマンド例:
Bash
aliyun configure set \
--profile StsProfile \
--mode StsToken \
--access-key-id STS.NUr5xxxxx \
--access-key-secret 7Bshxxxxx \
--sts-token CAISxxxxxxxxxxxxxxxx... \
--region cn-shanghaiPowerShell
aliyun configure set `
--profile StsProfile `
--mode StsToken `
--access-key-id STS.NUr5xxxxx `
--access-key-secret 7Bshxxxxx `
--sts-token CAISxxxxxxxxxxxxxxxx... `
--region cn-shanghai設定が成功すると、そのプロファイルは自動的にアクティブなプロファイルになります。別のプロファイルに切り替えるには、aliyun configure switch --profile <ProfileName> コマンドを実行します。
設定の確認
設定が完了したら、次のコマンドを実行して認証情報を確認します。
aliyun sts get-caller-identity以下のような出力が表示されます。Arn フィールドには、現在の STS トークンに関連付けられている RAM ロール名とロールセッション名が表示されます。
{
"AccountId": "191317683912****",
"Arn": "acs:sts::191317683912****:assumed-role/<RoleName>/<RoleSessionName>",
"IdentityType": "AssumedRoleUser",
"PrincipalId": "30004467717606****:<RoleSessionName>",
"RequestId": "0FFADC33-EA49-5E2A-977F-0BA820D6****",
"RoleId": "30004467717606****"
}認証情報の更新
STS の一時的なセキュリティ認証情報は自動的に更新されません。認証情報の有効期限が切れた後に CLI コマンドを実行すると、次のエラーが返ります。
Error: request execution failed: request execution failed: SDKError:
StatusCode: 400
Code: InvalidSecurityToken.Expired
Message: code: 400, Specified SecurityToken is expired. request id: 9C518A52-BE37-570A-8E1A-0DD559BC****
Data: {"Code":"InvalidSecurityToken.Expired", ...}新しい一時的なセキュリティ認証情報を取得した後、再度設定コマンドを実行してください。認証情報の自動更新を有効にするには、代わりに RamRoleArn または EcsRamRole の認証情報タイプを使用することを推奨します。
認証情報の削除
ローカルの CLI 設定から StsToken 認証情報を削除するには、次のコマンドを実行してください。
aliyun configure delete --profile <ProfileName>よくある質問
期限切れの STS トークンの更新
同じプロファイル名で aliyun configure set コマンドを実行して、既存のプロファイルを上書きできます。この操作により、確認プロンプトなしで古い認証情報の値が置き換えられます。
環境変数の使用
CLI は設定プロファイルの認証情報を優先します。プロファイルが設定されていても値が不足している場合、CLI は対応する環境変数を自動的に使用して不足している値を補います。
export ALIBABA_CLOUD_ACCESS_KEY_ID="STS.xxx"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="tempSecret"
export ALIBABA_CLOUD_SECURITY_TOKEN="token-string"