Alibaba Cloud CLI を Elastic Compute Service (ECS) インスタンスまたは Elastic Container Instance (ECI) インスタンスで実行する場合、EcsRamRole 認証情報タイプを使用して認証できます。CLI は、インスタンスにアタッチされた RAM ロールのため、インスタンスメタデータサービス (IMDS) から一時的なセキュリティ認証情報 (STS トークン) を自動的に取得します。アクセスキーペアは必要ありません。これは、Alibaba Cloud インスタンスで実行されるワークロードに推奨される認証方式です。
前提条件
-
Alibaba Cloud CLI バージョン
3.3.0以降。aliyun versionを実行してバージョンを確認します。アップグレードするには、「Alibaba Cloud CLI をインストールまたは更新する」をご参照ください。 -
CLI が ECS インスタンスまたは ECI インスタンスにインストールされていること。ローカル開発環境では、この認証情報タイプはサポートされていません。
-
必要な権限を持つ RAM ロールがインスタンスにアタッチされていること。手順については、「RAM ロールを作成して ECS インスタンスに付与する」および「インスタンス RAM ロールを ECI インスタンスに付与する」をご参照ください。
認証情報の設定
対話形式の設定
-
次のコマンドを実行します。
<ProfileName>をEcsProfileなどのプロファイル名に置き換えます。aliyun configure --mode EcsRamRole --profile <ProfileName> -
各プロンプトで要求された情報を入力してください:
Configuring profile 'EcsProfile' in 'EcsRamRole' authenticate mode... Ecs Ram Role []: ecs-role-name Default Region Id []: cn-shanghai Default Output Format [json]: json (json のみサポート) Default Language [zh|en] en: en Saving profile[EcsProfile] ...Done.利用可能なリージョン ID については、「リージョンとアベイラビリティーゾーン」をご参照ください。クラウドサービスがクロスリージョンアクセスをサポートしていない場合は、デフォルトのリージョンをリソースがデプロイされているリージョンに設定してください。
-
ターミナルに
Configure Doneとウェルカムメッセージが表示されたら、設定は完了です。
非対話形式の設定
Bash
aliyun configure set \
--profile EcsProfile \
--mode EcsRamRole \
--ram-role-name ECSAdmin \
--region cn-hangzhou
PowerShell
aliyun configure set `
--profile EcsProfile `
--mode EcsRamRole `
--ram-role-name ECSAdmin `
--region cn-hangzhou
プロファイルを設定すると、自動的にアクティブなプロファイルになります。別のプロファイルに切り替えるには、aliyun configure switch --profile <ProfileName> コマンドを実行します。
認証情報の検証
次のコマンドを実行して、認証情報が機能することを確認してください:
aliyun sts get-caller-identity
認証情報が正しく設定されている場合、出力の Arn フィールドに RAM ロール名が含まれます。
{
"AccountId": "191317683912****",
"Arn": "acs:ram::191317683912****:assumed-role/<ecs-role-name>/<role-session-name>",
"IdentityType": "AssumedRoleUser",
"PrincipalId": "30004467717606****:<role-session-name>",
"RequestId": "0FFADC33-EA49-5E2A-977F-0BA820D6****",
"RoleId": "30004467717606****"
}
認証情報のリフレッシュ
EcsRamRole 認証情報は、IMDS を通じて取得される STS の一時的なセキュリティ認証情報です。IMDS は認証情報のリフレッシュを自動的に処理します。手動での操作は必要ありません。
認証情報の削除
ローカル CLI 設定から EcsRamRole プロファイルを削除するには、次を実行してください:
aliyun configure delete --profile <ProfileName>
このコマンドは、~/.aliyun/config.json からプロファイルを削除するだけです。インスタンスから RAM ロールがデタッチされることはありません。アクセス権を完全に失効させるには、ECS コンソールで RAM ロールをデタッチする必要があります。
よくある質問
インスタンスに RAM ロールがアタッチされているかを確認する方法
インスタンスで次のコマンドを実行して、IMDS に問い合わせてください:
curl http://100.100.100.200/latest/meta-data/ram/security-credentials/
コマンドがロール情報を返した場合、RAM ロールがアタッチされています。空のレスポンスまたは 404 エラーは、RAM ロールがアタッチされていないことを意味します。
認証情報の取得に失敗した場合の対処法
CLI は、デフォルトで IMDSv2 (トークンベースのセキュアなモード) を使用して、インスタンスメタデータサービスから認証情報を取得します。認証情報の取得に失敗した場合、ALIBABA_CLOUD_IMDSV1_DISABLED 環境変数でフォールバック動作を制御できます。
-
false(デフォルト): CLI は IMDSv1 にフォールバックして認証情報を取得します。 -
true: CLI は IMDSv2 のみを使用し、IMDSv2 が失敗した場合はフォールバックせずにエラーを発生させます。