Skip to content

phoban01/rune

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

rune

Problem Statement: Secure and Efficient Secret Management in Kubernetes

Managing secrets in a Kubernetes environment can be a challenging task. Traditional approaches often involve manual handling of sensitive information, leading to potential security vulnerabilities, operational inefficiencies, and difficulties in maintaining secret integrity across various applications and microservices. Furthermore, securely retrieving and decrypting secrets while ensuring proper access control and authentication can add complexity to the overall system.

Introduction: Rune - Secure and Seamless Secret Retrieval for Kubernetes

Rune is an open-source solution designed to address the challenges of secret management in Kubernetes environments. It provides a secure and seamless approach to retrieving, decrypting, and utilizing secrets while ensuring strong access control and authentication mechanisms.

Rune integrates with Kubernetes and leverages Custom Resource Definitions (CRDs) to define secrets and their associated metadata. With Rune, secrets are stored in a secure manner, and their retrieval is facilitated through a well-defined workflow. The service employs encryption technologies, such as Tink, to ensure the confidentiality of secret data during transmission and storage.

Key Features

  • Secure Secret Retrieval: Rune securely retrieves secrets from specified sources, leveraging SPIRE for authentication and access control.
  • Efficient Decryption: Utilizing the powerful Tink encryption library, Rune efficiently decrypts secrets, ensuring the confidentiality and integrity of sensitive information.
  • Seamless Integration: Rune seamlessly integrates with Kubernetes, allowing the creation of Kubernetes secrets based on the retrieved secret data.
  • CLI Convenience: The Rune CLI client provides a user-friendly command-line interface for interacting with the Rune service, simplifying secret management tasks.
  • Flexibility and Extensibility: Rune is built with flexibility and extensibility in mind, allowing for the integration of custom key management systems and secret sources.
  • Comprehensive Documentation: Rune is accompanied by comprehensive documentation, providing clear guidelines and examples for easy adoption and usage.

Getting Started

To get started with Rune, refer to the documentation for installation instructions, usage guides, and configuration details. The documentation provides step-by-step instructions, sample YAML definitions, and CLI usage examples to assist users in effectively utilizing the Rune service for their secret management needs.

Example

apiVersion: core.rune.io/v1alpha1
kind: Secret
metadata:
  name: my-secret
  namespace: default
spec:
  interval: 1h
  serviceAccountName: ops
  path: production/db/postgres
  kms:
    google: projects/my-project/locations/global/keyRings/my-keyring/cryptoKeys/my-key
    aws: arn:aws:kms:us-west-2:123456789012:key/12345678-1234-1234-1234-123456789012

Workflow

  1. Rune Controller: Watches for Secret objects.
  2. Uses the service account to fetch credentials from SPIRE.
  3. Requests the OCI artifact from Zot.
  4. Decrypts the artifact using Tink.
  5. Creates a Kubernetes secret with the decrypted data.

Rune CLI Usage

RUNE_KMS_GOOGLE=projects/my-project/locations/global/keyRings/my-keyring/cryptoKeys/my-key
rune push ghcr.io/phoban01 production/db/postgres --from-file secret.json

Please note that the provided KMS values in this example are placeholders. Make sure to replace them with the actual KMS resource identifiers or ARNs for your specific environment and key configurations.

Community and Contributions

Rune is an open-source project, and we welcome contributions from the community. If you encounter issues, have suggestions, or would like to contribute to the project, please visit the Rune GitHub repository. We value the input and participation of the community in improving the features, functionality, and security of Rune.

License

Rune is released under the Apache License 2.0. Please refer to the LICENSE file for more details.

Acknowledgments

Rune is built upon the efforts of various open-source projects and libraries. We extend our gratitude to the contributors and maintainers of these projects for their valuable work and contributions.


Feel free to customize and enhance the README according to your project's specific details and requirements.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published