Rancher2.6LDAPを使用したGrafanaドッキングの監視

著者について
SUSERancherのテクニカルサポートエンジニアであるXieZeqinは、顧客のメンテナンスおよびアフターサービスのテクニカルサポートサービスをサブスクライブし、関連するテクニカルソリューションを提供する責任があります。彼はCKAとCKSの公式認定を取得しており、クラウドコンピューティングの分野で長年の経験があり、OpenStackからKubernetesへの技術的な変更を経験し、基盤となるオペレーティングシステム、KVM仮想化、Dockerコンテナーで豊富な実務経験を持っています。その他の関連するクラウドネイティブテクノロジー。

ランチャーモニタリングの概要

ランチャー管理プラットフォームでは、管理をサポートする任意のKubernetesクラスターでランチャーモニタリングを簡単に有効にして、モニタリングおよびアラート機能を実装できます。Rancher Monitoringは、デフォルトでPrometheusを使用して関連システムとアプリケーションサービスの監視を提供し、Grafanaのダッシュボード視覚化ツールを使用してデータ統計を監視および表示します。

考える

デフォルトでは、RancherはGrafanaにアクセスするユーザーにあまり多くの制限を課していません。匿名ユーザーを使用して、Rancherによってデプロイされたデフォルトのダッシュボード表示インターフェイスを表示できます。ただし、多くの場合、Grafanaを使用してカスタムダッシュボードを開発する必要があります。現時点では、匿名ユーザーの読み取り専用権限ではニーズを満たすことができませんが、管理者ユーザーにログインすると、Grafanaに特定のセキュリティリスクが発生します。現時点では、Grafanaユーザーを管理し、アクセスユーザーを特定の権限に制限および制御するために、このようなユーザー管理システムが必要です。

Grafanaに付属のユーザー管理リストを使用してアクセスユーザーをある程度管理することはできますが、これには追加のユーザーリストのセットを維持する必要があります。では、企業の内部LDAPシステムに直接接続して、ユーザーの保守コストを削減することは可能でしょうか。

答えはイエスです。Rancher 2.5以降、監視アーキテクチャが調整され、ユーザーはより関連性の高いコンポーネントの構成をカスタマイズできるようになりました。この記事では、Rancher2.6でRancherMonitoringを構成して、GrafanaをLDAP認証に接続する方法を紹介します。

前提条件

  • ランチャー:2.6.4
  • k8s:1.20.11
  • モニタリング:100.1.2 + up19.0.3
  • OpenLDAP:1.5.0

詳細な操作

GrafanaはLDAPに接続します

モニタリングYamlを編集してLDAPを構成します

  1. RancherエクスプローラーUIにアクセスし、[アプリとマーケットプレイス]に移動し、[監視]を選択して、構成オプションで[YAMLの編集]を選択します。

牧場主-1
  1. LDAP認証構成を有効にする

LDAPを有効にするには、階層の下に次の構成情報grafana.grafana.iniを追加します。auth.ldap

grafana:
  grafana.ini:
    auth.ldap:
      allow_sign_up: true
      config_file: /etc/grafana/ldap.toml
      enabled: true

ランチャー-2

3. [grafana階層]で、LDAP認証パラメーターを追加します

grafana:
  ldap:
    config: |
      [[servers]]
      host = "test.zerchin.xyz" 
      port = 389
      use_ssl = false
      start_tls = false
      ssl_skip_verify = true
      bind_dn = "cn=admin,dc=rancherldap,dc=com"
      bind_password = 'Rancher123'
      search_filter = "(cn=%s)"
      search_base_dns = ["cn=group,ou=rancher,dc=rancherldap,dc=com"]
      [servers.attributes]
      name = "givenName"
      surname = "sn"
      username = "cn"
      member_of = "memberOf"
      email = "email"
    enabled: true

パラメータの説明

host:LDAPサーバーアドレス(IP /ドメイン、スペースで区切って複数のアドレスを指定)。

port:LDAPポート、デフォルトは389、またはuse_ssl=trueの場合は636。

use_ssl:暗号化されたTLS接続を使用するかどうか。

start_tls:STARTTLSは、プレーンテキスト通信プロトコルの拡張であり、暗号化された通信に別の特別なポートを使用せずに、プレーンテキスト通信接続を直接暗号化(SSL / TLS暗号化を使用)できるようにします。

ssl_skip_verify:SSL証明書の検証をスキップするかどうか。

bind_dn:LDAPサービスアカウントのユーザー名。

bind_password:password(パスワードに#が含まれている場合は、3つの角かっこで囲む必要があります(例: "" "#password;" ""))。

search_filter: 、、、など"(cn=%s)"ユーザークエリフィルターフィールド"(sAMAccountName=%s)""(uid=%s)"

search_base_dns:ユーザー検索の開始点。

  1. 構成後、監視を開始します。

監視が正常に開始されるのを待った後、GrafanaUIインターフェースを開きます。デフォルトのアカウントパスワードはadmin/prom-operatorです。

grafanar-1

LDAP認証

ログイン後、左側の[サーバー管理]-[LDAP]に移動すると、[LDAP接続]の下に接続されているホストが表示されます。

[ユーザーマッピングのテスト]で、既存のLDAPユーザーを検索してユーザー情報を見つけます。

grafana-2

また、LDAPユーザーログインを使用してGrafanaUIインターフェイスにアクセスできます。

grafana-3

GrafanaはSSLに基づいてLDAPに接続します

上記の方法はLDAPの389ポートに接続されており、このポートをLDAP接続に使用できます。

ただし、このポートはセキュリティで保護されておらず、暗号化されていない接続であるため、セキュリティの問題が発生しやすく、ユーザー関連の情報が公開される可能性があります。通常、ポート389はイントラネットまたはテスト環境でのみ使用することをお勧めします。

セキュリティ要件の高い環境では、LDAPの別のSSL暗号化ポートを使用してLDAPサービスに接続できます:ポート636。

証明書シークレットを作成する

名前空間の下に、CA証明書という名前cattle-monitoring-systemの新しいcertsシークレットを作成し、LDAPサーバー証明書を書き込み、LDAPサーバー証明書キーを書き込みます。ca.pemtls.crttls.key

シークレット-1

関連する証明書は、コマンドラインからインポートすることもできます。

kubectl create secret generic certs -n cattle-monitoring-system --from-file=ca.pem --from-file=tls.crt --from-file=tls.key

LDAPSSL認証構成

モニタリングyaml構成を編集する

  1. [階層]で、マウントシークレット証明書grafanaを追加します。extraSecretMounts
grafana:
  extraSecretMounts:
    - defaultMode: 440
      mountPath: /opt/certs
      name: certs
      readOnly: true
      secretName: certs
  1. LDAPはSSL認証を有効にします:
grafana:
  ldap:
    config: |
      [[servers]] 
      host = "test.zerchin.xyz" 
      port = 636 
      use_ssl = true
      start_tls = false 
      ssl_skip_verify = false
      root_ca_cert = "/opt/certs/ca.pem"
      client_cert = "/opt/certs/tls.crt"
      client_key = "/opt/certs/tls.key"
      bind_dn = "cn=admin,dc=rancherldap,dc=com"
      bind_password = 'Rancher123' 
      search_filter = "(cn=%s)" 
      search_base_dns = ["cn=group,ou=rancher,dc=rancherldap,dc=com"] 
      [servers.attributes] 
      name = "givenName" 
      surname = "sn" 
      username = "cn" 
      member_of = "memberOf" 
      email = "email"
    enabled: true
  • port636SSL暗号化ポートに設定
  • use_ssltrueにssl_skip_verify設定、falseに設定、SSL認証を有効にする
  • root_ca_cert、、証明書パスclient_certを構成しますclient_key
  1. 構成後、監視を開始します。

LDAPSSL認証

Grafanaにログインし、左側にServer Admin-LDAPと入力すると、LDAP接続の下に636SSL暗号化ポートが接続されていることがわかります。

また、[ユーザーマッピングのテスト]で、既存のLDAPユーザーを検索してユーザー情報を見つけます。

grafana-ssl-1

LDAPユーザーでログインしてみてください。通常どおりログインして、データを表示できます。

grafana-ssl-2

要約する

上記の構成により、企業内のLDAPをGrafanaユーザー管理システムとして正常に接続できるため、既存のユーザー管理システムを直接使用して、統一されたユーザー管理と権限認証を行うことができます。もちろん、okta、saml、github、basicなどの他のユーザー管理システムに接続することもできます。特定のニーズに応じた構成については、Grafanaの公式ドキュメントを参照できます。

Grafana構成リファレンス:https://grafana.com/docs/grafana/next/setup-grafana/configure-security/configure-authentication/ldap/

{{o.name}}
{{m.name}}

おすすめ

転載: my.oschina.net/rancher/blog/5553988
おすすめ