conjur

CyberArk Conjur automatically secures secrets used by privileged users and machine identities

Github星跟踪图

Conjur

Conjur on DockerHub
Maintainability
Test Coverage

CyberArk Commons - ask
Follow Conjur on Twitter

Conjur provides secrets management and application identity for modern infrastructure:

  • Machine Authorization Markup Language ("MAML"), a role-based
    access policy language to define system components & their roles,
    privileges and metadata
  • A REST web service to:
    • manage identity life cycles for humans and machines
    • organize and search roles and data in your secrets infrastructure
    • authorize access to resources using a sophisticated permission model
    • store secrets and make them available securely
  • Integrations throughout the cloud toolchain:
    • infrastructure as a service (IaaS)
    • configuration management
    • continuous integration and deployment (CI/CD)
    • container management and cloud orchestration

Note: our badges and social media buttons never track you.

Table of contents
generated with markdown-toc

Getting Started

Please refer to our Quick Start Guide for detailed information on using Conjur OSS for the first time, or, refer to the
Conjur docs for specific guides relating to setup, integrations, administration, and more.

Compatibility

We strongly recommend choosing the version of this project to use from the latest Conjur OSS
suite release
.
Conjur maintainers perform additional testing on the suite release versions to ensure
compatibility. When possible, upgrade your Conjur version to match the
latest suite release;
when using integrations, choose the latest suite release that matches your Conjur version.

When upgrading your Conjur server running in a Docker Compose environment to the
latest suite release version, please review the
upgrade instructions. For any questions, please contact us on Discourse.

Community Support

Our primary channel for support is through our CyberArk Commons community
here

Migrating to Conjur EE

Migrating data from Conjur Open Source to Conjur EE is simple using our
migration guide

Architecture

Conjur is designed to run in a Docker container(s), using Postgresql as the
backing data store. It's easy to run both Conjur and Postgresql in Docker; see
the demo directory for an example.

Database

DATABASE_URL environment variable

Conjur uses the DATABASE_URL environment variable to connect to the database.
Typical options for this URL are:

  • Local linked pg container
  • External managed database such as AWS RDS.

Database initialization

Conjur creates and/or updates the database schema automatically when it starts
up. Migration scripts are located in the db/migrate directory.

Authenticators

Conjur makes it easy to:

  • Enable and disable built-in authenticators
  • Secure access to authenticators using policy files
  • Create custom authenticators

Detailed authenticator design documentation

Rotators

Conjur makes it easy to:

  • Rotate variables regularly using built-in rotators
  • Create custom rotators

Detailed rotator design documenation

Secrets and keys

Main article: Conjur Cryptography

Conjur uses industry-standard cryptography to protect your data.

Some operations require storage and management of encrypted data. For example:

  • Roles can have associated API keys, which are stored encrypted in
    the database
  • the authenticate function issues a signed JSON token; the signing key is a
    2048 bit RSA key which is stored encrypted in the database

Data is encrypted in and out of the database
using Slosilo, a library which provides:

  • symmetric encryption using AES-256-GCM
  • a Ruby class mixin for easy encryption of object attributes into the database
  • asymmetric encryption and signing
  • a keystore in a Postgresql database for easy storage and retrieval of keys

Slosilo has been verified by a professional cryptographic audit. Ask in our
CyberArk Commons community for more details. (You can join here.)

Important: avoid data loss

When you start Conjur, you must provide a Base64-encoded master data key in the
environment variable CONJUR_DATA_KEY. You can generate a data key using the
following command:

$ docker run --rm conjur data-key generate

Do NOT lose the data key, or all the encrypted data will be unrecoverable.

Account management

Conjur supports the simultaneous operation of multiple separate accounts within
the same database. In other words, it's multi-tenant.

Each account (also called "organization account") has its own token-signing
private key. When a role is authenticated, the HMAC of the access token is
computed using the signing key of the role's account.

Accounts can be listed, created, and deleted via the /accounts service.
Permission to use this service is controlled by the built-in resource
!:webservice:accounts. Note that ! is itself an organization account, and
therefore privileges on the !:webservice:accounts can be managed
via Conjur policies.

Versioning

Starting from version 0.1.0, this project follows
Semantic Versioning.

Contributing

If you’re interested in running Conjur locally and learning about how it works,
please see our Contributing Guide. It includes helpful
instructions for Conjur development and debugging, including:

If you have any questions, please open an issue
or ask us on Discourse.

License

The Conjur server (as in, the code within this repository) is licensed under the
Free Software Foundation's GNU LGPL v3.0. This license was chosen to
ensure that all contributions to the Conjur server are made available to the
community. Commercial licenses are also available
from CyberArk.

The Conjur API clients and other extensions are licensed under
the Apache Software License v2.0

主要指标

概览
名称与所有者cyberark/conjur
主编程语言Ruby
编程语言Ruby (语言数: 9)
平台
许可证Other
所有者活动
创建于2016-06-28 21:18:07
推送于2025-06-06 15:31:04
最后一次提交2025-04-03 13:13:03
发布数342
最新版本名称v1.22.0 (发布于 )
第一版名称v0.1.0 (发布于 )
用户参与
星数829
关注者数46
派生数127
提交数3.9k
已启用问题?
问题数1109
打开的问题数138
拉请求数1497
打开的拉请求数31
关闭的拉请求数378
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?