This document outlines important security considerations for the Kubernetes Pizza Observability project, particularly when sharing or deploying the code.
This project contains several types of sensitive information that should NEVER be committed to version control:
-
Terraform State and Variables
terraform.tfstatecontains sensitive Azure credentials and infrastructure detailsterraform.tfvarscontains Azure subscription IDs, tenant IDs, and service principal credentials- Use a secure backend for Terraform state (Azure Storage, HashiCorp Consul)
-
Environment Files
.envfiles contain Slack tokens and signing secretslocal.settings.jsonandcontainer.settings.jsoncontain Azure Function configuration- Use the provided
.env.exampleand*.settings.json.examplefiles as templates
-
Kubernetes Secrets
dominos-payment-secret.yamlcontains payment information- Use the provided
dominos-payment-secret.example.yamlas a template
-
Use Environment Templates
- Copy the
.examplefiles and fill in your actual credentials - Keep the actual configuration files local and never commit them
- Copy the
-
Utilize .gitignore
- A
.gitignorefile has been provided to prevent accidental commits of sensitive files - Verify that sensitive files are properly excluded before pushing
- A
-
Secrets Management in Production
- For production deployments, consider using:
- Azure Key Vault for Azure-related secrets
- Kubernetes Secrets for cluster configuration
- HashiCorp Vault for comprehensive secrets management
- For production deployments, consider using:
-
Rotate Credentials Regularly
- Implement a process for regular rotation of:
- Service principal credentials
- API keys and tokens
- Webhook URLs
- Implement a process for regular rotation of:
-
Local Development
- Use local environment files for development
- Never share your local configuration files
-
CI/CD Pipeline
- Use secure environment variables in your CI/CD pipeline
- Never print secrets in logs
- Consider using dedicated security scanning tools
-
Code Review
- Implement a thorough code review process
- Verify no credentials are hardcoded or committed
If you discover a security vulnerability in this project, please report it responsibly by:
- Do not create a public GitHub issue
- Contact the project maintainers directly
- Provide details of the vulnerability and steps to reproduce