Todos os produtos
Search
Central de documentação

:CreateSecret

Última atualização: Jul 08, 2026

Crie um segredo e armazene sua versão inicial.

Especifique o nome do segredo, o valor a ser armazenado na versão inicial e o número da versão. A versão inicial do segredo recebe o rótulo ACSCurrent.

O Key Management Service (KMS) usa uma chave para criptografar o valor do segredo. A chave e o segredo devem pertencer à mesma instância do KMS, e a chave deve ser simétrica.

Nota

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

Para criptografar o valor de um segredo, é necessária a permissão kms:GenerateDataKey na chave usada para essa criptografia.

Este tópico apresenta um exemplo de criação de um segredo do ApsaraDB RDS com o nome mydbconninfo, versão inicial VersionId definida como v1 e valor do segredo SecretData igual a {"Accounts":[{"AccountName":"user1","AccountPassword":"****"}]}.

Depuração

O OpenAPI Explorer calcula automaticamente o valor da assinatura. Para sua conveniência, recomendamos chamar esta operação no OpenAPI Explorer. O OpenAPI Explorer gera dinamicamente o código de exemplo da operação para diferentes SDKs.

Parâmetros da solicitação

Parâmetro

Tipo

Obrigatório

Exemplo

Descrição

Action

String

Sim

CreateSecret

A operação a ser executada. Defina o valor como CreateSecret.

SecretName

String

Sim

mydbconninfo

Nome do segredo. Deve ser único na região atual.

O nome pode ter até 192 caracteres e conter letras, dígitos e os seguintes caracteres especiais: _ / + = . - @. A lista a seguir descreve as convenções de nomenclatura para diferentes tipos de segredos:

  • Se SecretType for definido como Generic, Rds ou Redis, o nome não poderá começar com acs/. O valor Generic indica um segredo genérico; Rds, um segredo do ApsaraDB RDS; e Redis, um segredo do ApsaraDB for Redis ou Tair.

  • Se SecretType for definido como RAMCredentials, o valor $Auto será usado. Nesse caso, o KMS gera automaticamente um nome de segredo que começa com acs/ram/user/. O nome inclui o nome de exibição de um usuário obrigatório do Resource Access Management (RAM).

  • Se SecretType for definido como ECS, o nome deverá começar com acs/ecs/.

VersionId

String

Sim

v1

Número da versão inicial. Deve ser único dentro do segredo.

O número da versão pode ter até 64 caracteres.

EncryptionKeyId

String

Não

key-gzz63ff0db5hg3qje****

ID da chave usada para criptografar o valor do segredo.

Nota

A chave e o segredo devem pertencer à mesma instância do KMS, e a chave deve ser simétrica.

SecretData

String

Sim

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

Valor do segredo. Pode ter até 30.720 bytes, o que equivale a 30 KB. O KMS usa a chave especificada para criptografar o valor do segredo e, em seguida, armazena esse valor na versão inicial.

  • Se SecretType for definido como Generic, será possível configurar um valor de segredo personalizado.

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

  • Se SecretType for definido como Redis, o valor do segredo será $Auto.

  • Se SecretType for definido como RAMCredentials, o valor do segredo estará no formato {"AccessKeys":[{"AccessKeyId":"","AccessKeySecret":""}]}. AccessKeyId especifica o AccessKey ID do usuário RAM e AccessKeySecret especifica o AccessKey secret do usuário RAM. Especifique todos os pares de AccessKey do usuário RAM.

  • Se SecretType for definido como PolarDB, o valor do segredo será $Auto.

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

    • {"UserName":"","Password": ""}: formato usado quando o valor de SecretSubType é definido como Password no parâmetro ExtendedConfig. UserName especifica o nome de usuário usado para fazer login na instância do Elastic Compute Service (ECS), e Password especifica a senha usada para fazer login na instância do ECS.

    • {"UserName":"","PublicKey": "", "PrivateKey": ""}: formato usado quando o valor de SecretSubType é definido como SSHKey no parâmetro ExtendedConfig. PublicKey especifica a chave pública SSH usada para fazer login na instância do ECS, e PrivateKey especifica a chave privada SSH usada para fazer login na instância do ECS.

SecretDataType

String

Não

text

Tipo do valor do segredo. Valores válidos:

  • text (padrão)

  • binary

Nota

Se SecretType for definido como Rds, Redis, PolarDB, RAMCredentials ou ECS, defina SecretDataType como text.

Description

String

Não

mydbinfo

Descrição do segredo.

Tags

String

Não

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

Tags do segredo. Uma tag consiste em um par chave-valor.

Uma chave de tag ou um valor de tag pode ter até 128 caracteres e conter letras, dígitos e os seguintes caracteres especiais: / \ _ - . + = : @

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

  • É possível especificar até 20 pares chave-valor para cada segredo.

SecretType

String

Não

Rds

Tipo do segredo. Valores válidos:

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

  • Rds: segredo do ApsaraDB RDS.

  • Redis: segredo do ApsaraDB for Redis.

  • RAMCredentials: segredo do RAM.

  • ECS: segredo do ECS.

  • PolarDB: segredo do PolarDB.

ExtendedConfig

Map

Não

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

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 for definido como Generic, não será necessário configurar este parâmetro.

  • Se SecretType for definido como Rds, configure os seguintes campos no parâmetro ExtendedConfig:

    • SecretSubType: obrigatório. Subtipo do segredo. Valores válidos:

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

      • DoubleUsers: o KMS gerencia o segredo do ApsaraDB RDS no modo de conta dupla. Uma conta é referenciada pela versão ACSCurrent e a outra pela versão ACSPrevious. Durante a rotação do segredo, a senha da conta referenciada pela versão ACSPrevious é redefinida para uma nova senha aleatória. Em seguida, o KMS alterna as contas referenciadas entre as versões ACSCurrent e ACSPrevious.

    • DBInstanceId: obrigatório. ID da instância do ApsaraDB RDS à qual a conta do ApsaraDB RDS pertence.

    • CustomData: opcional. Dados personalizados. O valor é uma coleção de pares chave-valor no formato JSON. É possível especificar até 10 pares chave-valor. Separe vários pares chave-valor com vírgulas (,). Exemplo: {"Key1": "v1", "fds":"fdsf"}. O valor padrão é um par de chaves vazias ({}).

  • Se SecretType for definido como Redis, configure os seguintes campos no parâmetro ExtendedConfig:

    • SecretSubType: obrigatório. Subtipo do segredo. Valores válidos:

      • DoubleUsers: o KMS gerencia o segredo do ApsaraDB for Redis no modo de conta dupla. Uma conta é referenciada pela versão ACSCurrent e a outra pela versão ACSPrevious. Durante a rotação do segredo, a senha da conta referenciada pela versão ACSPrevious é redefinida para uma nova senha aleatória. Em seguida, o KMS alterna as contas referenciadas entre as versões ACSCurrent e ACSPrevious.

    • AccountName: obrigatório. Nome de usuário da conta usada para fazer login no banco de dados do ApsaraDB for Redis.

    • CloneAccountName: obrigatório. Nome de usuário da conta do banco de dados do ApsaraDB for Redis, que corresponde ao valor de AccountName acrescido do sufixo _clone.

    • AccountPrivilege: obrigatório. Permissões para acessar o banco de dados do ApsaraDB for Redis.

    • InstanceId: obrigatório. ID da instância do ApsaraDB for Redis.

    • RegionId: obrigatório. ID da região onde reside a instância do ApsaraDB for Redis.

    • CustomData: opcional. Dados personalizados. O valor é uma coleção de pares chave-valor no formato JSON. É possível especificar até 10 pares chave-valor. Separe vários pares chave-valor com vírgulas (,). Exemplo: {"Key1": "v1", "fds":"fdsf"}. O valor padrão é um par de chaves vazias ({}).

  • Se SecretType for definido como RAMCredentials, configure os seguintes campos no parâmetro ExtendedConfig:

    • SecretSubType: obrigatório. Subtipo do segredo. Defina o valor como RamUserAccessKey.

    • UserName: obrigatório. Nome do usuário RAM.

    • CustomData: opcional. Dados personalizados. O valor é uma coleção de pares chave-valor no formato JSON. É possível especificar até 10 pares chave-valor. Separe vários pares chave-valor com vírgulas (,). O valor padrão é um par de chaves vazias ({}).

  • Se SecretType for definido como ECS, configure os seguintes campos no parâmetro ExtendedConfig:

    • SecretSubType: obrigatório. Subtipo do segredo. Valores válidos:

      • Password: senha usada para fazer login na instância do ECS.

      • SSHKey: chave pública e chave privada SSH usadas para fazer login na instância do ECS.

    • RegionId: obrigatório. ID da região onde reside a instância do ECS.

    • InstanceId: obrigatório. ID da instância do ECS.

    • CustomData: opcional. Dados personalizados. O valor é uma coleção de pares chave-valor no formato JSON. É possível especificar até 10 pares chave-valor. Separe vários pares chave-valor com vírgulas (,). O valor padrão é um par de chaves vazias ({}).

  • Se SecretType for definido como PolarDB, configure os seguintes campos no parâmetro ExtendedConfig:

    • SecretSubType: obrigatório. Defina o valor como DoubleUsers.

    • RegionId: obrigatório. ID da região onde reside o cluster do PolarDB.

    • DBClusterId: obrigatório. ID do cluster do PolarDB.

    • DBType: obrigatório. Mecanismo de banco de dados do cluster do PolarDB. Defina o valor como MySQL ou PostgreSQL.

    • AccountName: obrigatório. Nome de usuário da conta usada para login.

    • CloneAccountName: nome de usuário da conta, que corresponde ao valor de AccountName acrescido do sufixo _clone.

    • AccountType: tipo da conta. Defina o valor como Normal.

    • AccountPrivilege: permissões da conta. Especifique este campo apenas quando o campo DBType estiver definido como MySQL.

    • DBName: nome do banco de dados. Especifique este campo apenas quando o campo DBType estiver definido como MySQL.

    • CustomData: opcional. Dados personalizados. O valor é uma coleção de pares chave-valor no formato JSON. É possível especificar até 10 pares chave-valor. Separe vários pares chave-valor com vírgulas (,). Exemplo: {"Key1": "v1", "fds":"fdsf"}. O valor padrão é um par de chaves vazias ({}).

Nota

Se SecretType for definido como Rds, Redis, PolarDB, RAMCredentials ou ECS, este parâmetro será obrigatório.

EnableAutomaticRotation

Boolean

Não

true

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

  • true

  • false (padrão)

Nota

Este parâmetro só tem efeito quando SecretType é definido como Rds, PolarDB, Redis, RAMCredentials ou ECS. Se SecretType for definido como Generic, a rotação automática não terá suporte. Chame a operação PutSecretValue para rotacionar manualmente um segredo genérico.

RotationInterval

String

Não

30d

Intervalo para rotação automática. Valores válidos: de 6 horas a 8.760 horas (365 dias).

O valor está no formato integer[unit]. integer indica o período de tempo. unit indica a unidade do período de tempo.

A unidade pode ser d (dia), h (hora), m (minuto) ou s (segundo). Se o valor for 7d ou 604800s, a rotação automática ocorrerá em um intervalo de 7 dias.

Nota

Este parâmetro é obrigatório apenas quando EnableAutomaticRotation estiver definido como true.

DKMSInstanceId

String

Não

kst-bjj62d8f5e0sgtx8h****

ID da instância do KMS.

Policy

String

Não

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

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

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

Uma política de segredo contém o seguinte conteúdo:

  • Version: versão da política do segredo. Defina o valor como 1.

  • Statement: instrução da política do segredo. Cada política contém uma ou mais instruções.

Exemplo:

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

Descrição da instrução:

  • Sid: opcional. Identificador de uma instrução personalizada. O valor pode ter até 128 caracteres e conter letras, dígitos e os seguintes caracteres especiais: _ / + = . @ -

  • Effect: obrigatório. Especifica se as permissões em uma instrução de política são permitidas ou negadas. Valores válidos: Allow e Deny.

  • Principal: obrigatório. Principal de autorização da política. Os seguintes principais têm suporte: a conta atual da Alibaba Cloud à qual o segredo pertence, usuários e funções RAM da conta atual da Alibaba Cloud, além de usuários e funções RAM de outras contas da Alibaba Cloud.

  • Action: obrigatório. Operação de API a ser permitida ou negada. O valor deve começar com kms:. Para obter mais informações sobre o escopo da operação de API, consulte Visão geral. Se você especificar uma operação de API fora do escopo, a política não terá efeito.

  • Resource: obrigatório. Defina o valor como um asterisco (*), que especifica o segredo atual.

  • Condition: opcional. Especifique as condições necessárias para que uma política tenha efeito. As condições permitem avaliar o contexto de uma solicitação de API para determinar se uma instrução de política se aplica. Formato: "Condition": {"condition operator": {"condition key": "condition value"}}. Para obter mais informações, consulte Visão geral.

Nota

Se você conceder a um usuário ou função RAM de outras contas da Alibaba Cloud as permissões para usar um segredo, use a conta da Alibaba Cloud desse usuário ou função RAM para conceder as permissões correspondentes no RAM. Para obter mais informações, consulte Políticas personalizadas, Conceder permissões a um usuário RAM e Conceder permissões a uma função RAM.

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

Parâmetros de resposta

Parâmetro

Tipo

Exemplo

Descrição

RequestId

String

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

ID da solicitação.

AutomaticRotation

String

Enabled

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

  • Enabled: indica que a rotação automática está ativada.

  • Disabled: indica que a rotação automática está desativada.

  • Invalid: indica que o status da rotação automática está anormal. Nesse caso, o Secrets Manager não consegue rotacionar o segredo automaticamente.

Nota

Se SecretType estiver definido como Rds, Redis, PolarDB, RAMCredentials ou ECS, este parâmetro será retornado.

SecretName

String

mydbconninfo

Nome do segredo.

VersionId

String

v1

Número da versão do segredo.

NextRotationDate

String

2023-07-06T18:22:03Z

Hora em que a próxima rotação será executada.

Nota

Se a rotação automática estiver ativada, este parâmetro será retornado.

SecretType

String

Rds

Tipo do segredo. Valores válidos:

  • Generic: segredo genérico.

  • Rds: segredo do ApsaraDB RDS.

  • Redis: segredo do ApsaraDB for Redis.

  • RAMCredentials: segredo do RAM.

  • ECS: segredo do ECS.

  • PolarDB: segredo do PolarDB.

RotationInterval

String

604800s

Intervalo para rotação automática.

O valor está no formato integer[unit]. integer indica o período de tempo. unit indica a unidade do período de tempo. O valor de unit é fixo como s, que indica segundos. Se o valor for 604800s, a rotação automática ocorrerá em um intervalo de 7 dias.

Nota

Se a rotação automática estiver ativada, este parâmetro será retornado.

Arn

String

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

Alibaba Cloud Resource Name (ARN) do segredo.

ExtendedConfig

String

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

Configuração estendida do segredo.

Nota

Se SecretType estiver definido como Rds, Redis, PolarDB, RAMCredentials ou ECS, este parâmetro será retornado.

DKMSInstanceId

String

kst-bjj62d8f5e0sgtx8h****

ID da instância do KMS.

Exemplos

Exemplos de solicitações

http(s)://[Endpoint]/?Action=CreateSecret
&SecretName=mydbconninfo
&VersionId=v1
&EncryptionKeyId=key-gzz63ff0db5hg3qje****
&SecretData={"Accounts":[{"AccountName":"user1","AccountPassword":"****"}]}
&SecretDataType=text
&Description=mydbinfo
&Tags=[{\"TagKey\":\"key1\",\"TagValue\":\"val1\"},{\"TagKey\":\"key2\",\"TagValue\":\"val2\"}]
&SecretType=Rds
&EnableAutomaticRotation=true
&RotationInterval=30d
&DKMSInstanceId=kst-bjj62d8f5e0sgtx8h****
&Policy={"Version":"1","Statement": [{"Sid":"kms default secret policy","Effect":"Allow","Principal":{"RAM": ["acs:ram::119285303511****:*"]},"Action":["kms:*"],"Resource": ["*"] }] }
&<Common request parameters>

Exemplos de respostas de sucesso

XML formato

HTTP/1.1 200 OK
Content-Type:application/xml

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

JSON formato

HTTP/1.1 200 OK
Content-Type:application/json

{
  "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.

A operação não tem suporte.

400

Rejected.LimitExceeded

The request was rejected because user create resource limit was exceeded

A solicitação foi rejeitada porque o limite de criação de recursos do usuário foi excedido.

400

InvalidParameter

The specified parameter is not valid.

Um valor inválido foi especificado para o parâmetro.

400

Rejected.ShareQuotaExceedLimit

Instance Share Quota Exceed Limit.

A cota de gerenciamento de acesso foi excedida.

403

Forbidden.DKMSInstanceNotFound

The specified DKMS Instance is not found.

Sua instância dedicada do KMS não foi encontrada.

404

Forbidden.ResourceNotFound

The resource is not found.

O recurso especificado não existe.

409

Rejected.ResourceExist

The resource already exists.

O recurso especificado já existe.

409

Rejected.ResourceInDeleteWindow

The secret is planned to be deleted.

O segredo está programado para exclusão.

500

InternalFailure

Internal Failure

Ocorreu um erro interno.

Para obter uma lista de códigos de erro, consulte Códigos de erro do serviço.