全部产品
Search
文档中心

Terraform:Otentikasi Identitas Terraform

更新时间:Jan 07, 2026

Penyedia Alibaba Cloud Terraform mendukung berbagai metode otentikasi. Metode yang tepat tergantung pada lingkungan runtime dan skenario Terraform Anda.

Prioritas metode otentikasi

Saat mengonfigurasi penyedia Alibaba Cloud, biasanya hanya satu metode otentikasi yang digunakan. Penyedia Terraform mencari kredensial identitas dalam urutan berikut dan berhenti begitu menemukan kredensial yang valid:

  1. Konfigurasi statis: Penyedia pertama kali membaca parameter access_key, secret_key, security_token, atau ecs_role_name jika secara eksplisit ditentukan dalam blok penyedia.

  2. Variabel lingkungan: Jika tidak ditemukan konfigurasi statis, penyedia membaca variabel lingkungan sistem, seperti ALICLOUD_ACCESS_KEY dan ALICLOUD_SECRET_KEY.

  3. Berkas konfigurasi bersama:

    1. Konfigurasi statis: Penyedia membaca informasi otentikasi untuk profil yang ditentukan dari berkas konfigurasi bersama lokal. Informasi ini dapat mencakup pasangan AccessKey, ram_role_arn, ram_role_name, atau sts_token.

    2. Konfigurasi lanjutan: Jika berkas konfigurasi bersama tidak berisi konfigurasi statis tetapi dikonfigurasi dengan CloudSSO, OAuth, program eksternal, atau ChainableRamRoleArn, penyedia memanggil plugin yang sesuai untuk memperoleh kredensial sementara dari Layanan Token Keamanan (STS).

  4. Kredensial URL: Jika metode di atas tidak menyediakan kredensial, penyedia mencoba mengambil kredensial dari URL yang ditentukan oleh credentials_uri.

Rekomendasi keamanan

Untuk meningkatkan keamanan di lingkungan produksi, gunakan metode otentikasi berikut yang mengandalkan kredensial sementara:

  • Peran RAM instans untuk ECS

  • Asumsi peran RAM (AssumeRole)

  • Asumsi peran melalui OIDC IdP

Metode-metode ini memberikan keuntungan keamanan sebagai berikut:

  • Menghindari hardcoding atau mengekspos AccessKey jangka panjang dalam konfigurasi Anda untuk mengurangi risiko kompromi kunci.

  • Membatasi durasi izin menggunakan kredensial dengan periode kedaluwarsa tetap.

Dukungan otorisasi detail halus

Untuk kontrol akses resource secara detail halus berdasarkan dimensi seperti aplikasi, tim, atau proyek, gunakan asumsi peran RAM dan asumsi peran OIDC IdP. Anda dapat menyambungkan peran dan kebijakan akses khusus ke beban kerja Terraform yang berbeda untuk menerapkan prinsip hak istimewa minimal.

Metode otentikasi Terraform

Penyedia Alibaba Cloud Terraform menyediakan metode otentikasi berikut:

Metode Otentikasi

Petunjuk

Kasus Penggunaan

Konfigurasi statis

(access_key)

Menentukan AccessKey (AK) dalam teks biasa di berkas konfigurasi, atau meneruskannya sebagai parameter.

  • Pengujian dan verifikasi di lingkungan pengembangan.

  • Alur kerja manajemen resource CI/CD.

Variabel lingkungan

(ALIBABA_CLOUD_ACCESS_KEY)

Membaca informasi AccessKey (AK) dari variabel lingkungan.

  • Pengujian dan verifikasi di lingkungan pengembangan.

  • Lingkungan runtime mandiri, seperti instans ECS.

Peran RAM instans untuk ECS

(ecs_role_name)

Memperoleh kredensial akses untuk peran RAM yang dilampirkan dari metadata instans ECS.

Terraform dijalankan pada instans ECS.

Asumsi peran OIDC (assume_role_with_oidc)

Memperoleh kredensial akses dengan mengasumsikan peran melalui OpenID Connect (OIDC).

Terraform dijalankan di kluster Kubernetes yang mendukung OIDC, seperti Alibaba Cloud ACK.

Asumsi peran

(assume_role)

Memperoleh kredensial akses dengan mengasumsikan peran RAM.

  • Manajemen resource multi-akun.

  • Alur kerja manajemen resource CI/CD.

Kredensial URL

(credentials_uri)

Menentukan URI untuk memperoleh kredensial sementara.

Memperoleh kredensial dari layanan kredensial kustom, seperti API atau file.

Berkas konfigurasi bersama

(profile)

Mengonfigurasi berbagai metode otentikasi dalam satu berkas terpadu menggunakan Antarmuka Baris Perintah (CLI) Alibaba Cloud. Memperoleh kredensial akses dengan menentukan nama profil. Metode otentikasi yang didukung meliputi:

  • AK

  • STSToken

  • ECSRamRole

  • CloudSSO

  • ChainableRamRoleArn

  • External

  • OAuth

  • Manajemen resource multi-akun dan multi-wilayah.

  • Manajemen resource multi-lingkungan.

Konfigurasi statis

Konfigurasi statis mengacu pada penentuan kredensial akses secara langsung dalam blok provider berkas konfigurasi Terraform.

Parameter

Parameter

Deskripsi

Contoh nilai

access_key

ID AccessKey.

abcd*******

secret_key

Rahasia AccessKey.

abcd*******

security_token (Opsional)

Token keamanan kredensial STS sementara.

abcd*******

provider "alicloud" {
  access_key = "<Your AccessKey ID>"
  secret_key = "<Your AccessKey secret>"
  # If you use an STS credential, configure security_token.
  # security_token = "<Your STS token>"
}

Contoh konfigurasi

Untuk meningkatkan keamanan, Anda dapat meneruskan kredensial akses sebagai variabel alih-alih melakukan hardcoding dalam teks biasa di berkas konfigurasi. Jangan menetapkan nilai default untuk variabel tersebut:

variable "access_key_id" {
  description = "The AccessKey ID for operating your infrastructure"
}
variable "access_key_secret" {
  description = "The AccessKey Secret for operating your infrastructure"
}
variable "security_token" {
  description = "The Security Token for operating your infrastructure"
}
provider "alicloud" {
  access_key = var.access_key_id
  secret_key = var.access_key_secret
  # If you use an STS credential, configure security_token.
  # security_token = var.security_token
}

Saat menjalankan perintah terraform, Anda dapat menggunakan opsi -var untuk meneruskan nilai variabel:

$ terraform plan -var access_key_id="<Your AccessKey ID>" -var access_key_secret="<Your AccessKey secret>" -var security_token="<Your STS token>"

Variabel lingkungan

Anda dapat menyimpan kredensial akses dalam variabel lingkungan. Jika kredensial tidak dikonfigurasi secara statis dalam berkas konfigurasi, Terraform membacanya dari variabel lingkungan yang ditentukan.

Parameter

Parameter

Deskripsi

Contoh nilai

ALICLOUD_ACCESS_KEY

ID AccessKey.

abcd*******

ALICLOUD_SECRET_KEY

Rahasia AccessKey.

abcd*******

ALICLOUD_SECURITY_TOKEN (Opsional)

Token keamanan kredensial STS sementara.

abcd*******

Contoh konfigurasi

Linux/macOS
Catatan

Variabel lingkungan sementara yang dikonfigurasi dengan perintah export hanya berlaku untuk sesi shell saat ini. Untuk penyimpanan jangka panjang, Anda dapat menambahkan perintah export ke berkas konfigurasi startup shell, seperti .bash_profile atau .zshrc.

# AccessKey ID
$ export ALICLOUD_ACCESS_KEY="<Your AccessKey ID>"
# AccessKey Secret
$ export ALICLOUD_SECRET_KEY="<Your AccessKey secret>"
# If you use an STS credential, configure security_token.
$ export ALICLOUD_SECURITY_TOKEN="<Your STS token>"
Windows
  1. Klik kanan This PC di desktop Anda dan pilih Properties > Advanced system settings > Environment Variables.

  2. Di bawah System variables atau User variables, klik New untuk membuat variabel lingkungan berikut: ALICLOUD_ACCESS_KEY, ALICLOUD_SECRET_KEY, dan ALICLOUD_SECURITY_TOKEN (opsional).

Setelah menyetel variabel lingkungan, Anda tidak perlu mendeklarasikan kredensial dalam blok provider. Anda dapat mendeklarasikan informasi lainnya, seperti wilayah:

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

Anda juga dapat mengonfigurasi wilayah menggunakan variabel lingkungan ALICLOUD_REGION. Jika Anda tidak menentukan wilayah dalam blok provider atau variabel lingkungan, cn-beijing digunakan secara default.

Dibandingkan dengan konfigurasi statis, penggunaan variabel lingkungan lebih nyaman dan aman.

Peran RAM instans untuk ECS

Saat Terraform dijalankan pada instans ECS, Anda dapat menggunakan peran RAM instans untuk otentikasi. Jika Anda melampirkan peran RAM ke instans ECS, aplikasi pada instans tersebut, termasuk Terraform, dapat secara otomatis memperoleh dan memperbarui kredensial akses sementara. Metode ini menghilangkan kebutuhan untuk mengonfigurasi AccessKey, sehingga mengurangi risiko kebocoran kunci. Anda juga dapat menerapkan kontrol izin detail halus menggunakan peran RAM tersebut. Untuk informasi selengkapnya, lihat Peran RAM Instans.

Parameter

Nama Parameter

Deskripsi

Contoh nilai

ecs_role_name

Nama peran RAM yang dilampirkan ke instans ECS.

terraform-ecs-role

Contoh konfigurasi

  1. Siapkan instans ECS yang memiliki akses jaringan publik.

  2. Buat peran RAM dan lampirkan ke instans ECS.

  3. Dalam blok provider, atur parameter ecs_role_name ke nama peran RAM tersebut:

provider "alicloud" {
  ecs_role_name = "<Name of the RAM role attached to the ECS instance>"
}

Anda juga dapat menggunakan variabel lingkungan ALICLOUD_ECS_ROLE_NAME untuk mengatur parameter ini.

Otentikasi menggunakan peran RAM instans untuk ECS sangat aman. Kami merekomendasikan metode ini saat Anda menjalankan Terraform pada instans ECS.

Asumsi peran OIDC

Asumsi peran OIDC mirip dengan asumsi peran (AssumeRole). Kedua metode memperoleh kredensial sementara dengan mengasumsikan peran RAM untuk mengakses resource Alibaba Cloud. Perbedaannya adalah asumsi peran OIDC menggunakan identitas yang dikeluarkan oleh OIDC IdP. Untuk informasi selengkapnya, lihat Mengelola OIDC IdP.

Parameter

Saat Anda mengonfigurasi asumsi peran OIDC, semua parameter terkait diatur dalam blok assume_role_with_oidc:

Nama Parameter

Deskripsi

Contoh nilai

oidc_provider_arn (Wajib)

ARN penyedia identitas, dalam format: acs:ram::<ID akun Alibaba Cloud>:oidc-provider/<nama peran penyedia RAM>. Anda dapat memperoleh ARN ini dari Konsol RAM atau menggunakan API. Anda juga dapat mengatur parameter ini menggunakan variabel lingkungan ALIBABA_CLOUD_OIDC_PROVIDER_ARN.

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

oidc_token (Opsional)

Token OpenID Connect (OIDC) yang dikeluarkan oleh Penyedia Identitas (IdP) eksternal. Anda harus mengatur salah satu dari oidc_token atau oidc_token_file. Anda dapat mengatur parameter ini menggunakan variabel lingkungan ALIBABA_CLOUD_OIDC_TOKEN.

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

oidc_token_file (Opsional)

Jalur mutlak file yang menyimpan token OIDC. Anda harus mengatur salah satu dari oidc_token atau oidc_token_file. Parameter ini dapat diatur menggunakan variabel lingkungan ALIBABA_CLOUD_OIDC_TOKEN_FILE.

/var/run/secrets/oidc/token

role_arn (Wajib)

Menentukan ARN peran RAM yang akan diasumsikan, dalam format acs:ram::<ID akun Alibaba Cloud>:role/<nama peran RAM>. Anda dapat mengatur parameter ini menggunakan variabel lingkungan ALIBABA_CLOUD_ROLE_ARN.

acs:ram::151192xxxxxx:role/k8srole

policy (Opsional)

Kebijakan akses RAM. Jika diatur, izin akhir untuk kredensial sementara merupakan irisan antara kebijakan ini dan kebijakan akses yang terkait dengan peran yang ditentukan oleh role_arn. Jika tidak diatur, izin akhir ditentukan semata-mata oleh izin peran yang ditentukan oleh role_arn.

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

role_session_name (Opsional)

Nama kustom untuk sesi peran, yang biasanya diatur ke identitas pengguna yang mengasumsikan peran tersebut. Jika tidak ditentukan, nilai default-nya adalah terraform. Parameter ini dapat diatur menggunakan variabel lingkungan ALIBABA_CLOUD_ROLE_SESSION_NAME.

username

session_expiration (Opsional)

Periode validitas kredensial sementara, dalam detik. Nilainya harus antara 900 dan MaxSessionDuration dari peran yang diasumsikan. Nilai default untuk MaxSessionDuration adalah 3600. Anda dapat mengubah durasi sesi maksimum peran hingga 43.200 detik dengan memperbarui informasi peran.

900

Contoh konfigurasi

Otentikasi asumsi peran OIDC diimplementasikan dengan memanggil operasi AssumeRoleWithOIDC - Memperoleh kredensial sementara untuk peran RAM dari OIDC IdP untuk SSO berbasis peran. Sebelum mengonfigurasi metode ini, siapkan informasi berikut:

  1. Buat OIDC IdP, peroleh token OIDC dari IdP eksternal, dan catat ARN OIDC IdP serta token OIDC tersebut.

  2. Buat peran RAM dengan penyedia identitas sebagai entitas tepercaya, berikan peran tersebut izin yang diperlukan (seperti AliyunOSSFullAccess), dan catat ARN peran tersebut.

  3. (Opsional) Anda dapat menulis kebijakan RAM kustom, misalnya yang hanya mengizinkan akses ke bucket di wilayah Tiongkok (Hangzhou). Kebijakan ini digabungkan dengan izin peran untuk kontrol akses yang lebih detail halus.

Setelah persiapan selesai, tambahkan konfigurasi berikut dalam blok provider:

provider "alicloud" {
  assume_role_with_oidc {
    oidc_provider_arn  = "<ARN of the OIDC IdP>"
    oidc_token         = "<OIDC token issued by the external IdP>"
    role_arn           = "<ARN of the RAM role>"
    policy             = "<Content of the RAM access policy>"
    role_session_name  = "<Custom role session name>"
    session_expiration = <Maximum validity period of the temporary access credential>
  }
}

Alibaba Cloud Container Service for Kubernetes (ACK) memungkinkan Anda menggunakan fitur RAM Roles for Service Accounts (RRSA) untuk secara otomatis membuat OIDC IdP dan mengeluarkan token OIDC. Untuk informasi selengkapnya, lihat Gunakan RRSA untuk mengotorisasi pod berbeda mengakses layanan cloud berbeda. Setelah Anda mengaktifkan fitur RRSA, komponen ack-pod-identity-webhook secara otomatis menyuntikkan variabel lingkungan ALIBABA_CLOUD_OIDC_PROVIDER_ARN, ALIBABA_CLOUD_OIDC_TOKEN_FILE, dan ALIBABA_CLOUD_ROLE_ARN ke dalam pod. Di lingkungan ini, jika Anda menjalankan Terraform dalam pod ACK, contoh di atas dapat disederhanakan sebagai berikut:

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
  }
}

Jika Anda tidak perlu menggunakan parameter policy untuk otorisasi detail halus, Anda dapat langsung memberikan izin yang diperlukan kepada peran RAM. Dalam kasus ini, konfigurasi dapat lebih disederhanakan:

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

Asumsi peran

Asumsi peran (AssumeRole) cocok untuk skenario di mana Anda perlu memisahkan izin dari identitas, seperti pengguna RAM atau peran instans ECS, atau saat Anda perlu mengakses resource lintas akun. Metode ini memungkinkan identitas yang ada, seperti pengguna RAM, untuk mengasumsikan peran RAM lain dan memperoleh kredensial sementara peran tersebut untuk mengakses resource.

Parameter

Saat Anda mengonfigurasi asumsi peran, parameter berikut didukung:

  1. access_key dan secret_key: Menentukan AccessKey pengguna RAM yang mengasumsikan peran tersebut. Pengguna harus memiliki izin sts:AssumeRole. Anda juga dapat mengatur parameter ini menggunakan variabel lingkungan.

  2. assume_role: Blok konfigurasi yang mencakup parameter berikut:

Parameter

Deskripsi

Contoh nilai

role_arn (Wajib)

ARN peran RAM yang akan diasumsikan. Formatnya adalah `acs:ram::1234567890123456:role/<nama peran RAM>.

acs:ram::151192xxxxxx:role/k8srole

policy (Opsional)

Kebijakan akses RAM. Jika parameter ini diatur, izin akhir kredensial sementara merupakan irisan antara kebijakan ini dan kebijakan akses yang terkait dengan peran yang ditentukan oleh role_arn. Jika parameter ini tidak diatur, izin akhir ditentukan semata-mata oleh izin peran yang ditentukan oleh role_arn.

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

session_name (Opsional)

Nama sesi peran kustom. Nama ini digunakan untuk membedakan operator dalam log audit. Jika parameter ini tidak diatur, nilai default-nya adalah terraform.

terraform

session_expiration (Opsional)

Periode validitas kredensial sementara, dalam detik. Nilainya berkisar antara 900 hingga MaxSessionDuration dari peran yang diasumsikan. Nilai default-nya adalah 3600. Anda dapat mengubah durasi sesi maksimum peran hingga 43200 detik. Untuk informasi selengkapnya, lihat Perbarui informasi peran.

3600

external_Id (Opsional)

ID eksternal untuk peran, digunakan untuk mencegah masalah "confused deputy". Untuk informasi selengkapnya, lihat Gunakan ID eksternal untuk mencegah masalah confused deputy.

ID

Contoh konfigurasi

Otentikasi asumsi peran diimplementasikan dengan memanggil operasi AssumeRole - Memperoleh kredensial sementara untuk peran RAM. Sebelum mengonfigurasi metode ini, siapkan hal berikut:

  1. Buat pengguna RAM dan berikan kebijakan AliyunSTSAssumeRoleAccess (atau kebijakan kustom yang berisi izin sts:AssumeRole).

  2. Buat AccessKey untuk pengguna RAM tersebut.

  3. Buat peran RAM yang entitas tepercayanya adalah akun Alibaba Cloud, berikan izin yang diperlukan (seperti AliyunOSSFullAccess), dan catat ARN-nya.

  4. (Opsional) Anda dapat menulis kebijakan RAM kustom. Kebijakan ini digabungkan dengan izin peran untuk kontrol akses yang lebih detail halus.

Setelah persiapan selesai, konfigurasikan blok provider sebagai berikut:

provider "alicloud" {
  # The AccessKey ID of the RAM user that calls AssumeRole.
  access_key = "<AccessKey ID of the RAM user>"
  # The AccessKey secret of the RAM user that calls AssumeRole.
  secret_key = "<AccessKey secret of the RAM user>"
  assume_role {
    role_arn           = "<ARN of a RAM role>"
    policy             = "<Content of a RAM access policy>"
    session_name       = "<Custom role session name>"
    session_expiration = <Maximum validity period of the temporary access credential>
  }
}

Contoh berikut menunjukkan cara memperoleh izin untuk mencantumkan bucket OSS di wilayah Hangzhou menggunakan asumsi peran. Untuk keamanan, access_key dan secret_key dalam contoh diatur menggunakan variabel lingkungan dan tidak ditulis dalam teks biasa di kode:

provider "alicloud" {
  # For security, the access_key and secret_key here are set as environment variables.
  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
  }
}
Catatan

Sebelum menjalankan contoh ini, pastikan peran tf-assume-role telah diberikan izin AliyunOSSFullAccess. Jika tidak, akses ke bucket OSS gagal karena izin tidak mencukupi.

Jika Anda menjalankan Terraform pada instans ECS, Anda dapat menggunakan peran RAM instans ECS untuk menghindari hardcoding AccessKey. Dalam kasus ini, Anda hanya perlu memberikan kebijakan AliyunSTSAssumeRoleAccess kepada peran RAM yang dilampirkan ke instans ECS. Kode berikut memberikan contoh:

provider "alicloud" {
  ecs_role_name = "<Name of the RAM role attached to the ECS instance>"
  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
  }
}

Kredensial URL

Memperoleh kredensial dengan mengakses URI yang ditentukan.

Parameter

Parameter

Deskripsi

Contoh nilai

credentials_url

URI lokal atau remote untuk memperoleh kredensial. Jika URI tidak mengembalikan kode status HTTP 200 atau jika konten yang dikembalikan diformat secara salah, otentikasi gagal.

http://credentials.uri/

region

Default wilayah dan zona.

Beberapa produk cloud tidak mendukung akses cross-region. Kami merekomendasikan menyetel wilayah default ke wilayah tempat resource Anda berada.

cn-hangzhou

Contoh konfigurasi

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

Berkas konfigurasi bersama

Terraform mendukung penggunaan kredensial akses dari berkas konfigurasi bersama. Berkas konfigurasi bersama adalah berkas config.json yang dihasilkan oleh Antarmuka Baris Perintah (CLI) Alibaba Cloud. Anda dapat mengonfigurasi berbagai jenis informasi kredensial, seperti AccessKey statis, peran ECS, dan asumsi peran, dalam satu berkas dan mereferensinya menggunakan nama profile. Untuk informasi selengkapnya tentang metode konfigurasi, lihat Konfigurasi Kredensial.

Jalur default untuk berkas konfigurasi bersama adalah sebagai berikut:

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

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

Contoh konfigurasi

Dalam konfigurasi provider Terraform, Anda dapat menggunakan parameter profile untuk menentukan nama konfigurasi kredensial yang akan digunakan. Jika berkas konfigurasi tidak berada di jalur default, Anda dapat menggunakan parameter shared_credentials_file untuk menentukan jalur mutlak berkas konfigurasi. Kode berikut memberikan contoh konfigurasi:

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

Berikut adalah contoh berkas 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>"
        }
    ]
}

Dalam berkas config.json, Anda dapat menggunakan parameter mode untuk menentukan jenis kredensial yang berbeda:

  • AK: Menggunakan AccessKey pengguna sebagai kredensial.

  • StsToken: Menggunakan token STS sebagai kredensial.

  • RamRoleArn: Memperoleh kredensial menggunakan ARN peran RAM.

  • EcsRamRole: Memperoleh kredensial menggunakan peran RAM yang dilampirkan ke instans ECS.

  • External: Secara dinamis memperoleh kredensial dengan menjalankan perintah program eksternal.

  • OIDC: Memperoleh kredensial menggunakan ARN OIDC IdP dan token OIDC.

  • ChainableRamRoleArn: Menggunakan rantai peran. Menentukan nama kredensial lain dalam berkas config.json menggunakan source_profile untuk memperoleh kredensial baru.

  • OAuth: Kredensial yang diperoleh dengan masuk ke CLI menggunakan OAuth.

  • CloudSSO: Kredensial yang diperoleh oleh pengguna CloudSSO menggunakan CLI Alibaba Cloud.