すべてのプロダクト
Search
ドキュメントセンター

:CreateSecret

最終更新日:Aug 21, 2025

シークレットを作成し、その初期バージョンを保存します。

操作説明

  • Resource Access Management ( RAM ) ユーザーまたは RAM ロールがこの操作を呼び出すために必要なアクセス ポリシーについては、「Resource Access Management」をご参照ください。

  • シークレット名、初期バージョンのシークレット値、およびバージョン番号を指定します。 初期バージョンには ACSCurrent ステージラベルが付きます。

  • Key Management Service ( KMS ) は、指定したキーを使用してシークレット値を暗号化します。 キーとシークレットは同じ KMS インスタンスに存在する必要があります。 キーは対称キーである必要があります。

    説明

    KMS は各バージョンのシークレット値を暗号化します。 シークレット名、バージョン番号、バージョンステージラベルなどのメタデータは暗号化されません。

  • シークレット値を暗号化する前に、キーに対する kms:GenerateDataKey 権限を持っている必要があります。

このトピックでは、RDS シークレットを作成する例を示します。 シークレットの名前は mydbconninfo です。 初期バージョンの VersionIdv1 です。 SecretData{"Accounts":[{"AccountName":"user1","AccountPassword":"****"}]} です。

今すぐお試しください

この API を OpenAPI Explorer でお試しください。手作業による署名は必要ありません。呼び出しに成功すると、入力したパラメーターに基づき、資格情報が組み込まれた SDK コードが自動的に生成されます。このコードをダウンロードしてローカルで使用できます。

テスト

RAM 認証

この操作の認証情報はありません。問題が発生した場合は、アカウントマネージャーにご連絡ください。

リクエストパラメーター

パラメーター

必須 / 任意

説明

SecretName

string

必須

シークレットの名前。 名前は同じリージョン内で一意である必要があります。 名前は最大 192 文字で、文字、数字、アンダースコア ( _ )、スラッシュ ( / )、プラス記号 ( + )、等号 ( = )、ピリオド ( . )、ハイフン ( - )、およびアットマーク ( @ ) を使用できます。 各種シークレットのシークレット名には、以下の制限が適用されます。

  • SecretType が Generic、Rds、または Redis に設定されている場合、名前は acs/ で始めることはできません。

  • SecretType が RAMCredentials に設定されている場合、このパラメーターを固定値 $Auto に設定します。 この場合、KMS は acs/ram/user/ で始まり、RAM ユーザーの表示名が含まれるシークレット名を自動的に生成します。

  • SecretType が ECS に設定されている場合、名前は acs/ecs/ で始める必要があります。

mydbconninfo

VersionId

string

必須

初期バージョンのバージョン番号。 バージョン番号は、シークレット内で一意である必要があります。 バージョン番号は最大 64 文字です。

v1

EncryptionKeyId

string

任意

シークレット値の暗号化に使用するキーの ID。

説明

キーとシークレットは同じ KMS インスタンスに存在する必要があります。 キーは対称キーである必要があります。

key-gzz63ff0db5hg3qje****

SecretData

string

必須

シークレットの値。 値は最大 30,720 バイト ( 30 KB ) です。 KMS は指定されたキーでシークレット値を暗号化し、暗号化された値を初期バージョンに保存します。

  • SecretType が Generic に設定されている場合、カスタム シークレット値を指定できます。

  • SecretType が Rds に設定されている場合、シークレット値は {"Accounts":[{"AccountName":"","AccountPassword":""}]} 形式である必要があります。 この形式では、AccountName は RDS インスタンスのアカウントのユーザー名を指定し、AccountPassword はアカウントのパスワードを指定します。

  • SecretType が Redis に設定されている場合、このパラメーターを $Auto に設定します。

  • SecretType が RAMCredentials に設定されている場合、シークレット値は {"AccessKeys":[{"AccessKeyId":"","AccessKeySecret":""}]} 形式である必要があります。 この形式では、AccessKeyId は AccessKey ID を指定し、AccessKeySecret は AccessKey シークレットを指定します。 RAM ユーザーのすべての AccessKey ペアを指定する必要があります。

  • SecretType が PolarDB に設定されている場合、このパラメーターを $Auto に設定します。

  • SecretType が ECS に設定されている場合、シークレット値は次のいずれかの形式である必要があります。

    • ExtendedConfig パラメーターの SecretSubType が Password に設定されている場合: {"UserName":"","Password": ""}。 この形式では、UserName は ECS インスタンスへのログインに使用するユーザー名を指定し、Password は ECS インスタンスへのログインに使用するパスワードを指定します。

    • ExtendedConfig パラメーターの SecretSubType が SSHKey に設定されている場合: {"UserName":"","PublicKey": "", "PrivateKey": ""}。 この形式では、PublicKey は ECS インスタンスへのログインに使用する SSH 形式の公開鍵を指定し、PrivateKey は ECS インスタンスへのログインに使用する秘密鍵を指定します。

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

SecretDataType

string

任意

シークレット値のタイプ。 有効な値:

  • text ( デフォルト ): シークレット値はテキスト文字列です。

  • binary: シークレット値はバイナリ文字列です。

説明

SecretType が Rds、Redis、PolarDB、RAMCredentials、または ECS に設定されている場合、SecretDataType は text に設定する必要があります。

text

Description

string

任意

シークレットの説明。

mydbinfo

Tags

string

任意

シークレットのタグ。 各タグはキーと値のペアで構成されます。 タグは、タグキーとタグ値で構成されます。
タグキーとタグ値は最大 128 文字で、文字、数字、スラッシュ ( / )、バックスラッシュ ( \ )、アンダースコア ( _ )、ハイフン ( - )、ピリオド ( . )、プラス記号 ( + )、等号 ( = )、コロン ( : )、およびアットマーク ( @ ) を使用できます。

タグキーとタグ値には、英字、数字、スラッシュ (/)、バックスラッシュ (\)、アンダースコア (_)、ハイフン (-)、ピリオド (.)、プラス記号 (+)、等号 (=)、コロン (:)、アットマーク (@) を使用でき、長さは最大 128 文字です。

  • タグキーは aliyun または acs: で始めることはできません。

  • シークレットごとに最大 20 個のキーと値のペアを指定できます。

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

SecretType

string

任意

シークレットのタイプ。 有効な値:

  • Generic ( デフォルト ): 汎用シークレット。

  • Rds: RDS シークレット。

  • Redis: Redis シークレット。

  • RAMCredentials: RAM シークレット。

  • ECS: ECS シークレット。

  • PolarDB: PolarDB シークレット。

Rds

ExtendedConfig

object

任意

シークレットの拡張構成。 このパラメーターは、特定タイプのシークレットのプロパティを指定します。 値は最大 1,024 文字です。

  • SecretType が Generic に設定されている場合、このパラメーターは無視されます。

  • SecretType が Rds に設定されている場合、ExtendedConfig に次のパラメーターを指定する必要があります。

    • SecretSubType ( 必須 ): シークレットのサブタイプ。 有効な値:

      • SingleUser: Secrets Manager は、単一アカウントモードで RDS シークレットを管理します。 シークレットがローテーションされると、指定されたアカウントのパスワードは新しいランダムなパスワードにリセットされます。

      • DoubleUsers: Secrets Manager は、ダブルアカウントモードで RDS シークレットを管理します。 ACSCurrent と ACSPrevious はいずれかのアカウントを指します。 シークレットがローテーションされると、ACSPrevious が指すアカウントのパスワードは新しいランダムなパスワードにリセットされます。 その後、Secrets Manager は ACSCurrent と ACSPrevious が指すアカウントを入れ替えます。

    • DBInstanceId ( 必須 ): アカウントが属する RDS インスタンスの ID。

    • CustomData ( オプション ): カスタムデータ。 値は JSON 形式のキーと値のペアです。 最大 10 個のキーと値のペアを指定できます。 複数のキーと値のペアはコンマ ( , ) で区切ります。 例: {"Key1": "v1", "fds":"fdsf"}。 デフォルト値は {} です。

  • SecretType が Redis に設定されている場合、ExtendedConfig に次のパラメーターを指定する必要があります。

    • SecretSubType ( 必須 ): シークレットのサブタイプ。 有効な値:
      • DoubleUsers: Secrets Manager は、ダブルアカウントモードで Redis シークレットを管理します。 ACSCurrent と ACSPrevious はいずれかのアカウントを指します。 シークレットがローテーションされると、ACSPrevious が指すアカウントのパスワードは新しいランダムなパスワードにリセットされます。 その後、Secrets Manager は ACSCurrent と ACSPrevious が指すアカウントを入れ替えます。

    • AccountName ( 必須 ): データベース ユーザー名。

    • CloneAccountName ( 必須 ): データベース ユーザー名。 AccountName の値に _clone サフィックスが付いたものです。

    • AccountPrivilege ( 必須 ): データベースにアクセスするための権限。

    • InstanceId ( 必須 ): Redis インスタンスの ID。

    • RegionId ( 必須 ): Redis インスタンスが存在するリージョンの ID。

    • CustomData ( オプション ): カスタムデータ。 値は JSON 形式のキーと値のペアです。 最大 10 個のキーと値のペアを指定できます。 複数のキーと値のペアはコンマ ( , ) で区切ります。 例: {"Key1": "v1", "fds":"fdsf"}。 デフォルト値は {} です。

  • SecretType が RAMCredentials に設定されている場合、ExtendedConfig に次のパラメーターを指定する必要があります。

    • SecretSubType ( 必須 ): シークレットのサブタイプ。 値は RamUserAccessKey です。

    • UserName ( 必須 ): RAM ユーザーの名前。

    • CustomData ( オプション ): カスタムデータ。 値は JSON 形式のキーと値のペアです。 最大 10 個のキーと値のペアを指定できます。 複数のキーと値のペアはコンマ ( , ) で区切ります。 デフォルト値は {} です。

  • SecretType が ECS に設定されている場合、ExtendedConfig に次のパラメーターを指定する必要があります。

    • SecretSubType ( 必須 ): シークレットのサブタイプ。 有効な値:

      • Password: ECS パスワード。

      • SSHKey: ECS SSH キーペア。

    • RegionId ( 必須 ): ECS インスタンスが存在するリージョンの ID。

    • InstanceId ( 必須 ): ECS インスタンスの ID。

    • CustomData ( オプション ): カスタムデータ。 値は JSON 形式のキーと値のペアです。 最大 10 個のキーと値のペアを指定できます。 複数のキーと値のペアはコンマ ( , ) で区切ります。 デフォルト値は {} です。

  • SecretType が PolarDB に設定されている場合、ExtendedConfig に次のパラメーターを指定する必要があります。

    • SecretSubType ( 必須 ): 固定値は DoubleUsers です。

    • RegionId ( 必須 ): リージョン。

    • DBClusterId ( 必須 ): PolarDB インスタンスの ID。

    • DBType ( 必須 ): MySQL または PostgreSQL。

    • AccountName ( 必須 ): アカウント名。

    • CloneAccountName: 値は AccountName_clone です。

    • AccountType: Normal のみがサポートされています。

    • AccountPrivilege: このパラメーターは MySQL でのみ使用できます。

    • DBName: このパラメーターは MySQL でのみ使用できます。

    • CustomData ( オプション ): カスタムデータ。 値は JSON 形式のキーと値のペアです。 最大 10 個のキーと値のペアを指定できます。 複数のキーと値のペアはコンマ ( , ) で区切ります。 例: {"Key1": "v1", "fds":"fdsf"}。 デフォルト値は {} です。

説明

SecretType が Rds、Redis、PolarDB、RAMCredentials、または ECS に設定されている場合、このパラメーターを構成する必要があります。

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

EnableAutomaticRotation

boolean

任意

自動ローテーションを有効にするかどうかを指定します。 有効な値:

  • true: 自動ローテーションを有効にします。

  • false ( デフォルト ): 自動ローテーションを無効にします。

説明

このパラメーターは、SecretType が Rds、PolarDB、Redis、RAMCredentials、または ECS に設定されている場合にのみ有効です。 SecretType が Generic に設定されている場合、自動ローテーションはサポートされていません。 PutSecretValue 操作を呼び出して、シークレットを手動でローテーションできます。

true

RotationInterval

string

任意

自動ローテーションの間隔。 値の範囲は 6 時間~ 8,760 時間 ( 365 日 ) です。
値は integer[unit] 形式です。 integer は間隔を示します。 unit は時間の単位を示します。
unit の有効な値: d ( 日 )、h ( 時間 )、m ( 分 )、s ( 秒 )。 たとえば、7d と 604,800s はどちらも 7 日間のローテーション間隔を示します。




説明

EnableAutomaticRotation を true に設定した場合は、このパラメーターを指定する必要があります。 EnableAutomaticRotation を false に設定した場合は、このパラメーターを指定する必要はありません。

30d

DKMSInstanceId

string

任意

KMS インスタンスの ID。

kst-bjj62d8f5e0sgtx8h****

Policy

string

任意

シークレットポリシーの内容。 値は JSON 形式です。 値は最大 32,768 バイトです。

シークレットポリシーの詳細については、「シークレットポリシーの概要」をご参照ください。 このパラメーターを指定しない場合は、デフォルトのシークレットポリシーが使用されます。

シークレットポリシーには、次の部分が含まれています。

  • Version: シークレットポリシーのバージョン。 1 のみがサポートされています。

  • Statement: シークレットポリシーのステートメント。 各シークレットポリシーには、1 つ以上のステートメントを含めることができます。

シークレットポリシーの形式は次のとおりです。

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

ステートメントの詳細:

  • Sid: ( オプション ) ステートメントのカスタム識別子。 値は最大 128 文字で、大文字 ( A~Z )、小文字 ( a~z )、数字 ( 0~9 )、および特殊文字 ( アンダースコア ( _ )、スラッシュ ( / )、プラス記号 ( + )、等号 ( = )、ピリオド ( . )、アットマーク ( @ )、ハイフン ( - ) など ) を使用できます。

  • Effect: ( 必須 ) ポリシーステートメントの効果。 有効な値: Allow および Deny。

  • Principal: ( 必須 ) ポリシーによって承認されるプリンシパル。 現在の Alibaba Cloud アカウント ( シークレットが属するアカウント )、現在の Alibaba Cloud アカウントの RAM ユーザーまたは RAM ロール、または別の Alibaba Cloud アカウントの RAM ユーザーまたは RAM ロールを指定できます。

  • Action: ( 必須 ) 許可または拒否される API 操作。 値は "kms:" で始める必要があります。 サポートされている操作のリストについては、「シークレットポリシーの概要」をご参照ください。 リストにない操作を指定した場合、設定は有効になりません。

  • Resource: ( 必須 ) リソース。 値は * のみ可能です。これは現在の KMS シークレットを示します。

  • Condition: ( オプション ) 承認を有効にするための条件。 条件を使用して API リクエストのコンテキストを評価し、ポリシーステートメントを適用するかどうかを決定できます。 形式は "Condition": {"condition operator": {"condition key": "condition value"}} です。 詳細については、「シークレットポリシーの概要」をご参照ください。

説明

別の Alibaba Cloud アカウントの RAM ユーザーまたは RAM ロールに権限を付与した後、RAM コンソールでシークレットを使用するための権限を RAM ユーザーまたは RAM ロールに付与するには、RAM ユーザーまたは RAM ロールが属する Alibaba Cloud アカウントを使用する必要があります。 その後、RAM ユーザーまたは RAM ロールはシークレットを使用できます。 詳細については、「KMS のカスタムポリシー」、「RAM ユーザーへの権限の付与」、および「RAM ロールへの権限の付与」をご参照ください。

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

共通のリクエストパラメーターについては、「共通パラメーター」をご参照ください。

レスポンスフィールド

パラメーター

説明

object

RequestId

string

リクエストの ID。Alibaba Cloud によって生成される一意の識別子です。 この ID を使用して問題のトラブルシューティングを行うことができます。

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

AutomaticRotation

string

自動ローテーションが有効になっているかどうかを示します。 有効な値:

  • Enabled: 自動ローテーションが有効です。

  • Disabled: 自動ローテーションは無効です。

  • Invalid: ローテーション ステータスが異常です。 Secrets Manager はシークレットを自動的にローテーションできません。

説明

このパラメーターは、SecretType が Rds、Redis、PolarDB、RAMCredentials、または ECS に設定されている場合に返されます。

Enabled

SecretName

string

シークレットの名前。

mydbconninfo

VersionId

string

シークレットのバージョン番号。

v1

NextRotationDate

string

シークレットが次にローテーションされる時刻。

説明

このパラメーターは、自動ローテーションが有効になっている場合に返されます。

2023-07-06T18:22:03Z

SecretType

string

シークレットのタイプ。 有効な値:

  • Generic: 汎用シークレット。

  • Rds: RDS シークレット。

  • Redis: Redis シークレット。

  • RAMCredentials: RAM シークレット。

  • ECS: ECS シークレット。

  • PolarDB: PolarDB シークレット。

Rds

RotationInterval

string

自動ローテーションの間隔。
値は integer[unit] 形式です。 integer は間隔を示します。 unit は時間の単位を示します。 単位は s ( 秒 ) です。 たとえば、7 日間のローテーション間隔は 604800s です。

説明

このパラメーターは、自動ローテーションが有効になっている場合に返されます。

604800s

Arn

string

シークレットの Alibaba Cloud Resource Name ( ARN )。

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

ExtendedConfig

string

シークレットの拡張構成。

説明

このパラメーターは、SecretType が Rds、Redis、PolarDB、RAMCredentials、または ECS に設定されている場合に返されます。

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

DKMSInstanceId

string

KMS インスタンスの ID。

kst-bjj62d8f5e0sgtx8h****

成功レスポンス

JSONJSON

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

エラーコード

HTTP ステータスコード

エラーコード

エラーメッセージ

説明

400 UnsupportedOperation This action is not supported.
400 Rejected.LimitExceeded The request was rejected because user create resource limit was exceeded
400 InvalidParameter The specified parameter is not valid.
400 Rejected.ShareQuotaExceedLimit Instance Share Quota Exceed Limit.
500 InternalFailure Internal Failure
403 Forbidden.DKMSInstanceNotFound The specified DKMS Instance is not found.
404 Forbidden.ResourceNotFound The resource is not found.
409 Rejected.ResourceExist The resource already exists.
409 Rejected.ResourceInDeleteWindow The secret is planned to be deleted.

完全なリストについては、「エラーコード」をご参照ください。

変更履歴

完全なリストについては、「変更履歴」をご参照ください。