All Projects → cyralinc → approzium

cyralinc / approzium

Licence: Apache-2.0 license
Approzium allows a cloud service to authenticate to a database without ever having access to its password

Programming Languages

go
31211 projects - #10 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects
Makefile
30231 projects
HCL
1544 projects
Dockerfile
14818 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to approzium

db.rstudio.com
Website dedicated to all things R and Databases
Stars: ✭ 13 (-75.93%)
Mutual labels:  databases
beefheart
A tool to index Fastly realtime analytics metrics into Elasticsearch.
Stars: ✭ 14 (-74.07%)
Mutual labels:  observability
pgbouncer wrapper
SQL wrapper around pgbouncer's console
Stars: ✭ 18 (-66.67%)
Mutual labels:  observability
Crema
Meta data server & client tools for game development
Stars: ✭ 61 (+12.96%)
Mutual labels:  databases
theBookOfNoah
Everything ive learned developing web applications
Stars: ✭ 22 (-59.26%)
Mutual labels:  databases
open-telemetry-java-guides
Java OpenTelemetry 测试指南 :Open-Telemetry-Java-Guides 案例,用于测试常用中间件支持及 Otel 相关组件的使用情况。 可观察性Sig: https://i.cloudnative.to/observability/
Stars: ✭ 67 (+24.07%)
Mutual labels:  observability
sqbrite
SQBrite is a data recovery tool for SQLite databases
Stars: ✭ 27 (-50%)
Mutual labels:  databases
firehose
firehose: the metrics gateway for prometheus
Stars: ✭ 23 (-57.41%)
Mutual labels:  observability
grafana-operator
An operator for Grafana that installs and manages Grafana instances, Dashboards and Datasources through Kubernetes/OpenShift CRs
Stars: ✭ 449 (+731.48%)
Mutual labels:  observability
realopinsight
✔️ Measure and observe end-user applications availability - Define and track SLA/SLO targets through Prometheus-alike metrics and built-in reports - Kubernetes®, Zabbix®, Nagios®.
Stars: ✭ 55 (+1.85%)
Mutual labels:  observability
cryostat-operator
An OpenShift Operator to facilitate setup and management of Cryostast and expose the Cryostat API through Kubernetes Custom Resources.
Stars: ✭ 25 (-53.7%)
Mutual labels:  observability
slab
An extensible Scala framework for creating monitoring dashboards.
Stars: ✭ 23 (-57.41%)
Mutual labels:  observability
datadog-actions-metrics
Send GitHub Actions metrics to Datadog
Stars: ✭ 27 (-50%)
Mutual labels:  observability
skywalking-query-protocol
Query Protocol for Apache SkyWalking in GraphQL format
Stars: ✭ 45 (-16.67%)
Mutual labels:  observability
easeagent
An agent component for the Java system
Stars: ✭ 437 (+709.26%)
Mutual labels:  observability
skywalking-banyandb
An observability database aims to ingest, analyze and store Metrics, Tracing and Logging data.
Stars: ✭ 111 (+105.56%)
Mutual labels:  observability
trouble-training
FullStack DDD/CQRS with GraphQL workshop including distributed tracing and monitoring. This shows the configuration from React frontend to .Net backend.
Stars: ✭ 271 (+401.85%)
Mutual labels:  observability
sqlmetrics
Prometheus metrics for Go database/sql via VictoriaMetrics/metrics
Stars: ✭ 21 (-61.11%)
Mutual labels:  observability
nim-gatabase
Connection-Pooling Compile-Time ORM for Nim
Stars: ✭ 103 (+90.74%)
Mutual labels:  databases
STAM
STAM, Streaming Topology Analysis Method
Stars: ✭ 26 (-51.85%)
Mutual labels:  observability

Approzium

test lint Documentation Status

Approzium is a tool that provides:

  • Password-less database authentication
  • Authentication through your cloud-provider's built-in identity
  • Highly security-oriented logging and metrics

Its aim is to prevent data breaches, and to help you detect them promptly if they do occur or are attempted.


Please note: We take Approzium's security and our user's trust very seriously. If you believe you have found a security issue in Approzium, please responsibly disclose by contacting us at [email protected].

See the SECURITY guide for more details.


We currently support AWS for identity, and have a Python SDK for Postgres drivers. This project is under active development, please do stay tuned for more identity platforms, databases, and SDK languages.

Docs

See https://approzium.com/ for a Quick Start, or elaboration on the architecture and API.

Support

For questions, please either open a Github issue, or visit us in our public Slack channel.

To visit us in Slack, use this invite. Then venture to # help-and-questions. Our developers frequent our Slack forum, but are not in it at all times. Please be patient, we will lend assistance as soon as we can!

Developing

We welcome community contributions!

We use docker-compose.yml to quickly and easily provide you with a development environment that mimics real life. To spin up an end-to-end development environment based in Docker:

  • Ensure you have Docker installed with Buildkit support (Docker 18.09 or higher)
  • In your local environment, run $ aws configure and add an access key and a secret. Also, make sure that you have the AWS_REGION environment variable set, informing the AWS region that will be used. For instance:
export AWS_REGION=us-east-1
  • Then run $ make dev-env. This will build the authenticator and development Docker images. Also, it will run the authenticator with a Vault backend and the test database servers (Postgres and MySQL).
  • In another window, $ make dev. This will start a shell in the development environment.
  • You now have a full development and testing environment!
  • For example, to use our Python SDK to create an Approzium connection to a Postgres server:
    • Create an Approzium path in the test Vault backend: $ make enable-vault-path
    • Give your AWS-identity access to the test server: $ make seed-vault-addr ADDR=dbmd5:5432
    • Create a connection: $ cd sdk/python/examples && poetry run python3 psycopg2_connect.py.

Testing

Our end-to-end tests take a few minutes to run. Please run them once locally before you submit a PR.

To run the tests, first you will need to:

  • Create an AWS Role (E.g. ApproziumTestAssumableRole) thats going to be used during the tests.
  • Ensure that you are using an AWS User with at least the following permissions:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:CreateSecret",
                "secretsmanager:GetSecretValue",
                "secretsmanager:UpdateSecret",
                "secretsmanager:DeleteSecret",
                "secretsmanager:PutSecretValue"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-2:<some-account-id>:secret:approzium/*"
        },
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::<some-account-id>:role/ApproziumTestAssumableRole"
        }
    ]
}
  • Set the AWS_REGION and the TEST_ASSUMABLE_ARN environment variables, for instance:
export AWS_REGION=us-east-1 && \
export TEST_ASSUMABLE_ARN=arn:aws:iam::<some-account-id>:role/ApproziumTestAssumableRole

Then, to run the end-to-end tests, from our home directory:

  • Run make test. That's it!

Credits

This project is brought to you by Cyral, who wishes to give back to the Open Source community.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].