すべてのプロダクト
Search
ドキュメントセンター

Terraform:Terraform の身分認証

最終更新日:Jan 07, 2026

Alibaba Cloud Terraform Provider は、複数の認証方式をサポートしています。適切な方式は、Terraform のランタイム環境とシナリオによって異なります。

認証方式の優先順位

Alibaba Cloud Provider を設定する際、通常は 1 つの認証方式のみを選択します。Terraform Provider は、以下の順序で認証情報を検索し、有効な認証情報が見つかり次第、検索を停止します。

  1. 静的構成:プロバイダーはまず、`provider` ブロックで `access_key`、`secret_key`、`security_token`、または `ecs_role_name` パラメーターが明示的に指定されている場合、それらを読み取ります。

  2. 環境変数:静的構成が見つからない場合、プロバイダーは `ALICLOUD_ACCESS_KEY` や `ALICLOUD_SECRET_KEY` などのシステム環境変数を読み取ります。

  3. 共有設定ファイル

    1. 静的構成:プロバイダーは、ローカルの共有設定ファイルから指定されたプロファイルの認証情報を読み取ります。この情報には、AccessKey ペア、`ram_role_arn`、`ram_role_name`、または `sts_token` が含まれる場合があります。

    2. 高度な構成:共有設定ファイルに静的構成が含まれておらず、CloudSSO、OAuth、外部プログラム、または連鎖可能な RAM ロール (`ChainableRamRoleArn`) が設定されている場合、プロバイダーは対応するプラグインを呼び出して、一時的な Security Token Service (STS) 認証情報を取得します。

  4. URL 認証情報:上記のいずれの方式でも認証情報が提供されない場合、プロバイダーは `credentials_uri` で指定された URL から認証情報を取得しようとします。

セキュリティに関する推奨事項

本番環境のセキュリティを強化するために、一時的な認証情報に依存する以下の認証方式を使用することを推奨します。

  • ECS のインスタンス RAM ロール

  • RAM ロールの引き受け (AssumeRole)

  • OIDC IdP のロールの引き受け

これらの方式には、以下のセキュリティ上の利点があります。

  • 設定ファイルに有効期間の長い AccessKey をハードコーディングしたり、公開したりすることを回避し、キー漏洩のリスクを低減します。

  • 有効期限が固定された認証情報を使用することで、権限の有効期間を制限します。

きめ細かな権限付与のサポート

アプリケーション、チーム、プロジェクトなどのディメンションに基づいてリソースアクセスをきめ細かく制御するには、RAM ロールの偽装OIDC IdP ロールの偽装を使用します。専用のロールとアクセスポリシーを異なる Terraform ワークロードにアタッチすることで、最小権限の原則に従うことができます。

Terraform の認証方式

Alibaba Cloud Terraform Provider は、以下の認証方式を提供しています。

認証方式

手順

ユースケース

静的構成

(access_key)

設定ファイル内で AccessKey (AK) をプレーンテキストで定義するか、パラメーターとして渡します。

  • 開発環境でのテストと検証。

  • CI/CD リソース管理ワークフロー。

環境変数

(ALIBABA_CLOUD_ACCESS_KEY)

環境変数から AccessKey (AK) 情報を読み取ります。

  • 開発環境でのテストと検証。

  • ECS インスタンスなどのスタンドアロンランタイム環境。

ECS のインスタンス RAM ロール

(ecs_role_name)

ECS インスタンスのメタデータから、アタッチされた RAM ロールのアクセス認証情報を取得します。

Terraform が ECS インスタンス上で実行される場合。

OIDC ロールの偽装 (assume_role_with_oidc)

OpenID Connect (OIDC) を通じてロールを引き受けることで、アクセス認証情報を取得します。

Terraform が Alibaba Cloud Container Service for Kubernetes (ACK) などの OIDC をサポートする Kubernetes クラスターで実行される場合。

ロールの引き受け

(assume_role)

RAM ロールを偽装することで、アクセス認証情報を取得します。

  • マルチアカウントのリソース管理。

  • CI/CD リソース管理ワークフロー。

URL 認証情報

(credentials_uri)

一時的な認証情報を取得するための URI を指定します。

API やファイルなどのカスタム認証情報サービスから認証情報を取得する場合。

共有設定ファイル

(profile)

Alibaba Cloud コマンドラインインターフェイス (CLI) を使用して、複数の認証方式を 1 つのファイルに統一して設定します。プロファイル名を指定することで、アクセス認証情報を取得します。サポートされている認証方式は次のとおりです。

  • AK

  • STSToken

  • ECSRamRole

  • CloudSSO

  • ChainableRamRoleArn

  • External

  • OAuth

  • マルチアカウントおよびマルチリージョンのリソース管理。

  • マルチ環境のリソース管理。

静的構成

静的構成とは、Terraform 設定ファイルの provider ブロックにアクセス認証情報を直接定義することです。

パラメーター

パラメーター

説明

値の例

access_key

AccessKey ID。

abcd*******

secret_key

AccessKey Secret。

abcd*******

security_token (任意)

一時的な STS 認証情報のセキュリティトークン。

abcd*******

provider "alicloud" {
  access_key = "<ご利用の AccessKey ID>"
  secret_key = "<ご利用の AccessKey Secret>"
  # STS 認証情報を使用する場合は、security_token を設定します。
  # security_token = "<ご利用の STS トークン>"
}

設定例

セキュリティを強化するために、設定ファイルにプレーンテキストでハードコーディングする代わりに、アクセス認証情報を変数として渡すことができます。変数のデフォルト値は設定しないでください。

variable "access_key_id" {
  description = "インフラストラクチャを操作するための AccessKey ID"
}
variable "access_key_secret" {
  description = "インフラストラクチャを操作するための AccessKey Secret"
}
variable "security_token" {
  description = "インフラストラクチャを操作するためのセキュリティトークン"
}
provider "alicloud" {
  access_key = var.access_key_id
  secret_key = var.access_key_secret
  # STS 認証情報を使用する場合は、security_token を設定します。
  # security_token = var.security_token
}

terraform コマンドを実行する際、-var オプションを使用して変数の値を渡すことができます。

$ terraform plan -var access_key_id="<ご利用の AccessKey ID>" -var access_key_secret="<ご利用の AccessKey Secret>" -var security_token="<ご利用の STS トークン>"

環境変数

アクセス認証情報を環境変数に保存できます。設定ファイルに認証情報が静的に設定されていない場合、Terraform は指定された環境変数からそれらを読み取ります。

パラメーター

パラメーター

説明

値の例

ALICLOUD_ACCESS_KEY

AccessKey ID。

abcd*******

ALICLOUD_SECRET_KEY

AccessKey Secret。

abcd*******

ALICLOUD_SECURITY_TOKEN (任意)

一時的な STS 認証情報のセキュリティトークン。

abcd*******

設定例

Linux/macOS
説明

export コマンドで設定された一時的な環境変数は、現在のシェルセッションでのみ有効です。長期間保持するには、export コマンドを .bash_profile.zshrc などのシェルの起動設定ファイルに追加できます。

# AccessKey ID
$ export ALICLOUD_ACCESS_KEY="<ご利用の AccessKey ID>"
# AccessKey Secret
$ export ALICLOUD_SECRET_KEY="<ご利用の AccessKey Secret>"
# STS 認証情報を使用する場合は、security_token を設定します。
$ export ALICLOUD_SECURITY_TOKEN="<ご利用の STS トークン>"
Windows
  1. デスクトップの [PC] を右クリックし、[プロパティ] > [システムの詳細設定] > [環境変数] を選択します。

  2. [システム環境変数] または [ユーザー環境変数] で、[新規] をクリックして、ALICLOUD_ACCESS_KEYALICLOUD_SECRET_KEY、および ALICLOUD_SECURITY_TOKEN (任意) の環境変数を作成します。

環境変数を設定すると、provider ブロックで認証情報を宣言する必要がなくなります。リージョンなど、他の情報を宣言できます。

provider "alicloud" {
  region = "cn-hangzhou"
}

ALICLOUD_REGION 環境変数を使用してリージョンを設定することもできます。provider ブロックまたは環境変数でリージョンを指定しない場合、デフォルトで cn-beijing (中国 (北京)) が使用されます。

静的構成と比較して、環境変数の使用はより便利で安全です。

ECS のインスタンス RAM ロール

Terraform が ECS インスタンス上で実行される場合、インスタンス RAM ロールを使用して認証を行うことができます。ECS インスタンスに RAM ロールをアタッチすると、Terraform を含むインスタンス上のアプリケーションは、一時的なアクセス認証情報を自動的に取得およびリフレッシュできます。この方式では AccessKey を設定する必要がなくなり、キー漏洩のリスクが低減します。また、RAM ロールを使用してきめ細かい権限コントロールを実装することもできます。詳細については、「インスタンス RAM ロール」をご参照ください。

パラメーター

パラメーター名

説明

値の例

ecs_role_name

ECS インスタンスにアタッチされた RAM ロールの名前。

terraform-ecs-role

設定例

  1. パブリックネットワークアクセスが可能な ECS インスタンスを準備します。

  2. RAM ロールを作成し、ECS インスタンスにアタッチします。

  3. provider ブロックで、ecs_role_name パラメーターを RAM ロールの名前に設定します。

provider "alicloud" {
  ecs_role_name = "<ECS インスタンスにアタッチされた RAM ロールの名前>"
}

環境変数 ALICLOUD_ECS_ROLE_NAME を使用してこのパラメーターを設定することもできます。

ECS のインスタンス RAM ロールを使用した認証は非常に安全です。Terraform を ECS インスタンスで実行する場合は、この方式を推奨します。

OIDC ロールの引き受け

OIDC ロールの偽装は、ロールの偽装 (AssumeRole) と似ています。どちらの方式も、RAM ロールを偽装して一時的な認証情報を取得し、Alibaba Cloud リソースにアクセスします。違いは、OIDC ロールの偽装では、OIDC IdP によって発行された ID を使用する点です。詳細については、「OIDC IdP の管理」をご参照ください。

パラメーター

OIDC ロールの偽装を設定する際、関連するすべてのパラメーターは assume_role_with_oidc ブロックで設定されます。

パラメーター名

説明

値の例

oidc_provider_arn (必須)

ID プロバイダーの ARN。フォーマットは acs:ram::<Alibaba Cloud アカウント ID>:oidc-provider/<RAM プロバイダーロール名> です。この ARN は RAM コンソールまたは API を使用して取得できます。環境変数 ALIBABA_CLOUD_OIDC_PROVIDER_ARN を使用してこのパラメーターを設定することもできます。

acs:ram::151192xxxxxx:oidc-provider/ackrole

oidc_token (任意)

外部 ID プロバイダー (IdP) によって発行された OpenID Connect (OIDC) トークン。oidc_token または oidc_token_file のいずれかを設定する必要があります。このパラメーターは ALIBABA_CLOUD_OIDC_TOKEN 環境変数を使用して設定できます。

eyJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.************

oidc_token_file (任意)

OIDC トークンを保存するファイルの絶対パス。oidc_token または oidc_token_file のいずれかを設定する必要があります。このパラメーターは環境変数 ALIBABA_CLOUD_OIDC_TOKEN_FILE を使用して設定できます。

/var/run/secrets/oidc/token

role_arn (必須)

偽装する RAM ロールの ARN を指定します。フォーマットは acs:ram::<Alibaba Cloud アカウント ID>:role/<RAM ロール名> です。このパラメーターは環境変数 ALIBABA_CLOUD_ROLE_ARN を使用して設定できます。

acs:ram::151192xxxxxx:role/k8srole

policy (任意)

RAM アクセスポリシー。設定した場合、一時的な認証情報の最終的な権限は、このポリシーと role_arn で指定されたロールに関連付けられたアクセスポリシーの共通部分になります。設定しない場合、最終的な権限は role_arn で指定されたロールの権限のみによって決定されます。

{"Version":"1","Statement":[{"Effect":"Allow","Action":"oss:ListBuckets","Resource":"acs:oss:oss-cn-hangzhou:*:*"}]}

role_session_name (任意)

ロールセッションのカスタム名。通常、ロールを偽装するユーザーの ID に設定されます。指定しない場合、デフォルトは terraform です。このパラメーターは環境変数 ALIBABA_CLOUD_ROLE_SESSION_NAME を使用して設定できます。

username

session_expiration (任意)

一時的な認証情報の有効期間 (秒単位)。値は 900 から偽装されるロールの MaxSessionDuration の間でなければなりません。MaxSessionDuration のデフォルト値は 3600 です。ロール情報を更新することで、ロールの最大セッション期間を最大 43,200 秒まで変更できます。

900

設定例

OIDC ロールの偽装認証は、AssumeRoleWithOIDC - OIDC IdP の RAM ロールの一時的な認証情報を取得してロールベース SSO を実現する 操作を呼び出すことで実装されます。この方式を設定する前に、以下の情報を準備してください。

  1. OIDC IdP を作成し、外部 IdP から OIDC トークンを取得し、OIDC IdP の ARN と OIDC トークンを記録します。

  2. ID プロバイダーを信頼できるエンティティとして RAM ロールを作成し、必要な権限 (例:AliyunOSSFullAccess) を付与し、ロールの ARN を記録します。

  3. (任意) カスタム RAM ポリシーを作成できます。例えば、中国 (杭州) リージョンのバケットへのアクセスのみを許可するポリシーなどです。このポリシーは、よりきめ細かいアクセス制御のためにロールの権限と組み合わされます。

準備が完了したら、provider ブロックに以下の設定を追加します。

provider "alicloud" {
  assume_role_with_oidc {
    oidc_provider_arn  = "<OIDC IdP の ARN>"
    oidc_token         = "<外部 IdP が発行した OIDC トークン>"
    role_arn           = "<RAM ロールの ARN>"
    policy             = "<RAM アクセスポリシーの内容>"
    role_session_name  = "<カスタムロールセッション名>"
    session_expiration = <一時的なアクセス認証情報の最大有効期間>
  }
}

ACK では、RAM Roles for Service Accounts (RRSA) 機能を使用して、OIDC IdP を自動的に作成し、OIDC トークンを発行できます。詳細については、「RRSA を使用して異なる Pod が異なるクラウドサービスにアクセスすることを承認する」をご参照ください。RRSA 機能を有効にすると、ack-pod-identity-webhook コンポーネントが自動的に ALIBABA_CLOUD_OIDC_PROVIDER_ARNALIBABA_CLOUD_OIDC_TOKEN_FILE、および ALIBABA_CLOUD_ROLE_ARN 環境変数を Pod に挿入します。この環境で、ACK Pod 内で Terraform を実行する場合、上記の例は次のように簡略化できます。

provider "alicloud" {
  region = "cn-hangzhou"
  assume_role_with_oidc {
    policy             = <<EOF
    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "oss:ListBuckets",
          "Resource": "acs:oss:oss-cn-hangzhou:*:*"
        }
      ]
    }
    EOF
    session_name = "terraform-assume-role-session"
    session_expiration = 1000
  }
}

policy パラメーターを使用してきめ細かい権限付与を行う必要がない場合は、必要な権限を直接 RAM ロールに付与できます。この場合、設定はさらに簡略化できます。

provider "alicloud" {
  region = "cn-hangzhou"
  assume_role_with_oidc {
    session_name = "terraform-assume-role-session"
    session_expiration = 1000
  }
}

ロールの引き受け

ロールの偽装 (AssumeRole) は、RAM ユーザーや ECS インスタンスロールなどの ID から権限を分離する必要がある場合や、アカウントをまたいでリソースにアクセスする必要があるシナリオに適しています。この方式では、RAM ユーザーなどの既存の ID が別の RAM ロールを偽装し、そのロールの一時的な認証情報を取得してリソースにアクセスできます。

パラメーター

ロールの偽装を設定する際、以下のパラメーターがサポートされています。

  1. access_key と secret_key:ロールを偽装する RAM ユーザーの AccessKey を指定します。ユーザーは sts:AssumeRole 権限を持っている必要があります。これらのパラメーターは環境変数を使用して設定することもできます。

  2. assume_role:以下のパラメーターを含む設定ブロックです。

パラメーター

説明

値の例

role_arn (必須)

偽装する RAM ロールの ARN。フォーマットは `acs:ram::1234567890123456:role/<RAM ロール名> です。

acs:ram::151192xxxxxx:role/k8srole

policy (任意)

RAM アクセスポリシー。このパラメーターが設定されている場合、一時的な認証情報の最終的な権限は、このポリシーと role_arn で指定されたロールに関連付けられたアクセスポリシーの共通部分になります。このパラメーターが設定されていない場合、最終的な権限は role_arn で指定されたロールの権限のみによって決定されます。

{"Version":"1","Statement":[{"Effect":"Allow","Action":"oss:ListBuckets","Resource":"acs:oss:oss-cn-hangzhou:*:*"}]}

session_name (任意)

カスタムロールセッション名。この名前は、監査ログでオペレーターを区別するために使用されます。このパラメーターが設定されていない場合、デフォルトは terraform です。

terraform

session_expiration (任意)

一時的な認証情報の有効期間 (秒単位)。値は 900 から偽装されるロールの MaxSessionDuration の範囲で指定できます。デフォルト値は 3600 です。ロールの最大セッション期間は最大 43200 秒まで変更できます。詳細については、「ロール情報の更新」をご参照ください。

3600

external_Id (任意)

ロールの外部 ID。「混乱した代理」問題を防止するために使用されます。詳細については、「外部 ID を使用して混乱した代理問題を防止する」をご参照ください。

ID

設定例

ロールの偽装認証は、AssumeRole - RAM ロールの一時的な認証情報を取得する 操作を呼び出すことで実装されます。この方式を設定する前に、以下を準備してください。

  1. RAM ユーザーを作成し、AliyunSTSAssumeRoleAccess ポリシー (または sts:AssumeRole 権限を含むカスタムポリシー) を付与します。

  2. RAM ユーザー用の AccessKey を作成します。

  3. 信頼できるエンティティが Alibaba Cloud アカウントである RAM ロールを作成し、必要な権限 (例:AliyunOSSFullAccess) を付与し、その ARN を記録します。

  4. (任意) カスタム RAM ポリシーを作成できます。このポリシーは、よりきめ細かいアクセス制御のためにロールの権限と組み合わされます。

準備が完了したら、provider ブロックを次のように設定します。

provider "alicloud" {
  # AssumeRole を呼び出す RAM ユーザーの AccessKey ID。
  access_key = "<RAM ユーザーの AccessKey ID>"
  # AssumeRole を呼び出す RAM ユーザーの AccessKey Secret。
  secret_key = "<RAM ユーザーの AccessKey Secret>"
  assume_role {
    role_arn           = "<RAM ロールの ARN>"
    policy             = "<RAM アクセスポリシーの内容>"
    session_name       = "<カスタムロールセッション名>"
    session_expiration = <一時的なアクセス認証情報の最大有効期間>
  }
}

次の例は、ロールの偽装を使用して杭州リージョンの OSS バケットを一覧表示する権限を取得する方法を示しています。セキュリティのため、例の access_keysecret_key は環境変数として設定され、コード内にプレーンテキストで記述されていません。

provider "alicloud" {
  # セキュリティのため、ここでの access_key と secret_key は環境変数として設定されます。
  region = "cn-hangzhou"
  assume_role {
    role_arn           = "acs:ram::11827xxxxxx:role/tf-assume-role"
    policy             = <<EOF
    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "oss:ListBuckets",
          "Resource": "acs:oss:oss-cn-hangzhou:*:*"
        }
      ]
    }
    EOF
    session_name       = "terraform-assume-role-session"
    session_expiration = 1000
  }
}
説明

この例を実行する前に、tf-assume-role ロールに AliyunOSSFullAccess 権限が付与されていることを確認してください。そうでない場合、権限不足により OSS バケットへのアクセスが失敗します。

Terraform を ECS インスタンスで実行する場合、ECS インスタンスの RAM ロールを使用して AccessKey のハードコーディングを回避できます。この場合、ECS インスタンスにアタッチされた RAM ロールに AliyunSTSAssumeRoleAccess ポリシーを付与するだけで済みます。次のコードは設定例です。

provider "alicloud" {
  ecs_role_name = "<ECS インスタンスにアタッチされた RAM ロールの名前>"
  region        = "cn-hangzhou"
  assume_role {
    role_arn           = "acs:ram::11827xxxxxx:role/tf-assume-role"
    policy             = <<EOF
    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "oss:ListBuckets",
          "Resource": "acs:oss:oss-cn-hangzhou:*:*"
        }
      ]
    }
    EOF
    session_name       = "terraform-assume-role-session"
    session_expiration = 1000
  }
}

URL 認証情報

指定された URI にアクセスして認証情報を取得します。

パラメーター

パラメーター

説明

値の例

credentials_url

認証情報を取得するためのローカルまたはリモートの URI。URI が HTTP 200 状態コードを返さない場合、または返されたコンテンツのフォーマットが正しくない場合、認証は失敗します。

http://credentials.uri/

region

デフォルトのリージョンとゾーン

一部のクラウドプロダクトはクロスリージョンアクセスをサポートしていません。デフォルトのリージョンをリソースが配置されているリージョンに設定することを推奨します。

cn-hangzhou

設定例

provider "alicloud" {
  region = "cn-hangzhou"
  credentials_url= "http://credentials.uri/"
}

共有設定ファイル

Terraform は、共有設定ファイルからのアクセス認証情報の使用をサポートしています。共有設定ファイルは、Alibaba Cloud コマンドラインインターフェイス (CLI) によって生成される config.json ファイルです。静的 AccessKey、ECS ロール、ロールの偽装など、複数の種類の認証情報を 1 つのファイルに設定し、profile 名を使用して参照できます。設定方法の詳細については、「認証情報の設定」をご参照ください。

共有設定ファイルのデフォルトパスは次のとおりです。

  • Linux/macOS: ~/.aliyun/config.json

  • Windows: C:\Users\USER_NAME\.aliyun\config.json

設定例

Terraform の provider 設定では、profile パラメーターを使用して使用する認証情報設定の名前を指定できます。設定ファイルがデフォルトパスにない場合は、shared_credentials_file パラメーターを使用して設定ファイルの絶対パスを指定できます。次のコードは設定例です。

provider "alicloud" {
  region                  = "cn-hangzhou"
  shared_credentials_file = "~/.aliyun/config.json"
  profile                 = "TerraformTest"
}

以下は config.json ファイルの例です。

{
    "current": "<PROFILE_NAME>",
    "profiles": [
        {
            "name": "<PROFILE_NAME>",
            "mode": "AK",
            "access_key_id": "<ALIBABA_CLOUD_ACCESS_KEY_ID>",
            "access_key_secret": "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>"
        },
        {
            "name": "<PROFILE_NAME1>",
            "mode": "StsToken",
            "access_key_id": "<ALIBABA_CLOUD_ACCESS_KEY_ID>",
            "access_key_secret": "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>",
            "sts_token": "<SECURITY_TOKEN>"
        },
        {
            "name": "<PROFILE_NAME2>",
            "mode": "RamRoleArn",
            "access_key_id": "<ALIBABA_CLOUD_ACCESS_KEY_ID>",
            "access_key_secret": "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>",
            "ram_role_arn": "<ROLE_ARN>",
            "ram_session_name": "<ROLE_SESSION_NAME>",
            "expired_seconds": 3600
        },
        {
            "name": "<PROFILE_NAME3>",
            "mode": "EcsRamRole",
            "ram_role_name": "<RAM_ROLE_ARN>"
        },
        {
            "name": "<PROFILE_NAME4>",
            "mode": "External",
            "process_command": "<YOUR_COMMAND>",
            "region_id": "<REGION_ID>",
            "output_format": "json",
            "language": "en"
        },
        {
            "name": "<PROFILE_NAME5>",
            "mode": "OIDC",
            "oidc_provider_arn": "<OIDC_PROVIDER_ARN>",
            "oidc_token_file": "<OIDC_TOKEN_FILE>",
            "ram_role_arn": "<ROLE_ARN>",
            "ram_session_name": "<ROLE_SESSION_NAME>",
            "expired_seconds": 3600
        },
        {
            "name": "<PROFILE_NAME6>",
            "mode": "ChainableRamRoleArn",
            "source_profile": "<PROFILE_NAME>",
            "ram_role_arn": "<ROLE_ARN>",
            "ram_session_name": "<ROLE_SESSION_NAME>",
            "expired_seconds": 3600
        },
        {
            "name": "<PROFILE_NAME7>",
            "mode": "CloudSSO",
            "cloud_sso_sign_in_url": "https://******/login",
            "access_token": "eyJraWQiOiJiYzViMzUwYy******",
            "cloud_sso_access_token_expire": 1754316142,
            "cloud_sso_access_config": "ac-00s1******",
            "cloud_sso_account_id": "151266******"
        },
        {
            "name": "<PROFILE_NAME8>",
            "mode": "OAuth",
            "access_key_id": "<ALIBABA_CLOUD_ACCESS_KEY_ID>",
            "access_key_secret": "<ALIBABA_CLOUD_ACCESS_KEY_SECRET>",
            "sts_token": "<SECURITY_TOKEN>",
            "region_id": "<REGION_ID>",
            "output_format": "json",
            "language": "<zh|en>",
            "sts_expiration": "<STS_EXPIRATION>",
            "oauth_access_token": "<OAUTH_ACCESS_TOKEN>",
            "oauth_refresh_token": "<OAUTH_REFRESH_TOKEN>",
            "oauth_access_token_expire": 1754316142,
            "oauth_site_type": "<CN|EN>"
        }
    ]
}

config.json ファイルでは、mode パラメーターを使用してさまざまな認証情報の種類を指定できます。

  • AK:ユーザーの AccessKey を認証情報として使用します。

  • StsToken:STS トークンを認証情報として使用します。

  • RamRoleArn:RAM ロールの ARN を使用して認証情報を取得します。

  • EcsRamRole:ECS インスタンスにアタッチされた RAM ロールを使用して認証情報を取得します。

  • External:外部プログラムのコマンドを実行して動的に認証情報を取得します。

  • OIDC:OIDC IdP の ARN と OIDC トークンを使用して認証情報を取得します。

  • ChainableRamRoleArn:ロールチェーンを使用します。config.json ファイル内の別の認証情報の名前を source_profile で指定して、新しい認証情報を取得します。

  • OAuth:OAuth を使用して CLI にログインして取得した認証情報。

  • CloudSSO:CloudSSO ユーザーが Alibaba Cloud CLI を使用して取得した認証情報。