Yandex Cloud
Search
Contact UsGet started
  • Blog
  • Pricing
  • Documentation
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • ML & AI
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Customer Stories
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Education and Science
    • Yandex Cloud Partner program
  • Blog
  • Pricing
  • Documentation
© 2025 Direct Cursus Technology L.L.C.
Yandex Key Management Service
  • Getting started
  • Access management
  • Pricing policy
  • Terraform reference
    • Authentication with the API
      • Overview
        • Overview
        • Create
        • Get
        • List
        • ListVersions
        • Update
        • Delete
        • SetPrimaryVersion
        • ScheduleVersionDestruction
        • CancelVersionDestruction
        • Rotate
        • ListOperations
        • ListAccessBindings
        • SetAccessBindings
        • UpdateAccessBindings
  • Monitoring metrics
  • Audit Trails events
  • FAQ

In this article:

  • gRPC request
  • CreateSymmetricKeyRequest
  • operation.Operation
  • CreateSymmetricKeyMetadata
  • SymmetricKey
  • SymmetricKeyVersion
  1. API reference
  2. gRPC
  3. SymmetricKey
  4. Create

Key Management Service API, gRPC: SymmetricKeyService.Create

Written by
Yandex Cloud
Updated at April 24, 2025
  • gRPC request
  • CreateSymmetricKeyRequest
  • operation.Operation
  • CreateSymmetricKeyMetadata
  • SymmetricKey
  • SymmetricKeyVersion

Creates a symmetric KMS key in the specified folder.

gRPC requestgRPC request

rpc Create (CreateSymmetricKeyRequest) returns (operation.Operation)

CreateSymmetricKeyRequestCreateSymmetricKeyRequest

{
  "folder_id": "string",
  "name": "string",
  "description": "string",
  "labels": "map<string, string>",
  "default_algorithm": "SymmetricAlgorithm",
  "rotation_period": "google.protobuf.Duration",
  "deletion_protection": "bool"
}

Field

Description

folder_id

string

Required field. ID of the folder to create a symmetric KMS key in.

name

string

Name of the key.

description

string

Description of the key.

labels

object (map<string, string>)

Custom labels for the symmetric KMS key as key:value pairs. Maximum 64 per key.
For example, "project": "mvp" or "source": "dictionary".

default_algorithm

enum SymmetricAlgorithm

Required field. Encryption algorithm to be used with a new key version, generated with the next rotation.

  • SYMMETRIC_ALGORITHM_UNSPECIFIED
  • AES_128: AES algorithm with 128-bit keys.
  • AES_192: AES algorithm with 192-bit keys.
  • AES_256: AES algorithm with 256-bit keys.
  • AES_256_HSM: AES algorithm with 256-bit keys hosted by HSM

rotation_period

google.protobuf.Duration

Interval between automatic rotations. To disable automatic rotation, don't include
this field in the creation request.

deletion_protection

bool

Flag that inhibits deletion of the symmetric KMS key

operation.Operationoperation.Operation

{
  "id": "string",
  "description": "string",
  "created_at": "google.protobuf.Timestamp",
  "created_by": "string",
  "modified_at": "google.protobuf.Timestamp",
  "done": "bool",
  "metadata": {
    "key_id": "string",
    "primary_version_id": "string"
  },
  // Includes only one of the fields `error`, `response`
  "error": "google.rpc.Status",
  "response": {
    "id": "string",
    "folder_id": "string",
    "created_at": "google.protobuf.Timestamp",
    "name": "string",
    "description": "string",
    "labels": "map<string, string>",
    "status": "Status",
    "primary_version": {
      "id": "string",
      "key_id": "string",
      "status": "Status",
      "algorithm": "SymmetricAlgorithm",
      "created_at": "google.protobuf.Timestamp",
      "primary": "bool",
      "destroy_at": "google.protobuf.Timestamp",
      "hosted_by_hsm": "bool"
    },
    "default_algorithm": "SymmetricAlgorithm",
    "rotated_at": "google.protobuf.Timestamp",
    "rotation_period": "google.protobuf.Duration",
    "deletion_protection": "bool"
  }
  // end of the list of possible fields
}

An Operation resource. For more information, see Operation.

Field

Description

id

string

ID of the operation.

description

string

Description of the operation. 0-256 characters long.

created_at

google.protobuf.Timestamp

Creation timestamp.

created_by

string

ID of the user or service account who initiated the operation.

modified_at

google.protobuf.Timestamp

The time when the Operation resource was last modified.

done

bool

If the value is false, it means the operation is still in progress.
If true, the operation is completed, and either error or response is available.

metadata

CreateSymmetricKeyMetadata

Service-specific metadata associated with the operation.
It typically contains the ID of the target resource that the operation is performed on.
Any method that returns a long-running operation should document the metadata type, if any.

error

google.rpc.Status

The error result of the operation in case of failure or cancellation.

Includes only one of the fields error, response.

The operation result.
If done == false and there was no failure detected, neither error nor response is set.
If done == false and there was a failure detected, error is set.
If done == true, exactly one of error or response is set.

response

SymmetricKey

The normal response of the operation in case of success.
If the original method returns no data on success, such as Delete,
the response is google.protobuf.Empty.
If the original method is the standard Create/Update,
the response should be the target resource of the operation.
Any method that returns a long-running operation should document the response type, if any.

Includes only one of the fields error, response.

The operation result.
If done == false and there was no failure detected, neither error nor response is set.
If done == false and there was a failure detected, error is set.
If done == true, exactly one of error or response is set.

CreateSymmetricKeyMetadataCreateSymmetricKeyMetadata

Field

Description

key_id

string

ID of the key being created.

primary_version_id

string

ID of the primary version of the key being created.

SymmetricKeySymmetricKey

A symmetric KMS key that may contain several versions of the cryptographic material.

Field

Description

id

string

ID of the key.

folder_id

string

ID of the folder that the key belongs to.

created_at

google.protobuf.Timestamp

Time when the key was created.

name

string

Name of the key.

description

string

Description of the key.

labels

object (map<string, string>)

Custom labels for the key as key:value pairs. Maximum 64 per key.

status

enum Status

Current status of the key.

  • STATUS_UNSPECIFIED
  • CREATING: The key is being created.
  • ACTIVE: The key is active and can be used for encryption and decryption.
    Can be set to INACTIVE using the SymmetricKeyService.Update method.
  • INACTIVE: The key is inactive and unusable.
    Can be set to ACTIVE using the SymmetricKeyService.Update method.

primary_version

SymmetricKeyVersion

Primary version of the key, used as the default for all encrypt/decrypt operations,
when no version ID is specified.

default_algorithm

enum SymmetricAlgorithm

Default encryption algorithm to be used with new versions of the key.

  • SYMMETRIC_ALGORITHM_UNSPECIFIED
  • AES_128: AES algorithm with 128-bit keys.
  • AES_192: AES algorithm with 192-bit keys.
  • AES_256: AES algorithm with 256-bit keys.
  • AES_256_HSM: AES algorithm with 256-bit keys hosted by HSM

rotated_at

google.protobuf.Timestamp

Time of the last key rotation (time when the last version was created).
Empty if the key does not have versions yet.

rotation_period

google.protobuf.Duration

Time period between automatic key rotations.

deletion_protection

bool

Flag that inhibits deletion of the key

SymmetricKeyVersionSymmetricKeyVersion

Symmetric KMS key version: metadata about actual cryptographic data.

Field

Description

id

string

ID of the key version.

key_id

string

ID of the symmetric KMS key that the version belongs to.

status

enum Status

Status of the key version.

  • STATUS_UNSPECIFIED
  • ACTIVE: The version is active and can be used for encryption and decryption.
  • SCHEDULED_FOR_DESTRUCTION: The version is scheduled for destruction, the time when it will be destroyed
    is specified in the SymmetricKeyVersion.destroy_at field.
  • DESTROYED: The version is destroyed and cannot be recovered.

algorithm

enum SymmetricAlgorithm

Encryption algorithm that should be used when using the key version to encrypt plaintext.

  • SYMMETRIC_ALGORITHM_UNSPECIFIED
  • AES_128: AES algorithm with 128-bit keys.
  • AES_192: AES algorithm with 192-bit keys.
  • AES_256: AES algorithm with 256-bit keys.
  • AES_256_HSM: AES algorithm with 256-bit keys hosted by HSM

created_at

google.protobuf.Timestamp

Time when the key version was created.

primary

bool

Indication of a primary version, that is to be used by default for all cryptographic
operations that don't have a key version explicitly specified.

destroy_at

google.protobuf.Timestamp

Time when the key version is going to be destroyed. Empty unless the status
is SCHEDULED_FOR_DESTRUCTION.

hosted_by_hsm

bool

Indication of the version that is hosted by HSM.

Was the article helpful?

Previous
Overview
Next
Get
© 2025 Direct Cursus Technology L.L.C.