Todos os produtos
Search
Central de documentação

Key Management Service:CreateSecret

Última atualização: Jun 28, 2026

Cria um segredo e armazena sua versão inicial.

Descrição da operação

  • Para obter informações sobre a política de acesso necessária para que um usuário do Resource Access Management (RAM) ou uma função do RAM chame esta operação, consulte Resource Access Management.

  • Especifique o nome do segredo, o valor do segredo para a versão inicial e o número da versão. A versão inicial é marcada com o rótulo de estágio ACSCurrent.

  • O Key Management Service (KMS) usa a chave que você especifica para criptografar o valor do segredo. A chave e o segredo devem estar na mesma instância do KMS. A chave deve ser uma chave simétrica.

    Nota

    O KMS criptografa o valor do segredo de cada versão. Metadados como o nome do segredo, o número da versão e os rótulos de estágio da versão não são criptografados.

  • Antes de criptografar o valor do segredo, você deve ter a permissão kms:GenerateDataKey na chave.

Este tópico fornece um exemplo de como criar um segredo do RDS. O segredo é nomeado como mydbconninfo. O VersionId da versão inicial é v1. O SecretData é {"Accounts":[{"AccountName":"user1","AccountPassword":"****"}]}.

Experimente agora

Experimente esta API no OpenAPI Explorer, sem necessidade de assinatura manual. Chamadas bem-sucedidas geram automaticamente código SDK correspondente aos seus parâmetros. Faça o download com segurança de credenciais integrada para uso local.

Testar

Autorização RAM

Nenhuma autorização necessária para esta operação. Se você encontrar problemas com esta operação, entre em contato com o suporte técnico.

Parâmetros da solicitação

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

SecretName

string

Sim

O nome do segredo. O nome deve ser exclusivo na mesma região. O nome pode ter até 192 caracteres e pode conter letras, dígitos, sublinhados (_), barras (/), sinais de mais (+), sinais de igual (=), pontos (.), hifens (-) e arrobas (@). Os seguintes limites se aplicam aos nomes de segredos para diferentes tipos de segredos:

  • Se SecretType estiver definido como Generic, Rds ou Redis, o nome não pode começar com acs/.

  • Se SecretType estiver definido como RAMCredentials, defina este parâmetro com o valor fixo $Auto. Nesse caso, o KMS gera automaticamente um nome de segredo que começa com acs/ram/user/ e contém o nome de exibição do usuário do RAM.

  • Se SecretType estiver definido como ECS, o nome deve começar com acs/ecs/.

mydbconninfo

VersionId

string

Sim

O número da versão inicial. O número da versão deve ser exclusivo dentro do segredo. O número da versão pode ter até 64 caracteres.

v1

EncryptionKeyId

string

Não

O ID da chave usada para criptografar o valor do segredo.

Nota

A chave e o segredo devem estar na mesma instância do KMS. A chave deve ser uma chave simétrica.

key-gzz63ff0db5hg3qje****

SecretData

string

Sim

O valor do segredo. O valor pode ter até 30.720 bytes (30 KB) de comprimento. O KMS criptografa o valor do segredo com a chave especificada e armazena o valor criptografado na versão inicial.

  • Se SecretType estiver definido como Generic, você pode especificar um valor de segredo personalizado.

  • Se SecretType estiver definido como Rds, o valor do segredo deve estar no seguinte formato: {"Accounts":[{"AccountName":"","AccountPassword":""}]}. No formato, AccountName especifica o nome de usuário da conta para a instância do RDS e AccountPassword especifica a senha da conta.

  • Se SecretType estiver definido como Redis, defina este parâmetro como $Auto.

  • Se SecretType estiver definido como RAMCredentials, o valor do segredo deve estar no seguinte formato: {"AccessKeys":[{"AccessKeyId":"","AccessKeySecret":""}]}. No formato, AccessKeyId especifica o ID da AccessKey e AccessKeySecret especifica o segredo da AccessKey. Você deve especificar todos os pares de AccessKey do usuário do RAM.

  • Se SecretType estiver definido como PolarDB, defina este parâmetro como $Auto.

  • Se SecretType estiver definido como ECS, o valor do segredo deve estar em um dos seguintes formatos:

    • Se SecretSubType no parâmetro ExtendedConfig estiver definido como Password: {"UserName":"","Password": ""}. No formato, UserName especifica o nome de usuário usado para fazer login na instância do ECS e Password especifica a senha usada para fazer login na instância do ECS.

    • Se SecretSubType no parâmetro ExtendedConfig estiver definido como SSHKey: {"UserName":"","PublicKey": "", "PrivateKey": ""}. No formato, PublicKey especifica a chave pública formatada em SSH usada para fazer login na instância do ECS e PrivateKey especifica a chave privada usada para fazer login na instância do ECS.

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

SecretDataType

string

Não

O tipo do valor do segredo. Valores válidos:

  • text (padrão): O valor do segredo é uma string de texto.

  • binary: O valor do segredo é uma string binária.

Nota

Se SecretType estiver definido como Rds, Redis, PolarDB, RAMCredentials ou ECS, SecretDataType deve ser definido como text.

text

Description

string

Não

A descrição do segredo.

mydbinfo

Tags

string

Não

As tags do segredo. Cada tag consiste em um par chave-valor. Uma tag consiste em uma chave de tag e um valor de tag.

A chave de tag e o valor de tag podem ter até 128 caracteres e podem conter letras, dígitos, barras (/), barras invertidas (\), sublinhados (_), hifens (-), pontos (.), sinais de mais (+), sinais de igual (=), dois-pontos (:) e arrobas (@).

  • A chave de tag não pode começar com aliyun ou acs:.

  • Você pode especificar até 20 pares chave-valor para cada segredo.

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

SecretType

string

Não

O tipo do segredo. Valores válidos:

  • Generic (padrão): um segredo genérico.

  • Rds: um segredo do RDS.

  • Redis: um segredo do Redis.

  • RAMCredentials: um segredo do RAM.

  • ECS: um segredo do ECS.

  • PolarDB: um segredo do PolarDB.

Rds

ExtendedConfig

object

Não

A configuração estendida do segredo. Este parâmetro especifica as propriedades do segredo de um tipo específico. O valor pode ter até 1.024 caracteres.

  • Se SecretType estiver definido como Generic, este parâmetro será ignorado.

  • Se SecretType estiver definido como Rds, você deve especificar os seguintes parâmetros em ExtendedConfig:

    • SecretSubType (Obrigatório): O subtipo do segredo. Valores válidos:

      • SingleUser: O Secrets Manager gerencia o segredo do RDS no modo de conta única. Quando o segredo é rotacionado, a senha da conta especificada é redefinida para uma nova senha aleatória.

      • DoubleUsers: O Secrets Manager gerencia o segredo do RDS no modo de conta dupla. ACSCurrent e ACSPrevious apontam para uma das contas. Quando o segredo é rotacionado, a senha da conta apontada por ACSPrevious é redefinida para uma nova senha aleatória. Em seguida, o Secrets Manager troca as contas para as quais ACSCurrent e ACSPrevious apontam.

    • DBInstanceId (Obrigatório): O ID da instância do RDS à qual a conta pertence.

    • CustomData (Opcional): Os dados personalizados. O valor é um par chave-valor no formato JSON. Você pode especificar até 10 pares chave-valor. Separe vários pares chave-valor com vírgulas (,). Exemplo: {"Key1": "v1", "fds":"fdsf"}. O valor padrão é {}.

  • Se SecretType estiver definido como Redis, você deve especificar os seguintes parâmetros em ExtendedConfig:

    • SecretSubType (Obrigatório): O subtipo do segredo. Valores válidos:

      • DoubleUsers: O Secrets Manager gerencia o segredo do Redis no modo de conta dupla. ACSCurrent e ACSPrevious apontam para uma das contas. Quando o segredo é rotacionado, a senha da conta apontada por ACSPrevious é redefinida para uma nova senha aleatória. Em seguida, o Secrets Manager troca as contas para as quais ACSCurrent e ACSPrevious apontam.

    • AccountName (Obrigatório): O nome de usuário do banco de dados.

    • CloneAccountName (Obrigatório): O nome de usuário do banco de dados, que é o valor de AccountName com o sufixo _clone.

    • AccountPrivilege (Obrigatório): As permissões para acessar o banco de dados.

    • InstanceId (Obrigatório): O ID da instância do Redis.

    • RegionId (Obrigatório): O ID da região onde a instância do Redis reside.

    • CustomData (Opcional): Os dados personalizados. O valor é um par chave-valor no formato JSON. Você pode especificar até 10 pares chave-valor. Separe vários pares chave-valor com vírgulas (,). Exemplo: {"Key1": "v1", "fds":"fdsf"}. O valor padrão é {}.

  • Se SecretType estiver definido como RAMCredentials, você deve especificar os seguintes parâmetros em ExtendedConfig:

    • SecretSubType (Obrigatório): O subtipo do segredo. O valor é RamUserAccessKey.

    • UserName (Obrigatório): O nome do usuário do RAM.

    • CustomData (Opcional): Os dados personalizados. O valor é um par chave-valor no formato JSON. Você pode especificar até 10 pares chave-valor. Separe vários pares chave-valor com vírgulas (,). O valor padrão é {}.

  • Se SecretType estiver definido como ECS, você deve especificar os seguintes parâmetros em ExtendedConfig:

    • SecretSubType (Obrigatório): O subtipo do segredo. Valores válidos:

      • Password: uma senha do ECS.

      • SSHKey: um par de chaves SSH do ECS.

    • RegionId (Obrigatório): O ID da região onde a instância do ECS reside.

    • InstanceId (Obrigatório): O ID da instância do ECS.

    • CustomData (Opcional): Os dados personalizados. O valor é um par chave-valor no formato JSON. Você pode especificar até 10 pares chave-valor. Separe vários pares chave-valor com vírgulas (,). O valor padrão é {}.

  • Se SecretType estiver definido como PolarDB, você deve especificar os seguintes parâmetros em ExtendedConfig:

    • SecretSubType (Obrigatório): O valor fixo é DoubleUsers.

    • RegionId (Obrigatório): A região.

    • DBClusterId (Obrigatório): O ID da instância do PolarDB.

    • DBType (Obrigatório): MySQL ou PostgreSQL.

    • AccountName (Obrigatório): O nome da conta.

    • CloneAccountName: O valor é AccountName_clone.

    • AccountType: Apenas Normal é suportado.

    • AccountPrivilege: Este parâmetro está disponível apenas para MySQL.

    • DBName: Este parâmetro está disponível apenas para MySQL.

    • CustomData (Opcional): Os dados personalizados. O valor é um par chave-valor no formato JSON. Você pode especificar até 10 pares chave-valor. Separe vários pares chave-valor com vírgulas (,). Exemplo: {"Key1": "v1", "fds":"fdsf"}. O valor padrão é {}.

Nota

Se SecretType estiver definido como Rds, Redis, PolarDB, RAMCredentials ou ECS, você deve configurar este parâmetro.

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

EnableAutomaticRotation

boolean

Não

Especifica se a rotação automática deve ser ativada. Valores válidos:

  • true: ativa a rotação automática.

  • false (padrão): desativa a rotação automática.

Nota

Este parâmetro é válido apenas se SecretType estiver definido como Rds, PolarDB, Redis, RAMCredentials ou ECS. Se SecretType estiver definido como Generic, a rotação automática não é suportada. Você pode chamar a operação PutSecretValue para rotacionar o segredo manualmente.

true

RotationInterval

string

Não

O intervalo para rotação automática. O valor está no intervalo de 6 horas a 8.760 horas (365 dias).
O valor está no formato integer[unit]. integer indica o intervalo. unit indica a unidade de tempo.
Valores válidos para unit: d (dia), h (hora), m (minuto) e s (segundo). Por exemplo, tanto 7d quanto 604.800s indicam um intervalo de rotação de 7 dias.

Nota

Você deve especificar este parâmetro se definir EnableAutomaticRotation como true. Você não precisa especificar este parâmetro se definir EnableAutomaticRotation como false.

30d

DKMSInstanceId

string

Não

O ID da instância do KMS.

kst-bjj62d8f5e0sgtx8h****

Policy

string

Não

O conteúdo da política de segredo. O valor está no formato JSON. O valor pode ter até 32.768 bytes de comprimento.

Para obter mais informações sobre políticas de segredo, consulte Visão geral das políticas de segredo. Se você não especificar este parâmetro, a política de segredo padrão será usada.

Uma política de segredo contém as seguintes partes:

  • Version: A versão da política de segredo. Apenas 1 é suportado.

  • Statement: As instruções da política de segredo. Cada política de segredo pode conter uma ou mais instruções.

O seguinte é o formato de uma política de segredo:

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

Detalhes sobre uma instrução:

  • Sid: (Opcional) O identificador personalizado da instrução. O valor pode ter até 128 caracteres e pode conter letras maiúsculas (A-Z), letras minúsculas (a-z), dígitos (0-9) e caracteres especiais, incluindo sublinhados (_), barras (/), sinais de mais (+), sinais de igual (=), pontos (.), arrobas (@) e hifens (-).

  • Effect: (Obrigatório) O efeito da instrução da política. Valores válidos: Allow e Deny.

  • Principal: (Obrigatório) O principal que é autorizado pela política. Você pode especificar a conta atual da Alibaba Cloud (a conta à qual o segredo pertence), um usuário do RAM ou função do RAM da conta atual da Alibaba Cloud, ou um usuário do RAM ou função do RAM de outra conta da Alibaba Cloud.

  • Action: (Obrigatório) As operações de API que são permitidas ou negadas. O valor deve começar com "kms:". Para a lista de operações suportadas, consulte Visão geral das políticas de segredo. Se você especificar uma operação que não esteja na lista, a configuração não terá efeito.

  • Resource: (Obrigatório) O recurso. O valor pode ser apenas *, que indica o segredo atual do KMS.

  • Condition: (Opcional) As condições para que a autorização entre em vigor. Você pode usar condições para avaliar o contexto de uma solicitação de API para determinar se a instrução da política deve ser aplicada. O formato é "Condition": {"condition operator": {"condition key": "condition value"}}. Para obter mais informações, consulte Visão geral das políticas de segredo.

Nota

Depois de conceder permissões a um usuário do RAM ou função do RAM de outra conta da Alibaba Cloud, você deve usar a conta da Alibaba Cloud à qual o usuário do RAM ou função do RAM pertence para conceder ao usuário do RAM ou função do RAM as permissões para usar o segredo no console do RAM. Em seguida, o usuário do RAM ou função do RAM pode usar o segredo. Para obter mais informações, consulte Políticas personalizadas para o KMS, Conceder permissões a um usuário do RAM e Conceder permissões a uma função do RAM.

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

Para obter informações sobre parâmetros de solicitação comuns, consulte Parâmetros comuns.

Elementos de resposta

Elemento

Tipo

Descrição

Exemplo

object

RequestId

string

O ID da solicitação, que é um identificador exclusivo gerado pela Alibaba Cloud. Você pode usar este ID para solucionar problemas.

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

AutomaticRotation

string

Indica se a rotação automática está ativada. Valores válidos:

  • Enabled: A rotação automática está ativada.

  • Disabled: A rotação automática está desativada.

  • Invalid: O status de rotação está anormal. O Secrets Manager não pode rotacionar o segredo automaticamente para você.

Nota

Este parâmetro é retornado se SecretType estiver definido como Rds, Redis, PolarDB, RAMCredentials ou ECS.

Enabled

SecretName

string

O nome do segredo.

mydbconninfo

VersionId

string

O número da versão do segredo.

v1

NextRotationDate

string

A hora em que o segredo será rotacionado em seguida.

Nota

Este parâmetro é retornado se a rotação automática estiver ativada.

2023-07-06T18:22:03Z

SecretType

string

O tipo do segredo. Valores válidos:

  • Generic: um segredo genérico.

  • Rds: um segredo do RDS.

  • Redis: um segredo do Redis.

  • RAMCredentials: um segredo do RAM.

  • ECS: um segredo do ECS.

  • PolarDB: um segredo do PolarDB.

Rds

RotationInterval

string

O intervalo para rotação automática.
O valor está no formato integer[unit]. integer indica o intervalo. unit indica a unidade de tempo. A unidade é s (segundo). Por exemplo, um intervalo de rotação de 7 dias é 604800s.

Nota

Este parâmetro é retornado se a rotação automática estiver ativada.

604800s

Arn

string

O Alibaba Cloud Resource Name (ARN) do segredo.

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

ExtendedConfig

string

A configuração estendida do segredo.

Nota

Este parâmetro é retornado se SecretType estiver definido como Rds, Redis, PolarDB, RAMCredentials ou ECS.

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

DKMSInstanceId

string

O ID da instância do KMS.

kst-bjj62d8f5e0sgtx8h****

Exemplos

Resposta de sucesso

JSON formato

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

Códigos de erro

Código de status HTTP

Código de erro

Mensagem de erro

Descrição

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.

Consulte Códigos de Erro para uma lista completa.

Notas de versão

Consulte Notas de Versão para uma lista completa.