2

我在 node.js 中创建了一个项目来存储和从cyberark conjur 获取凭据(使用它的 REST-API)但是为了测试应用程序,我在设置 conjur 服务器时遇到了困难。

  • 问题是服务器在 docker 容器中运行良好,但是如何在外部(主机)访问它(端口映射不起作用)

  • 或者是否有任何托管在 Internet 上的 conjur 服务器供公众使用

我想要的只是测试 API 调用

4

1 回答 1

2

在撰写本文时,Conjur Node.js API目前尚未得到积极支持。以下是测试 API 的一些建议。

我可以看到你用来启动 docker/docker-compose 文件的命令吗?

方法一

如果您使用Conjur Quickstart Guide中的设置,您的docker-compose.yml文件应该类似于:

...
conjur:
    image: cyberark/conjur
    container_name: conjur_server
    command: server
    environment:
      DATABASE_URL: postgres://postgres@database/postgres
      CONJUR_DATA_KEY:
      CONJUR_AUTHENTICATORS:
    depends_on:
    - database
    restart: on-failure

  proxy:
    image: nginx:1.13.6-alpine
    container_name: nginx_proxy
    ports:
      - "8443:443"
    volumes:
      - ./conf/:/etc/nginx/conf.d/:ro
      - ./conf/tls/:/etc/nginx/tls/:ro
    depends_on:
    - conjur
    - openssl
    restart: on-failure
...

这意味着 Conjur 在 NGINX 代理后面运行以处理 SSL,并且没有暴露到运行它的 Docker 网络之外的端口。https://localhost:8443通过此设置,您可以访问本地计算机上的 Conjur 服务器。

注意:您将需要位于./conf/tls/. 由于这是一个演示环境,因此可以随时进行此类测试。

方法二

如果您不关心安全性并且只是单纯地测试 REST API 端点,您可以随时删除 SSL 并修改docker-compose.yml以将 Conjur 服务器的端口公开给您的本地计算机,如下所示:

...
conjur:
    image: cyberark/conjur
    container_name: conjur_server
    command: server
    environment:
      DATABASE_URL: postgres://postgres@database/postgres
      CONJUR_DATA_KEY:
      CONJUR_AUTHENTICATORS:
    ports:
      - "8080:80"
    depends_on:
    - database
    restart: on-failure

现在您可以通过http://localhost:8080.

更多信息:Docker Compose 文档中的网络

于 2021-02-12T22:06:05.130 回答