All Products
Search
Document Center

Key Management Service:CreateSecret

Last Updated:Dec 21, 2025

Membuat secret dan menyimpan versi awalnya.

Deskripsi operasi

  • Untuk informasi mengenai kebijakan akses yang diperlukan agar Pengguna Resource Access Management (RAM) atau Peran RAM dapat memanggil operasi ini, lihat Resource Access Management.

  • Tentukan nama secret, nilai secret untuk versi awal, dan nomor versi. Versi awal ditandai dengan label tahap ACSCurrent.

  • Key Management Service (KMS) menggunakan kunci yang Anda tentukan untuk mengenkripsi nilai secret. Kunci dan secret harus berada dalam instans KMS yang sama, serta kunci tersebut harus berupa kunci simetris.

    Catatan

    KMS mengenkripsi nilai secret setiap versi. Metadata seperti nama secret, nomor versi, dan label tahap versi tidak dienkripsi.

  • Sebelum mengenkripsi nilai secret, Anda harus memiliki izin kms:GenerateDataKey pada kunci tersebut.

Topik ini memberikan contoh cara membuat secret RDS. Secret tersebut diberi nama mydbconninfo. VersionId dari versi awal adalah v1. SecretData adalah {"Accounts":[{"AccountName":"user1","AccountPassword":"****"}]}.

Coba sekarang

Coba API ini di OpenAPI Explorer tanpa perlu penandatanganan manual. Panggilan yang berhasil akan secara otomatis menghasilkan contoh kode SDK sesuai dengan parameter Anda. Unduh kode tersebut dengan kredensial bawaan yang aman untuk penggunaan lokal.

Test

RAM authorization

Tidak ada otorisasi untuk operasi ini. Jika Anda mengalami masalah saat menjalankan operasi ini, hubungi dukungan teknis.

Parameter permintaan

Parameter

Type

Required

Description

Example

SecretName

string

Yes

Nama secret. Nama tersebut harus unik dalam wilayah yang sama. Nama dapat terdiri hingga 192 karakter dan boleh mengandung huruf, angka, garis bawah (_), garis miring (/), tanda plus (+), tanda sama dengan (=), titik (.), tanda hubung (-), dan tanda at (@). Batasan berikut berlaku untuk nama secret jenis tertentu:

  • Jika SecretType diatur ke Generic, Rds, atau Redis, nama tidak boleh diawali dengan acs/.

  • Jika SecretType diatur ke RAMCredentials, atur parameter ini ke nilai tetap $Auto. Dalam kasus ini, KMS secara otomatis menghasilkan nama secret yang diawali dengan acs/ram/user/ dan berisi nama tampilan Pengguna RAM.

  • Jika SecretType diatur ke ECS, nama harus diawali dengan acs/ecs/.

mydbconninfo

VersionId

string

Yes

Nomor versi dari versi awal. Nomor versi harus unik dalam satu secret. Nomor versi dapat terdiri hingga 64 karakter.

v1

EncryptionKeyId

string

No

ID kunci yang digunakan untuk mengenkripsi nilai secret.

Catatan

Kunci dan secret harus berada dalam instans KMS yang sama. Kunci tersebut harus berupa kunci simetris.

key-gzz63ff0db5hg3qje****

SecretData

string

Yes

Nilai secret. Nilai tersebut dapat terdiri hingga 30.720 byte (30 KB). KMS mengenkripsi nilai secret dengan kunci yang ditentukan dan menyimpan nilai terenkripsi tersebut dalam versi awal.

  • Jika SecretType diatur ke Generic, Anda dapat menentukan nilai secret kustom.

  • Jika SecretType diatur ke Rds, nilai secret harus dalam format berikut: {"Accounts":[{"AccountName":"","AccountPassword":""}]}. Dalam format tersebut, AccountName menentukan username akun untuk instans RDS dan AccountPassword menentukan password akun tersebut.

  • Jika SecretType diatur ke Redis, atur parameter ini ke $Auto.

  • Jika SecretType diatur ke RAMCredentials, nilai secret harus dalam format berikut: {"AccessKeys":[{"AccessKeyId":"","AccessKeySecret":""}]}. Dalam format tersebut, AccessKeyId menentukan ID AccessKey dan AccessKeySecret menentukan Rahasia AccessKey. Anda harus menentukan semua Pasangan Kunci Akses Pengguna RAM.

  • Jika SecretType diatur ke PolarDB, atur parameter ini ke $Auto.

  • Jika SecretType diatur ke ECS, nilai secret harus dalam salah satu format berikut:

    • Jika SecretSubType dalam parameter ExtendedConfig diatur ke Password: {"UserName":"","Password": ""}. Dalam format tersebut, UserName menentukan username yang digunakan untuk login ke instans ECS dan Password menentukan password yang digunakan untuk login ke instans ECS.

    • Jika SecretSubType dalam parameter ExtendedConfig diatur ke SSHKey: {"UserName":"","PublicKey": "", "PrivateKey": ""}. Dalam format tersebut, PublicKey menentukan kunci publik dalam format SSH yang digunakan untuk login ke instans ECS dan PrivateKey menentukan kunci privat yang digunakan untuk login ke instans ECS.

{"Accounts":[{"AccountName":"user1","AccountPassword":"****"}]}

SecretDataType

string

No

Jenis nilai secret. Nilai yang valid:

  • text (default): Nilai secret berupa string teks.

  • binary: Nilai secret berupa string biner.

Catatan

Jika SecretType diatur ke Rds, Redis, PolarDB, RAMCredentials, atau ECS, SecretDataType harus diatur ke text.

text

Description

string

No

Deskripsi secret.

mydbinfo

Tags

string

No

Tag secret. Setiap tag terdiri dari pasangan kunci-nilai. Tag terdiri dari kunci tag dan nilai tag.

Kunci tag dan nilai tag dapat terdiri hingga 128 karakter dan boleh mengandung huruf, angka, garis miring (/), garis miring terbalik (\), garis bawah (_), tanda hubung (-), titik (.), tanda plus (+), tanda sama dengan (=), titik dua (:), dan tanda at (@).

  • Kunci tag tidak boleh diawali dengan aliyun atau acs:.

  • Anda dapat menentukan hingga 20 pasangan kunci-nilai untuk setiap secret.

[{\"TagKey\":\"key1\",\"TagValue\":\"val1\"},{\"TagKey\":\"key2\",\"TagValue\":\"val2\"}]

SecretType

string

No

Jenis secret. Nilai yang valid:

  • Generic (default): secret generik.

  • Rds: secret RDS.

  • Redis: secret Redis.

  • RAMCredentials: secret RAM.

  • ECS: secret ECS.

  • PolarDB: secret PolarDB.

Rds

ExtendedConfig

object

No

Konfigurasi tambahan secret. Parameter ini menentukan properti secret jenis tertentu. Nilainya dapat terdiri hingga 1.024 karakter.

  • Jika SecretType diatur ke Generic, parameter ini diabaikan.

  • Jika SecretType diatur ke Rds, Anda harus menentukan parameter berikut dalam ExtendedConfig:

    • SecretSubType (Wajib): Subjenis secret. Nilai yang valid:

      • SingleUser: Secrets Manager mengelola secret RDS dalam mode akun tunggal. Saat secret diputar, password akun yang ditentukan diatur ulang menjadi password acak baru.

      • DoubleUsers: Secrets Manager mengelola secret RDS dalam mode akun ganda. ACSCurrent dan ACSPrevious mengarah ke salah satu akun. Saat secret diputar, password akun yang diarahkan oleh ACSPrevious diatur ulang menjadi password acak baru. Kemudian, Secrets Manager menukar akun yang diarahkan oleh ACSCurrent dan ACSPrevious.

    • DBInstanceId (Wajib): ID instans RDS tempat akun tersebut berada.

    • CustomData (Opsional): Data kustom. Nilainya berupa pasangan kunci-nilai dalam format JSON. Anda dapat menentukan hingga 10 pasangan kunci-nilai. Pisahkan beberapa pasangan kunci-nilai dengan koma (,). Contoh: {"Key1": "v1", "fds":"fdsf"}. Nilai default adalah {}.

  • Jika SecretType diatur ke Redis, Anda harus menentukan parameter berikut dalam ExtendedConfig:

    • SecretSubType (Wajib): Subjenis secret. Nilai yang valid:
      • DoubleUsers: Secrets Manager mengelola secret Redis dalam mode akun ganda. ACSCurrent dan ACSPrevious mengarah ke salah satu akun. Saat secret diputar, password akun yang diarahkan oleh ACSPrevious diatur ulang menjadi password acak baru. Kemudian, Secrets Manager menukar akun yang diarahkan oleh ACSCurrent dan ACSPrevious.

    • AccountName (Wajib): Username database.

    • CloneAccountName (Wajib): Username database, yaitu nilai AccountName dengan akhiran _clone.

    • AccountPrivilege (Wajib): Izin untuk mengakses database.

    • InstanceId (Wajib): ID instans Redis.

    • RegionId (Wajib): ID wilayah tempat instans Redis berada.

    • CustomData (Opsional): Data kustom. Nilainya berupa pasangan kunci-nilai dalam format JSON. Anda dapat menentukan hingga 10 pasangan kunci-nilai. Pisahkan beberapa pasangan kunci-nilai dengan koma (,). Contoh: {"Key1": "v1", "fds":"fdsf"}. Nilai default adalah {}.

  • Jika SecretType diatur ke RAMCredentials, Anda harus menentukan parameter berikut dalam ExtendedConfig:

    • SecretSubType (Wajib): Subjenis secret. Nilainya adalah RamUserAccessKey.

    • UserName (Wajib): Nama Pengguna RAM.

    • CustomData (Opsional): Data kustom. Nilainya berupa pasangan kunci-nilai dalam format JSON. Anda dapat menentukan hingga 10 pasangan kunci-nilai. Nilai default adalah {}.

  • Jika SecretType diatur ke ECS, Anda harus menentukan parameter berikut dalam ExtendedConfig:

    • SecretSubType (Wajib): Subjenis secret. Nilai yang valid:

      • Password: password ECS.

      • SSHKey: pasangan kunci SSH ECS.

    • RegionId (Wajib): ID wilayah tempat instans ECS berada.

    • InstanceId (Wajib): ID instans ECS.

    • CustomData (Opsional): Data kustom. Nilainya berupa pasangan kunci-nilai dalam format JSON. Anda dapat menentukan hingga 10 pasangan kunci-nilai. Nilai default adalah {}.

  • Jika SecretType diatur ke PolarDB, Anda harus menentukan parameter berikut dalam ExtendedConfig:

    • SecretSubType (Wajib): Nilai tetapnya adalah DoubleUsers.

    • RegionId (Wajib): Wilayah.

    • DBClusterId (Wajib): ID instans PolarDB.

    • DBType (Wajib): MySQL atau PostgreSQL.

    • AccountName (Wajib): Nama akun.

    • CloneAccountName: Nilainya adalah AccountName_clone.

    • AccountType: Hanya Normal yang didukung.

    • AccountPrivilege: Parameter ini hanya tersedia untuk MySQL.

    • DBName: Parameter ini hanya tersedia untuk MySQL.

    • CustomData (Opsional): Data kustom. Nilainya berupa pasangan kunci-nilai dalam format JSON. Anda dapat menentukan hingga 10 pasangan kunci-nilai. Pisahkan beberapa pasangan kunci-nilai dengan koma (,). Contoh: {"Key1": "v1", "fds":"fdsf"}. Nilai default adalah {}.

Catatan

Jika SecretType diatur ke Rds, Redis, PolarDB, RAMCredentials, atau ECS, Anda harus mengonfigurasi parameter ini.

{"SecretSubType":"SingleUser", "DBInstanceId":"rm-bp1b3dd3a506e****" ,"CustomData":{"Key1": "v1", "fds":"fdsf"}}

EnableAutomaticRotation

boolean

No

Menentukan apakah rotasi otomatis diaktifkan. Nilai yang valid:

  • true: mengaktifkan rotasi otomatis.

  • false (default): menonaktifkan rotasi otomatis.

Catatan

Parameter ini hanya berlaku jika SecretType diatur ke Rds, PolarDB, Redis, RAMCredentials, atau ECS. Jika SecretType diatur ke Generic, rotasi otomatis tidak didukung. Anda dapat memanggil operasi PutSecretValue untuk memutar secret secara manual.

true

RotationInterval

string

No

Interval untuk rotasi otomatis. Nilainya berada dalam rentang 6 jam hingga 8.760 jam (365 hari).
Nilainya dalam format integer[unit]. integer menunjukkan interval. unit menunjukkan satuan waktu.
Nilai yang valid untuk unit: d (hari), h (jam), m (menit), dan s (detik). Misalnya, baik 7d maupun 604.800s menunjukkan interval rotasi 7 hari.




Catatan

Anda harus menentukan parameter ini jika mengatur EnableAutomaticRotation ke true. Anda tidak perlu menentukan parameter ini jika mengatur EnableAutomaticRotation ke false.

30d

DKMSInstanceId

string

No

ID instans KMS.

kst-bjj62d8f5e0sgtx8h****

Policy

string

No

Konten kebijakan secret. Nilainya dalam format JSON. Nilainya dapat terdiri hingga 32.768 byte.

Untuk informasi selengkapnya mengenai kebijakan secret, lihat Ikhtisar kebijakan secret. Jika Anda tidak menentukan parameter ini, kebijakan secret default akan digunakan.

Kebijakan secret terdiri dari bagian-bagian berikut:

  • Version: Versi kebijakan secret. Hanya 1 yang didukung.

  • Statement: Pernyataan kebijakan secret. Setiap kebijakan secret dapat berisi satu atau beberapa pernyataan.

Berikut adalah format kebijakan secret:

{
    "Version": "1",
    "Statement": [
        {
            "Sid": "Enable RAM User Permissions",
            "Effect": "Allow",
            "Principal": {
              "RAM": ["acs:ram::12345678****:*"]
            },
            "Action": [
                "kms:*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

Detail mengenai pernyataan:

  • Sid: (Opsional) Pengenal kustom pernyataan. Nilainya dapat terdiri hingga 128 karakter dan boleh mengandung huruf kapital (A-Z), huruf kecil (a-z), angka (0-9), serta karakter khusus, termasuk garis bawah (_), garis miring (/), tanda plus (+), tanda sama dengan (=), titik (.), tanda at (@), dan tanda hubung (-).

  • Effect: (Wajib) Efek pernyataan kebijakan. Nilai yang valid: Allow dan Deny.

  • Principal: (Wajib) Pihak yang berwenang yang diberi otorisasi oleh kebijakan. Anda dapat menentukan Akun Alibaba Cloud saat ini (akun tempat secret tersebut berada), Pengguna RAM atau Peran RAM dari Akun Alibaba Cloud saat ini, atau Pengguna RAM atau Peran RAM dari Akun Alibaba Cloud lain.

  • Action: (Wajib) Operasi API yang diizinkan atau ditolak. Nilainya harus diawali dengan "kms:". Untuk daftar operasi yang didukung, lihat Ikhtisar kebijakan secret. Jika Anda menentukan operasi yang tidak ada dalam daftar, pengaturan tersebut tidak berlaku.

  • Resource: (Wajib) Sumber daya. Nilainya hanya dapat berupa *, yang menunjukkan secret KMS saat ini.

  • Condition: (Opsional) Kondisi agar otorisasi berlaku. Anda dapat menggunakan kondisi untuk mengevaluasi konteks permintaan API guna menentukan apakah pernyataan kebijakan harus diterapkan. Formatnya adalah "Condition": {"condition operator": {"condition key": "condition value"}}. Untuk informasi selengkapnya, lihat Ikhtisar kebijakan secret.

Catatan

Setelah Anda memberikan izin kepada Pengguna RAM atau Peran RAM dari Akun Alibaba Cloud lain, Anda harus menggunakan Akun Alibaba Cloud tempat Pengguna RAM atau Peran RAM tersebut berada untuk memberikan izin kepada Pengguna RAM atau Peran RAM tersebut agar dapat menggunakan secret di Konsol RAM. Baru setelah itu, Pengguna RAM atau Peran RAM tersebut dapat menggunakan secret tersebut. Untuk informasi selengkapnya, lihat Kebijakan kustom untuk KMS, Memberikan izin kepada Pengguna RAM, dan Memberikan izin kepada Peran RAM.

{"Version":"1","Statement": [{"Sid":"kms default secret policy","Effect":"Allow","Principal":{"RAM": ["acs:ram::119285303511****:*"]},"Action":["kms:*"],"Resource": ["*"] }] }

Untuk informasi mengenai parameter permintaan umum, lihat Parameter umum.

Elemen respons

Element

Type

Description

Example

object

RequestId

string

ID permintaan, yaitu pengenal unik yang dihasilkan oleh Alibaba Cloud. Anda dapat menggunakan ID ini untuk memecahkan masalah.

3bf02f7a-015b-4f93-be0f-cc043fda2dd3

AutomaticRotation

string

Menunjukkan apakah rotasi otomatis diaktifkan. Nilai yang valid:

  • Enabled: Rotasi otomatis diaktifkan.

  • Disabled: Rotasi otomatis dinonaktifkan.

  • Invalid: Status rotasi tidak normal. Secrets Manager tidak dapat memutar secret secara otomatis untuk Anda.

Catatan

Parameter ini dikembalikan jika SecretType diatur ke Rds, Redis, PolarDB, RAMCredentials, atau ECS.

Enabled

SecretName

string

Nama secret.

mydbconninfo

VersionId

string

Nomor versi secret.

v1

NextRotationDate

string

Waktu rotasi secret berikutnya.

Catatan

Parameter ini dikembalikan jika rotasi otomatis diaktifkan.

2023-07-06T18:22:03Z

SecretType

string

Jenis secret. Nilai yang valid:

  • Generic: secret generik.

  • Rds: secret RDS.

  • Redis: secret Redis.

  • RAMCredentials: secret RAM.

  • ECS: secret ECS.

  • PolarDB: secret PolarDB.

Rds

RotationInterval

string

Interval untuk rotasi otomatis.
Nilainya dalam format integer[unit]. integer menunjukkan interval. unit menunjukkan satuan waktu. Satuan waktunya adalah s (detik). Misalnya, interval rotasi 7 hari adalah 604800s.

Catatan

Parameter ini dikembalikan jika rotasi otomatis diaktifkan.

604800s

Arn

string

Nama Sumber Daya Alibaba Cloud (ARN) dari secret tersebut.

acs:kms:cn-hangzhou:154035569884****:secret/mydbconninfo

ExtendedConfig

string

Konfigurasi tambahan secret.

Catatan

Parameter ini dikembalikan jika SecretType diatur ke Rds, Redis, PolarDB, RAMCredentials, atau ECS.

{\"SecretSubType\":\"SingleUser\", \"DBInstanceId\":\"rm-uf667446pc955****\", \"CustomData\":"Key1": "v1", "fds":"fdsf"} }

DKMSInstanceId

string

ID instans KMS.

kst-bjj62d8f5e0sgtx8h****

Contoh

Respons sukses

JSONformat

{
  "RequestId": "3bf02f7a-015b-4f93-be0f-cc043fda2dd3",
  "AutomaticRotation": "Enabled",
  "SecretName": "mydbconninfo",
  "VersionId": "v1",
  "NextRotationDate": "2023-07-06T18:22:03Z",
  "SecretType": "Rds",
  "RotationInterval": "604800s",
  "Arn": "acs:kms:cn-hangzhou:154035569884****:secret/mydbconninfo",
  "ExtendedConfig": "{\\\"SecretSubType\\\":\\\"SingleUser\\\", \\\"DBInstanceId\\\":\\\"rm-uf667446pc955****\\\",  \\\"CustomData\\\":\"Key1\": \"v1\", \"fds\":\"fdsf\"} }",
  "DKMSInstanceId": "kst-bjj62d8f5e0sgtx8h****"
}

Kode kesalahan

HTTP status code

Error code

Error message

Description

400 UnsupportedOperation This action is not supported. The operation is not supported.
400 Rejected.LimitExceeded The request was rejected because user create resource limit was exceeded The request is rejected because the number of created resources reaches the upper limit.
400 InvalidParameter The specified parameter is not valid. An invalid value is specified for the parameter.
400 Rejected.ShareQuotaExceedLimit Instance Share Quota Exceed Limit. The instance share quota exceeds the limit.
500 InternalFailure Internal Failure An internal error occurred.
403 Forbidden.DKMSInstanceNotFound The specified DKMS Instance is not found. Your dedicated KMS instance is not found.
404 Forbidden.ResourceNotFound The resource is not found. The resource does not exist.
409 Rejected.ResourceExist The resource already exists. The resource already exists.
409 Rejected.ResourceInDeleteWindow The secret is planned to be deleted. The secret is to be deleted.

Lihat Error Codes untuk daftar lengkap.

Catatan rilis

Lihat Release Notes untuk daftar lengkap.