著者について
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を構成します
- RancherエクスプローラーUIにアクセスし、[アプリとマーケットプレイス]に移動し、[監視]を選択して、構成オプションで[YAMLの編集]を選択します。
- 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
:ユーザー検索の開始点。
- 構成後、監視を開始します。
監視が正常に開始されるのを待った後、GrafanaUIインターフェースを開きます。デフォルトのアカウントパスワードはadmin/prom-operatorです。
grafanar-1LDAP認証
ログイン後、左側の[サーバー管理]-[LDAP]に移動すると、[LDAP接続]の下に接続されているホストが表示されます。
[ユーザーマッピングのテスト]で、既存のLDAPユーザーを検索してユーザー情報を見つけます。
grafana-2また、LDAPユーザーログインを使用してGrafanaUIインターフェイスにアクセスできます。
grafana-3GrafanaはSSLに基づいてLDAPに接続します
上記の方法はLDAPの389ポートに接続されており、このポートをLDAP接続に使用できます。
ただし、このポートはセキュリティで保護されておらず、暗号化されていない接続であるため、セキュリティの問題が発生しやすく、ユーザー関連の情報が公開される可能性があります。通常、ポート389はイントラネットまたはテスト環境でのみ使用することをお勧めします。
セキュリティ要件の高い環境では、LDAPの別のSSL暗号化ポートを使用してLDAPサービスに接続できます:ポート636。
証明書シークレットを作成する
名前空間の下に、CA証明書という名前cattle-monitoring-system
の新しいcerts
シークレットを作成し、LDAPサーバー証明書を書き込み、LDAPサーバー証明書キーを書き込みます。ca.pem
tls.crt
tls.key
関連する証明書は、コマンドラインからインポートすることもできます。
kubectl create secret generic certs -n cattle-monitoring-system --from-file=ca.pem --from-file=tls.crt --from-file=tls.key
LDAPSSL認証構成
モニタリングyaml構成を編集する
- [階層]で、マウントシークレット証明書
grafana
を追加します。extraSecretMounts
grafana:
extraSecretMounts:
- defaultMode: 440
mountPath: /opt/certs
name: certs
readOnly: true
secretName: certs
- 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
port
636SSL暗号化ポートに設定use_ssl
trueにssl_skip_verify
設定、falseに設定、SSL認証を有効にするroot_ca_cert
、、証明書パスclient_cert
を構成しますclient_key
- 構成後、監視を開始します。
LDAPSSL認証
Grafanaにログインし、左側にServer Admin-LDAPと入力すると、LDAP接続の下に636SSL暗号化ポートが接続されていることがわかります。
また、[ユーザーマッピングのテスト]で、既存のLDAPユーザーを検索してユーザー情報を見つけます。
grafana-ssl-1LDAPユーザーでログインしてみてください。通常どおりログインして、データを表示できます。
grafana-ssl-2要約する
上記の構成により、企業内のLDAPをGrafanaユーザー管理システムとして正常に接続できるため、既存のユーザー管理システムを直接使用して、統一されたユーザー管理と権限認証を行うことができます。もちろん、okta、saml、github、basicなどの他のユーザー管理システムに接続することもできます。特定のニーズに応じた構成については、Grafanaの公式ドキュメントを参照できます。
Grafana構成リファレンス:https://grafana.com/docs/grafana/next/setup-grafana/configure-security/configure-authentication/ldap/