Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add KMS driver guide to 3.x docs #835

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

soren-da
Copy link
Contributor

No description provided.

@soren-da soren-da requested review from a team as code owners November 13, 2024 10:50
Comment on lines +17 to +23
The Canton protocol relies on a number of cryptographic operations such as
asymmetric encryption and digital signatures. To maximize the
operational security of a Canton node the corresponding private keys should not
be stored or processed in cleartext. A Key Management System (KMS) or Hardware
Security Module (HSM) allows us to perform such cryptographic operations where
the private key resides securely inside the KMS/HSM. All nodes in Canton can
make use of a KMS.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The Canton protocol relies on a number of cryptographic operations such as
asymmetric encryption and digital signatures. To maximize the
operational security of a Canton node the corresponding private keys should not
be stored or processed in cleartext. A Key Management System (KMS) or Hardware
Security Module (HSM) allows us to perform such cryptographic operations where
the private key resides securely inside the KMS/HSM. All nodes in Canton can
make use of a KMS.
The Canton protocol relies on cryptographic operations such as
asymmetric encryption and digital signatures. To maximize the
operational security of a Canton node the corresponding private keys should not
be stored or processed in cleartext. A Key Management System (KMS) or Hardware
Security Module (HSM) allows you to perform cryptographic operations where
the private key resides securely inside the KMS/HSM. All nodes in Canton can
make use of a KMS.

make use of a KMS.

AWS KMS and Google Cloud KMS are supported as of Canton v2.7. To broaden the
support of other KMSs and HSMs, Canton v2.9 introduces a plugin approach, called
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
support of other KMSs and HSMs, Canton v2.9 introduces a plugin approach, called
support of other KMSs and HSMs, Canton v2.9 introduces a plug-in approach, called

Comment on lines +30 to +31
run with a KMS driver. An implementation needs to be developed for the JVM,
currently only Scala is supported.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
run with a KMS driver. An implementation needs to be developed for the JVM,
currently only Scala is supported.
run with a KMS Driver. Currently, the KMS Driver is only available in a Scala implementation.

Comment on lines +38 to +42
1. Driver Factory: Implements how a driver is instantiated and the main entry
point for Canton to load a driver.

2. KMS Driver: The actual KMS driver API that offers cryptographic operations
based on the KMS.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. Driver Factory: Implements how a driver is instantiated and the main entry
point for Canton to load a driver.
2. KMS Driver: The actual KMS driver API that offers cryptographic operations
based on the KMS.
- Driver Factory: Implements how a driver is instantiated; the main entry
point for Canton to load a driver.
- KMS Driver: Offers cryptographic operations based on the KMS.

Comment on lines +45 to +46
change to either the factory or driver APIs will result in a new major version
of those APIs. The current and only version is **v1**, which is part of the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
change to either the factory or driver APIs will result in a new major version
of those APIs. The current and only version is **v1**, which is part of the
change to either the factory or driver APIs results in a new major version
of those APIs. The current and only version is **v1**, which is part of the

failed with a ``KmsDriverException``. When the exception's flag retryable is
true the caller side, i.e., Canton, performs a retry with exponential
backoff. This behavior is suitable for transient errors, such as network issues,
resource exhaustion etc.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
resource exhaustion etc.
resource exhaustion, etc.

Comment on lines +176 to +177
The major part of the implementation is the ``v1.KmsDriver`` that is specific to
the KMS/HSM to be integrated with. The supported key and algorithm
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The major part of the implementation is the ``v1.KmsDriver`` that is specific to
the KMS/HSM to be integrated with. The supported key and algorithm
The major part of the implementation is the ``v1.KmsDriver`` specific to
the KMS/HSM to be integrated with. The supported key and algorithm

:end-before: user-manual-entry-end: AwsKmsDriverTest

Generating new keys can be expensive when running tests during
development, in particular when using cloud-based KMSs. To mitigate this, the test
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
development, in particular when using cloud-based KMSs. To mitigate this, the test
development, particularly with cloud-based KMSs. To mitigate this, the test

KmsDriverFactoryTest
^^^^^^^^^^^^^^^^^^^^

The test suite for the KMS driver factory is structured similarly to the above:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The test suite for the KMS driver factory is structured similarly to the above:
The test suite for the KMS Driver factory is structured similarly to the above:

Run Canton with a KMS Driver
----------------------------

Configure Canton to run with a KMS driver, for example, for a
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Configure Canton to run with a KMS driver, for example, for a
Configure Canton to run with a KMS Driver, for example, for a

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants