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.
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
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:
|
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.
|
SecretDataType | String | Não | text | Tipo do valor do segredo. Valores válidos:
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: / \ _ - . + = : @
|
SecretType | String | Não | Rds | Tipo do segredo. Valores válidos:
|
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.
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:
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 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:
Exemplo: Descrição da instrução:
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:
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:
|
RotationInterval | String | 604800s | Intervalo para rotação automática. O valor está no formato 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.