Перейти к основному содержимому
Версия: Privileged Access Manager 3.2

NFS-хранилище

Indeed PAM поддерживает работу файлового хранилища на основе сетевого протокола доступа NFS (Network File System).

Подготовка хранилища на Linux

  1. Установите пакеты:

    sudo dnf install nfs-utils
  2. Запустите службы NFS-сервера:

    sudo systemctl start nfs-server.service
    sudo systemctl enable nfs-server.service
    sudo systemctl status nfs-server.service
  3. Создайте файловые системы для экспорта или обмена на сервере NFS и задайте владельца и группу:

    sudo mkdir -p /mnt/data_storage/
    sudo chown -R 23041:23041 /mnt/data_storage/
  4. Экспортируйте файловые системы в файл конфигурации сервера NFS — /etc/exports, чтобы определить локальные физические файловые системы, доступные для клиентов NFS:

    Шаблон пути
    /mnt/data_storage/ <IP-адрес_клиента/сеть/маска/*>(rw,sync,all_squash,anonuid=23041,anongid=23041)
    Пример пути
    /mnt/data_storage/ 192.168.131.0/24(rw,sync,all_squash,anonuid=23041,anongid=23041)
  5. После внесения изменений, чтобы они вступили в силу, выполните команду:

    sudo exportfs -arv
  6. Обход встроенных утилит безопасности:

    В дистрибутивах на основе RPM (например, CentOS, RHEL, Fedora) утилита безопасности SELinux может блокировать доступ к NFS, если он не настроен должным образом.

    • Чтобы временно отключить SELinux для тестирования:

      sudo setenforce 0
    • Чтобы настроить SELinux для работы с NFS:

      sudo setsebool -P nfs_export_all_rw 1
      sudo setsebool -P nfs_export_all_ro 1

    Также убедитесь, что firewall не блокирует порты, необходимые для работы NFS. Откройте их:

    sudo firewall-cmd --permanent --add-service=nfs
    sudo firewall-cmd --permanent --add-service=rpc-bind
    sudo firewall-cmd --permanent --add-service=mountd
    sudo firewall-cmd --reload

Настройка PAM для работы с NFS

Настройка хранилища выполняется после установки Indeed PAM.

  1. Создайте папку для монтирования медиахранилища на сервере. Также можете использовать готовую папку, например, /etc/indeed/indeed-pam/media-temp.

    sudo mkdir -p /mnt/pamstorage/
  2. Установите клиент для монтирования NFS:

    • RPM:

      sudo yum install nfs-utils
    • DEB:

      sudo apt install nfs-common
  3. Выполните монтирование хранилища:

    Шаблон команды
    sudo mount -t nfs <fqdn_or_ip_nfs_server>:/путь/до/медихранилища /путь/до/папки/монтирования
    Пример команды
    sudo mount -t nfs 192.168.131.200:/mnt/data_storage/ /mnt/pamstorage/
  4. Добавьте монтирование хранилища в автозапуск:

    Чтобы автоматически монтировать NFS при старте системы, добавьте запись в файл /etc/fstab:

    Шаблон команды
    <fqdn_or_ip_nfs_server>:/путь/до/медихранилища /путь/до/папки/монтирования nfs defaults 0 0
    Пример команды
    192.168.131.200:/mnt/data_storage/ /mnt/pamstorage/ nfs defaults 0 0

    Для проверки монтирования выполните:

    sudo mount
  5. Внесите изменения в секции volumes в docker-compose файлах для Core и Gateway-Service:

    • Core — путь до файла на сервере управления: /etc/indeed/indeed-pam/docker-compose.management-server.yml
    • Gateway-Service — путь до файла на сервере доступа: /etc/indeed/indeed-pam/docker-compose.access-server.yml

    В секцию volumes требуется добавить путь к монтированному хранилищу:

    - /путь/до/папки/монтирования:/mnt/storage:rw,z
    Пример для Core
    core:
    image: nexus.indeed-id.hq:5050/pam/indeed-pam-core:${TAG}
    container_name: pam-core
    extends:
    file: docker-compose.common-services.yml
    service: base
    pids_limit: 5000
    depends_on:
    - ca-certificates
    - pgsql
    environment:
    - COMPlus_EnableDiagnostics=0
    user: root
    read_only: false
    security_opt:
    - apparmor=pam-management
    volumes:
    - ./core/events:/var/lib/indeed/indeed-pam/events:rw,Z
    - ./core/appsettings.json:/app/appsettings.json:ro,z
    - ./keys/shared/protector:/etc/indeed/indeed-pam/keys/shared/protector:ro,z
    - ./keys/core:/etc/indeed/indeed-pam/keys/core:ro,Z
    - ./logs/core:/app/logs:rw,Z
    - /mnt/pamstorage:/mnt/storage:rw,z # Пример монтирования NFS
    - pam-core-temp-data:/var/lib/indeed/indeed-pam:rw
    - pam-ca-cert-store:${CERT_STORE}:ro
    tmpfs:
    - /tmp
    networks:
    - pam-core-network
    - pam-ls-network
  6. Внесите изменения в секции Storage конфигурационных файлов Core и Gateway-Service:

    • Core — путь до конфигурационного файла на сервере управления: /etc/indeed/indeed-pam/core/appsettings.json
    • Gateway-Service — путь до конфигурационного файла на сервере доступа: /etc/indeed/indeed-pam/gateway-service/appsettings.json

    В обоих файлах требуется указать путь до монтированного хранилища:

    "Storage": {
    "Type": "FileSystem",
    "Settings": {
    "Root": "/mnt/storage"
    }
    }
  7. Перезагрузите контейнеры:

    sudo bash /etc/indeed/indeed-pam/scripts/run-pam.sh