다음 가이드에서는 NFSv4.1 프로토콜을 설명합니다.
Filestore는 다음 서비스 등급에서 생성된 인스턴스에 NFSv4.1 프로토콜 지원을 제공합니다.
- 영역
- 리전
- Enterprise
이 기능은 Microsoft Active Directory의 관리형 서비스 (관리형 Microsoft AD)와 통합되어 클라이언트 및 서버 인증, 메시지 데이터 무결성 검사, 전송 중 데이터 암호화가 필요한 워크로드를 지원할 수 있습니다. 이러한 기능은 이전에는 Filestore에서 사용할 수 없었습니다.
인증은 LDAP 및 Kerberos를 사용하여 지원되며 다음 보안 버전 (설정)이 포함됩니다.
- 클라이언트 및 서버 인증 (
krb5
) - 메시지 무결성 검사 (
krb5i
). 이전 설정의 기능이 포함됩니다. - 전송 중 데이터 암호화 (
krb5p
). 이전 설정의 기능을 포함합니다.
관리형 Microsoft AD는 NFSv4.1 프로토콜과 보안 및 개인 정보 보호 이점을 위한 요구사항인 LDAP와 Kerberos를 모두 지원하는 유일한 완전 관리형 Google Cloud 솔루션입니다. 관리 Microsoft AD와의 통합은 필수는 아니지만 최적의 Google Cloud 사용자 환경을 위해 사용자 계정, 변동하는 그룹, 권한을 관리하는 것이 좋습니다.
NFSv4.1을 사용해야 하나요?
많은 엔터프라이즈 조직에서 비즈니스에 중요한 작업에 기존 시스템을 사용합니다. 이러한 시스템 중 상당수는 네트워크 파일 저장소에 인증 및 전송 중 암호화가 필요합니다. NFSv3는 인증을 염두에 두고 설계되지 않았습니다. 이제 관리형 Microsoft AD와의 Filestore NFSv4.1 프로토콜 통합이 이 중요한 사용자 요구사항을 충족합니다.
NFSv4.1의 이점에 대한 자세한 내용은 지원되는 프로토콜 정보를 참고하세요.
NFSv4.1의 네트워크 기반 액세스 제어 목록 (ACL) 이해
NFSv3에서는 sys
보안 버전만 지원됩니다. 이 설정은 마운트 중에 클라이언트가 제공한 사용자 uid
및 gid
를 신뢰합니다.
Filestore NFSv4.1 프로토콜에서는 다음과 같은 여러 네트워크 ACL 보안 옵션 또는 설정을 사용할 수 있습니다.
krb5
관리형 Microsoft AD Kerberos 서버에 대해 검증된 Kerberos 티켓을 사용하여 클라이언트를 인증합니다.
krb5i
krb5
에서 제공하는 인증을 포함하며 Kerberos를 사용하여 인스턴스로 오가는 모든 네트워크 트래픽에 메시지 무결성 검사를 실행합니다.krb5p
krb5
에서 제공하는 인증과krb5i
의 메시지 무결성 검사를 포함하며 전송 중 데이터 암호화에 Kerberos를 사용합니다.
이러한 옵션을 활용하려면 Microsoft Active Directory용 관리형 서비스 통합이 필요합니다. 자세한 내용은 관리형 Microsoft AD로 Filestore 인스턴스 만들기를 참고하세요.
Microsoft Active Directory용 관리형 서비스 도메인이 지정되지 않은 경우 sys
보안 버전만 지원됩니다.
자세한 내용은 NFSv4.1 제한사항을 참고하세요.
Linux 클라이언트에 Filestore NFSv4.1 인스턴스 마운트
다음 단계에서는 Linux 클라이언트에 인스턴스를 마운트하는 방법을 보여줍니다.
표준 NFS 권한의 경우
sec=sys
로 마운트합니다.sudo mount -vvvv -t nfs4 -o vers=4.1,sec=sys,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
Kerberos 기반 인증을 위해
sec=krb5
로 마운트합니다.sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
Kerberos 기반 인증 및 메시지 무결성 검사를 위해
sec=krb5i
로 마운트합니다.sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5i,rw \ FILESTORE-INSTANCE-FQDN:/INSTANCE_SHARE_POINT /MOUNT_POINT
Kerberos 기반 인증, 무결성 검사, 전송 중 암호화를 위해
sec=krb5p
로 마운트합니다.sudo mount -vvvv -t nfs4 -o vers=4.1,sec=krb5p,rw \ FILESTORE-INSTANCE-FQ DN:/INSTANCE_SHARE_POINT /MOUNT_POINT
다음을 바꿉니다.
- FILESTORE-INSTANCE-FQDN은 Filestore 인스턴스가 있는 정규화된 도메인 이름입니다.
- INSTANCE_SHARE_POINT은 연결하려는 Filestore 인스턴스의 파일 공유 이름입니다.
- MOUNT_POINT은 마운트할 마운트 지점 또는 디렉터리 이름입니다.
Linux 클라이언트 구성
NFSv4.1 Filestore 인스턴스를 사용하면 클라이언트가 다양한 보안 버전을 사용하여 NFS 작업을 실행할 수 있습니다. 이러한 버전은 생성 중에 또는 생성 후 업데이트된 경우 인스턴스 관리자가 Filestore NFSv4.1 인스턴스의 네트워크 ACL을 통해 구성합니다.
sys
보안 버전은 표준 Unix 인증을 사용하는 반면 krb5
, krb5i
, krb5p
버전은 Kerberos 기반 인증을 사용합니다.
krb5
, krb5i
, krb5p
버전에서는 클라이언트가 Filestore 인스턴스와 동일한 관리형 Microsoft AD 도메인에 연결되어야 합니다.
환경에 적합한 다음 단계를 완료합니다.
Ubuntu 이미지
- Compute Engine 인스턴스에 SSH로 연결합니다.
다음 명령어를 실행하여 관리형 Microsoft AD 도메인에 가입합니다.
다음 설정 명령어를 실행합니다.
sudo apt-get update \ sudo apt-get -y -qq install adcli realmd sssd sssd-tools packagekit krb5-user \ nfs-common expect retry
영역을 묻는 메시지가 표시되면 기존 항목을 Filestore 인스턴스에서 사용되는 관리형 Microsoft AD 도메인으로 바꿉니다. 값을 대문자로 입력한 다음 화살표 키를 눌러 확인을 선택하고 Enter 키를 누릅니다.
호스트를 묻는 메시지가 표시되면 비워 두고 계속 진행합니다.
다음 단계 중 하나를 완료합니다.
호스트 이름 길이가 15자(영문 기준) 이하인 VM의 경우 다음 명령어를 실행합니다.
sudo realm join -vU JOIN_DOMAIN_USER --automatic-id-mapping=no MANAGED_AD_DOMAIN_NAME
다음을 바꿉니다.
- JOIN_DOMAIN_USER은 도메인에 가입하는 데 사용되는 사용자 계정의 이름입니다.
- MANAGED_AD_DOMAIN_NAME은 사용할 관리형 Microsoft AD 서비스의 도메인 이름입니다.
호스트 이름 길이가 15자를 초과하는 VM의 경우 다음 명령어를 실행합니다.
sudo realm join -vU JOIN_DOMAIN_USER --automatic-id-mapping=no \ --user-principal=host/`hostname -f`@MANAGED_AD_REALM_NAME MANAGED_AD_DOMAIN_NAME
다음을 바꿉니다.
- JOIN_DOMAIN_USER은 도메인에 가입하는 데 사용되는 사용자 계정의 이름입니다.
- MANAGED_AD_REALM_NAME은 사용할 관리형 Microsoft AD 서비스의 영역 이름입니다.
- MANAGED_AD_DOMAIN_NAME은 사용할 관리형 Microsoft AD 서비스의 도메인 이름입니다.
Kerberos 구성을 업데이트합니다. 필요한 영역 정의 및 영역-도메인 매핑으로
/etc/krb5.conf
를 업데이트합니다.[realms] DOMAIN_NAME = { kdc = DOMAIN_NAME default_domain = DOMAIN_NAME } [domain_realm] .domain_name_lowercase = DOMAIN_NAME domain_name_lowercase = DOMAIN_NAME
다음을 바꿉니다.
- DOMAIN_NAME은 사용할 도메인 이름으로, 대문자로 입력합니다.
- domain_name_lowercase는 사용할 도메인 이름으로, 소문자로 입력합니다.
예는 다음을 참고하세요.
[realms] FILE.DEMO.LOCAL = { kdc = FILE.DEMO.LOCAL default_domain = FILE.DEMO.LOCAL } [domain_realm] .file.demo.local = FILE.DEMO.LOCAL file.demo.local = FILE.DEMO.LOCAL
rpc-gssd 서비스를 실행합니다.
/etc/idmapd.conf
내의[General]
섹션에 다음No-Strip
속성 값을 추가합니다.[General] No-Strip = both
다음 명령어를 실행합니다.
sudo systemctl restart rpc-gssd
Centos 이미지
- Compute Engine 인스턴스에 SSH로 연결합니다.
관리형 Microsoft AD 도메인에 가입합니다.
sudo yum update \ sudo yum install -y adcli realmd sssd samba-common-tools krb5-workstation nfs-utils \ bind-utils openldap-clients
다음 단계 중 하나를 완료합니다.
호스트 이름 길이가 15자 이하인 VM의 경우 다음 명령어를 실행합니다.
sudo realm join -vU JOIN_DOMAIN_USER --automatic-id-mapping=no MANAGED_AD_DOMAIN_NAME
다음을 바꿉니다.
- JOIN_DOMAIN_USER은 도메인에 가입하는 데 사용되는 사용자 계정의 이름입니다.
- MANAGED_AD_DOMAIN_NAME은 사용할 관리형 Microsoft AD 서비스의 도메인 이름입니다.
호스트 이름 길이가 15자를 초과하는 VM의 경우 다음 명령어를 실행합니다.
sudo realm join -vU JOIN_DOMAIN_USER --automatic-id-mapping=no \ --user-principal=host/`hostname -f`@MANAGED_AD_REALM_NAME MANAGED_AD_DOMAIN_NAME
다음을 바꿉니다.
- JOIN_DOMAIN_USER은 도메인에 가입하는 데 사용되는 사용자 계정의 이름입니다.
- MANAGED_AD_REALM_NAME은 사용할 관리형 Microsoft AD 서비스의 영역 이름입니다.
- MANAGED_AD_DOMAIN_NAME은 사용할 관리형 Microsoft AD 서비스의 도메인 이름입니다.
sssd 서비스가 실행 중인지 확인합니다.
sudo systemctl status sssd
rpc-gssd 서비스를 실행합니다.
/etc/idmapd.conf
내부의[General]
섹션에No-Strip
속성 값 아래 다음을 추가합니다.[General] No-Strip = both
다음 명령어를 실행합니다. 이 명령어를 사용하면 NFS 클라이언트가 NFS 서버 호스트 이름에서 도메인 이름을 삭제하지 않습니다. 자세한 내용은 NFS Ganesha 목록 보관 파일 및 Arch Linux 보관 파일을 참고하세요.
sudo systemctl start rpc-gssd