Tous les produits
Search
Centre de documentation

:CreateSecret

Dernière mise à jour :Aug 06, 2026

Crée un secret et stocke sa version initiale.

Description de l'opération

  • Pour plus d'informations sur la stratégie d'accès requise pour qu'un utilisateur ou un rôle Resource Access Management (RAM) puisse appeler cette opération, consultez Resource Access Management.

  • Spécifiez le nom du secret, la valeur du secret pour la version initiale et le numéro de version. La version initiale est marquée avec l'étiquette d'étape ACSCurrent.

  • Key Management Service (KMS) utilise la clé que vous spécifiez pour chiffrer la valeur du secret. La clé et le secret doivent se trouver dans la même instance KMS. La clé doit être une clé symétrique.

    Remarque

    KMS chiffre la valeur du secret de chaque version. Les métadonnées telles que le nom du secret, le numéro de version et les étiquettes d'étape de version ne sont pas chiffrées.

  • Avant de chiffrer la valeur du secret, vous devez disposer de l'autorisation kms:GenerateDataKey sur la clé.

Cette rubrique fournit un exemple de création d'un secret RDS. Le secret est nommé mydbconninfo. Le VersionId de la version initiale est v1. Le SecretData est {"Accounts":[{"AccountName":"user1","AccountPassword":"****"}]}.

Testez maintenant

Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale. Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale.

Test

Autorisation RAM

Aucune autorisation n'est requise pour cette opération. En cas de problème, contactez le support technique.

Paramètres de requête

Paramètre

Type

Requis

Description

Exemple

SecretName

string

Oui

Le nom du secret. Le nom doit être unique dans la même région. Le nom peut comporter jusqu'à 192 caractères et contenir des lettres, des chiffres, des traits de soulignement (_), des barres obliques (/), des signes plus (+), des signes égal (=), des points (.), des traits d'union (-) et des arobases (@). Les limites suivantes s'appliquent aux noms de secret pour les différents types de secrets :

  • Si SecretType est défini sur Generic, Rds ou Redis, le nom ne peut pas commencer par acs/.

  • Si SecretType est défini sur RAMCredentials, définissez ce paramètre sur la valeur fixe $Auto. Dans ce cas, KMS génère automatiquement un nom de secret qui commence par acs/ram/user/ et contient le nom d'affichage de l'utilisateur RAM.

  • Si SecretType est défini sur ECS, le nom doit commencer par acs/ecs/.

mydbconninfo

VersionId

string

Oui

Le numéro de version de la version initiale. Le numéro de version doit être unique au sein du secret. Le numéro de version peut comporter jusqu'à 64 caractères.

v1

EncryptionKeyId

string

Non

L'identifiant de la clé utilisée pour chiffrer la valeur du secret.

Remarque

La clé et le secret doivent se trouver dans la même instance KMS. La clé doit être une clé symétrique.

key-gzz63ff0db5hg3qje****

SecretData

string

Oui

La valeur du secret. La valeur peut comporter jusqu'à 30 720 octets (30 Ko). KMS chiffre la valeur du secret avec la clé spécifiée et stocke la valeur chiffrée dans la version initiale.

  • Si SecretType est défini sur Generic, vous pouvez spécifier une valeur de secret personnalisée.

  • Si SecretType est défini sur Rds, la valeur du secret doit être au format suivant : {"Accounts":[{"AccountName":"","AccountPassword":""}]}. Dans ce format, AccountName spécifie le nom d'utilisateur du compte pour l'instance RDS et AccountPassword spécifie le mot de passe du compte.

  • Si SecretType est défini sur Redis, définissez ce paramètre sur $Auto.

  • Si SecretType est défini sur RAMCredentials, la valeur du secret doit être au format suivant : {"AccessKeys":[{"AccessKeyId":"","AccessKeySecret":""}]}. Dans ce format, AccessKeyId spécifie l'identifiant AccessKey et AccessKeySecret spécifie le secret AccessKey. Vous devez spécifier toutes les paires AccessKey de l'utilisateur RAM.

  • Si SecretType est défini sur PolarDB, définissez ce paramètre sur $Auto.

  • Si SecretType est défini sur ECS, la valeur du secret doit être dans l'un des formats suivants :

    • Si SecretSubType dans le paramètre ExtendedConfig est défini sur Password : {"UserName":"","Password": ""}. Dans ce format, UserName spécifie le nom d'utilisateur utilisé pour se connecter à l'instance ECS et Password spécifie le mot de passe utilisé pour se connecter à l'instance ECS.

    • Si SecretSubType dans le paramètre ExtendedConfig est défini sur SSHKey : {"UserName":"","PublicKey": "", "PrivateKey": ""}. Dans ce format, PublicKey spécifie la clé publique au format SSH utilisée pour se connecter à l'instance ECS et PrivateKey spécifie la clé privée utilisée pour se connecter à l'instance ECS.

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

SecretDataType

string

Non

Le type de la valeur du secret. Valeurs valides :

  • text (par défaut) : La valeur du secret est une chaîne de texte.

  • binary : La valeur du secret est une chaîne binaire.

Remarque

Si SecretType est défini sur Rds, Redis, PolarDB, RAMCredentials ou ECS, SecretDataType doit être défini sur text.

text

Description

string

Non

La description du secret.

mydbinfo

Tags

string

Non

Les balises du secret. Chaque balise se compose d'une paire clé-valeur. Une balise se compose d'une clé de balise et d'une valeur de balise.

La clé de balise et la valeur de balise peuvent comporter jusqu'à 128 caractères et contenir des lettres, des chiffres, des barres obliques (/), des barres obliques inverses (\), des traits de soulignement (_), des traits d'union (-), des points (.), des signes plus (+), des signes égal (=), des deux-points (:) et des arobases (@).

  • La clé de balise ne peut pas commencer par aliyun ou acs:.

  • Vous pouvez spécifier jusqu'à 20 paires clé-valeur pour chaque secret.

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

SecretType

string

Non

Le type du secret. Valeurs valides :

  • Generic (par défaut) : un secret générique.

  • Rds : un secret RDS.

  • Redis : un secret Redis.

  • RAMCredentials : un secret RAM.

  • ECS : un secret ECS.

  • PolarDB : un secret PolarDB.

Rds

ExtendedConfig

object

Non

La configuration étendue du secret. Ce paramètre spécifie les propriétés du secret d'un type spécifique. La valeur peut comporter jusqu'à 1 024 caractères.

  • Si SecretType est défini sur Generic, ce paramètre est ignoré.

  • Si SecretType est défini sur Rds, vous devez spécifier les paramètres suivants dans ExtendedConfig :

    • SecretSubType (Obligatoire) : Le sous-type du secret. Valeurs valides :

      • SingleUser : Secrets Manager gère le secret RDS en mode compte unique. Lorsque le secret est permuté, le mot de passe du compte spécifié est réinitialisé avec un nouveau mot de passe aléatoire.

      • DoubleUsers : Secrets Manager gère le secret RDS en mode double compte. ACSCurrent et ACSPrevious pointent vers l'un des comptes. Lorsque le secret est permuté, le mot de passe du compte pointé par ACSPrevious est réinitialisé avec un nouveau mot de passe aléatoire. Ensuite, Secrets Manager intervertit les comptes vers lesquels pointent ACSCurrent et ACSPrevious.

    • DBInstanceId (Obligatoire) : L'identifiant de l'instance RDS à laquelle le compte appartient.

    • CustomData (Facultatif) : Les données personnalisées. La valeur est une paire clé-valeur au format JSON. Vous pouvez spécifier jusqu'à 10 paires clé-valeur. Séparez plusieurs paires clé-valeur par des virgules (,). Exemple : {"Key1": "v1", "fds":"fdsf"}. La valeur par défaut est {}.

  • Si SecretType est défini sur Redis, vous devez spécifier les paramètres suivants dans ExtendedConfig :

    • SecretSubType (Obligatoire) : Le sous-type du secret. Valeurs valides :

      • DoubleUsers : Secrets Manager gère le secret Redis en mode double compte. ACSCurrent et ACSPrevious pointent vers l'un des comptes. Lorsque le secret est permuté, le mot de passe du compte pointé par ACSPrevious est réinitialisé avec un nouveau mot de passe aléatoire. Ensuite, Secrets Manager intervertit les comptes vers lesquels pointent ACSCurrent et ACSPrevious.

    • AccountName (Obligatoire) : Le nom d'utilisateur de la base de données.

    • CloneAccountName (Obligatoire) : Le nom d'utilisateur de la base de données, qui est la valeur de AccountName avec le suffixe _clone.

    • AccountPrivilege (Obligatoire) : Les autorisations d'accès à la base de données.

    • InstanceId (Obligatoire) : L'identifiant de l'instance Redis.

    • RegionId (Obligatoire) : L'identifiant de la région où réside l'instance Redis.

    • CustomData (Facultatif) : Les données personnalisées. La valeur est une paire clé-valeur au format JSON. Vous pouvez spécifier jusqu'à 10 paires clé-valeur. Séparez plusieurs paires clé-valeur par des virgules (,). Exemple : {"Key1": "v1", "fds":"fdsf"}. La valeur par défaut est {}.

  • Si SecretType est défini sur RAMCredentials, vous devez spécifier les paramètres suivants dans ExtendedConfig :

    • SecretSubType (Obligatoire) : Le sous-type du secret. La valeur est RamUserAccessKey.

    • UserName (Obligatoire) : Le nom de l'utilisateur RAM.

    • CustomData (Facultatif) : Les données personnalisées. La valeur est une paire clé-valeur au format JSON. Vous pouvez spécifier jusqu'à 10 paires clé-valeur. Séparez plusieurs paires clé-valeur par des virgules (,). La valeur par défaut est {}.

  • Si SecretType est défini sur ECS, vous devez spécifier les paramètres suivants dans ExtendedConfig :

    • SecretSubType (Obligatoire) : Le sous-type du secret. Valeurs valides :

      • Password : un mot de passe ECS.

      • SSHKey : une paire de clés SSH ECS.

    • RegionId (Obligatoire) : L'identifiant de la région où réside l'instance ECS.

    • InstanceId (Obligatoire) : L'identifiant de l'instance ECS.

    • CustomData (Facultatif) : Les données personnalisées. La valeur est une paire clé-valeur au format JSON. Vous pouvez spécifier jusqu'à 10 paires clé-valeur. Séparez plusieurs paires clé-valeur par des virgules (,). La valeur par défaut est {}.

  • Si SecretType est défini sur PolarDB, vous devez spécifier les paramètres suivants dans ExtendedConfig :

    • SecretSubType (Obligatoire) : La valeur fixe est DoubleUsers.

    • RegionId (Obligatoire) : La région.

    • DBClusterId (Obligatoire) : L'identifiant de l'instance PolarDB.

    • DBType (Obligatoire) : MySQL ou PostgreSQL.

    • AccountName (Obligatoire) : Le nom du compte.

    • CloneAccountName : La valeur est AccountName_clone.

    • AccountType : Seul Normal est pris en charge.

    • AccountPrivilege : Ce paramètre n'est disponible que pour MySQL.

    • DBName : Ce paramètre n'est disponible que pour MySQL.

    • CustomData (Facultatif) : Les données personnalisées. La valeur est une paire clé-valeur au format JSON. Vous pouvez spécifier jusqu'à 10 paires clé-valeur. Séparez plusieurs paires clé-valeur par des virgules (,). Exemple : {"Key1": "v1", "fds":"fdsf"}. La valeur par défaut est {}.

Remarque

Si SecretType est défini sur Rds, Redis, PolarDB, RAMCredentials ou ECS, vous devez configurer ce paramètre.

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

EnableAutomaticRotation

boolean

Non

Indique si la permutation automatique doit être activée. Valeurs valides :

  • true : active la permutation automatique.

  • false (par défaut) : désactive la permutation automatique.

Remarque

Ce paramètre n'est valide que si SecretType est défini sur Rds, PolarDB, Redis, RAMCredentials ou ECS. Si SecretType est défini sur Generic, la permutation automatique n'est pas prise en charge. Vous pouvez appeler l'opération PutSecretValue pour permuter manuellement le secret.

true

RotationInterval

string

Non

L'intervalle de permutation automatique. La valeur est comprise entre 6 heures et 8 760 heures (365 jours).
La valeur est au format integer[unit]. integer indique l'intervalle. unit indique l'unité de temps.
Valeurs valides pour unit : d (jour), h (heure), m (minute) et s (seconde). Par exemple, 7d et 604 800s indiquent tous deux un intervalle de permutation de 7 jours.










Remarque

Vous devez spécifier ce paramètre si vous définissez EnableAutomaticRotation sur true. Vous n'avez pas besoin de spécifier ce paramètre si vous définissez EnableAutomaticRotation sur false.

30d

DKMSInstanceId

string

Non

L'identifiant de l'instance KMS.

kst-bjj62d8f5e0sgtx8h****

Policy

string

Non

Le contenu de la stratégie de secret. La valeur est au format JSON. La valeur peut comporter jusqu'à 32 768 octets.

Pour plus d'informations sur les stratégies de secret, consultez Présentation des stratégies de secret. Si vous ne spécifiez pas ce paramètre, la stratégie de secret par défaut est utilisée.

Une stratégie de secret contient les parties suivantes :

  • Version : La version de la stratégie de secret. Seul 1 est pris en charge.

  • Statement : Les instructions de la stratégie de secret. Chaque stratégie de secret peut contenir une ou plusieurs instructions.

Voici le format d'une stratégie de secret :

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

Détails d'une instruction :

  • Sid : (Facultatif) L'identifiant personnalisé de l'instruction. La valeur peut comporter jusqu'à 128 caractères et contenir des lettres majuscules (A-Z), des lettres minuscules (a-z), des chiffres (0-9) et des caractères spéciaux, notamment des traits de soulignement (_), des barres obliques (/), des signes plus (+), des signes égal (=), des points (.), des arobases (@) et des traits d'union (-).

  • Effect : (Obligatoire) L'effet de l'instruction de stratégie. Valeurs valides : Allow et Deny.

  • Principal : (Obligatoire) Le principal autorisé par la stratégie. Vous pouvez spécifier le compte Alibaba Cloud actuel (le compte auquel le secret appartient), un utilisateur ou un rôle RAM du compte Alibaba Cloud actuel, ou un utilisateur ou un rôle RAM d'un autre compte Alibaba Cloud.

  • Action : (Obligatoire) Les opérations d'API autorisées ou refusées. La valeur doit commencer par "kms:". Pour la liste des opérations prises en charge, consultez Présentation des stratégies de secret. Si vous spécifiez une opération qui ne figure pas dans la liste, le paramètre ne prend pas effet.

  • Resource : (Obligatoire) La ressource. La valeur ne peut être que *, ce qui indique le secret KMS actuel.

  • Condition : (Facultatif) Les conditions pour que l'autorisation prenne effet. Vous pouvez utiliser des conditions pour évaluer le contexte d'une requête d'API afin de déterminer s'il faut appliquer l'instruction de stratégie. Le format est "Condition": {"condition operator": {"condition key": "condition value"}}. Pour plus d'informations, consultez Présentation des stratégies de secret.

Remarque

Après avoir accordé des autorisations à un utilisateur ou un rôle RAM d'un autre compte Alibaba Cloud, vous devez utiliser le compte Alibaba Cloud auquel l'utilisateur ou le rôle RAM appartient pour lui accorder les autorisations d'utilisation du secret dans la console RAM. Ensuite, l'utilisateur ou le rôle RAM peut utiliser le secret. Pour plus d'informations, consultez Stratégies personnalisées pour KMS, Accorder des autorisations à un utilisateur RAM et Accorder des autorisations à un rôle RAM.

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

Pour plus d'informations sur les paramètres de requête courants, consultez Paramètres courants.

Éléments de réponse

Élément

Type

Description

Exemple

object

RequestId

string

L'identifiant de la requête, qui est un identifiant unique généré par Alibaba Cloud. Vous pouvez utiliser cet identifiant pour résoudre les problèmes.

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

AutomaticRotation

string

Indique si la permutation automatique est activée. Valeurs valides :

  • Enabled : La permutation automatique est activée.

  • Disabled : La permutation automatique est désactivée.

  • Invalid : L'état de permutation est anormal. Secrets Manager ne peut pas permuter automatiquement le secret pour vous.

Remarque

Ce paramètre est renvoyé si SecretType est défini sur Rds, Redis, PolarDB, RAMCredentials ou ECS.

Enabled

SecretName

string

Le nom du secret.

mydbconninfo

VersionId

string

Le numéro de version du secret.

v1

NextRotationDate

string

L'heure à laquelle le secret sera permuté pour la prochaine fois.

Remarque

Ce paramètre est renvoyé si la permutation automatique est activée.

2023-07-06T18:22:03Z

SecretType

string

Le type du secret. Valeurs valides :

  • Generic : un secret générique.

  • Rds : un secret RDS.

  • Redis : un secret Redis.

  • RAMCredentials : un secret RAM.

  • ECS : un secret ECS.

  • PolarDB : un secret PolarDB.

Rds

RotationInterval

string

L'intervalle de permutation automatique.
La valeur est au format integer[unit]. integer indique l'intervalle. unit indique l'unité de temps. L'unité est s (seconde). Par exemple, un intervalle de permutation de 7 jours est 604800s.



Remarque

Ce paramètre est renvoyé si la permutation automatique est activée.

604800s

Arn

string

Le nom de ressource Alibaba Cloud (ARN) du secret.

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

ExtendedConfig

string

La configuration étendue du secret.

Remarque

Ce paramètre est renvoyé si SecretType est défini sur Rds, Redis, PolarDB, RAMCredentials ou ECS.

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

DKMSInstanceId

string

L'identifiant de l'instance KMS.

kst-bjj62d8f5e0sgtx8h****

Exemples

JSON format

{
  "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****"
}

Codes d'erreur

Code de statut HTTP

Code d'erreur

Message d'erreur

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.

Consultez Codes d'erreur pour la liste complète.

Notes de version

Consultez Notes de version pour la liste complète.