보안 고려사항

이 페이지에서는 Google Cloud NetApp 볼륨 보안 고려사항을 간략히 설명합니다.

네트워킹 보안 고려사항

Google Cloud NetApp 볼륨은 다음과 같은 격리된 보안 레이어를 갖춘 보안 아키텍처 프레임워크를 제공합니다.

  • 프로젝트 수준 보안: 관리자가 Google Cloud 콘솔, Google Cloud SDK 또는 API를 사용하여 스토리지 풀 또는 볼륨과 같은 NetApp 볼륨 리소스를 관리하는 데 사용하는 관리 보안 레이어입니다. IAM 역할 및 권한이 이 레이어를 보호합니다. 프로젝트 수준 보안에 관한 자세한 내용은 IAM 권한 설정을 참고하세요.

  • 네트워크 수준 보안: 네트워크 연결 스토리지 (NAS) 프로토콜 (서버 메시지 블록(SMB) 및 네트워크 파일 시스템 (NFS))을 사용하여 데이터 볼륨에 액세스하는 데 사용되는 네트워크 레이어입니다.

    Virtual Private Cloud 네트워크를 통해 NAS 프로토콜을 사용하여 볼륨 내 데이터에 액세스할 수 있습니다. 서드 파티 솔루션을 명시적으로 사용하여 VPC에 대한 VPC 피어링 라우팅을 대체하지 않는 한 NetApp 볼륨에 대한 모든 데이터 액세스는 VPC를 통해서만 가능합니다.

    VPC 내에서 방화벽과 프로토콜별 액세스 제어 메커니즘 설정을 통해 액세스를 추가로 제한할 수 있습니다.

볼륨 액세스를 위한 방화벽 규칙

방화벽 규칙은 Google Cloud VPC를 보호합니다. 클라이언트에서 NetApp Volumes에 액세스하도록 허용하려면 특정 네트워크 트래픽을 허용해야 합니다.

NFS 볼륨 액세스를 위한 방화벽 규칙

NFS는 다양한 포트를 사용하여 클라이언트와 서버 간에 통신합니다. 올바른 통신과 볼륨 마운트를 보장하려면 방화벽에서 포트를 사용 설정해야 합니다.

NetApp 볼륨은 NFS 서버 역할을 하며 NFS에 필요한 네트워크 포트를 노출합니다. NFS 클라이언트에 다음 NetApp 볼륨 포트와 통신할 권한이 있는지 확인합니다.

  • 111 TCP/UDP portmapper

  • 635 TCP/UDP mountd

  • 2049 TCP/UDP nfsd

  • 4045 TCP/UDP nlockmgr (NFSv3만 해당)

  • 4046 TCP/UDP status (NFSv3만 해당)

NetApp 볼륨의 IP 주소는 네트워크 피어링 중에 서비스에 할당한 CIDR 범위에서 자동으로 할당됩니다. 자세한 내용은 CIDR 선택을 참고하세요.

NFSv3에서의 권장 잠금 사용

NFSv3에서 조언 잠금을 사용하는 경우 클라이언트에서 rpc.statd 데몬을 실행하여 네트워크 잠금 관리자를 지원해야 합니다. 네트워크 잠금 관리자는 NFS와 협력하여 네트워크를 통해 System V 스타일의 조언 파일 및 레코드 잠금을 제공하는 기능입니다. rpc.statd가 Network Lock Manager 콜백을 수신하려면 NFS 클라이언트가 인그레스 포트를 열어야 합니다. 대부분의 Linux 배포판에서는 첫 번째 NFS 공유를 마운트할 때 rpc.statd가 시작됩니다. rpcinfo -p 명령어를 사용하여 식별할 수 있는 임의의 포트를 사용합니다. rpc.statd를 방화벽에 더 적합하게 만들려면 정적 포트를 사용하도록 구성합니다.

rpc.statd의 정적 포트를 설정하려면 다음 리소스를 참고하세요.

NFSv3 조언 잠금 또는 네트워크 잠금 관리자를 사용하지 않는 경우 nolock 마운트 옵션으로 NFSv3 공유를 마운트하는 것이 좋습니다.

NFSv4.1은 NFSv4.1 프로토콜 자체 내에 잠금 함수를 구현하며, 이 함수는 포트 2049의 NFSv4.1 서버에 대한 클라이언트 시작 TCP 연결을 통해 실행됩니다. 클라이언트는 인그레스 트래픽을 위해 방화벽 포트를 열 필요가 없습니다.

SMB 볼륨 액세스를 위한 방화벽 규칙

SMB는 다양한 포트를 사용하여 클라이언트와 서버 간에 통신합니다. 적절한 통신을 보장하려면 방화벽에서 포트를 사용 설정해야 합니다.

NetApp 볼륨은 SMB 서버 역할을 하며 SMB에 필요한 네트워크 포트를 노출합니다. SMB 클라이언트가 다음 NetApp 볼륨 포트와 통신할 수 있는지 확인합니다.

  • 445 TCP SMB2/3

  • 135 TCP msrpc40001 TCP SMB CA: SMB 3.x 연속 사용 가능 공유에만 사용됩니다. 지속적으로 사용 가능한 공유가 아닌 경우에는 이러한 포트가 필요하지 않습니다.

서비스는 포트 139/TCP를 노출하지만 사용하지 않습니다.

NetApp 볼륨의 IP 주소는 네트워크 피어링 중에 서비스에 할당한 CIDR 범위에서 자동으로 할당됩니다. 자세한 내용은 CIDR 선택을 참고하세요.

SMB가 작동하기 위해 SMB 클라이언트는 인그레스 포트를 노출할 필요가 없습니다.

Active Directory 액세스를 위한 방화벽 규칙

NetApp 볼륨은 Active Directory 도메인 컨트롤러를 식별하기 위해 Active Directory 정책에 구성된 DNS 서버의 다음 포트에 액세스해야 합니다. NetApp 볼륨은 Active Directory 도메인 컨트롤러 검색에 DNS 조회를 사용합니다.

  • ICMPV4

  • DNS 53 TCP

  • DNS 53 UDP

모든 Active Directory 도메인 컨트롤러에서 다음 포트를 열어 NetApp 볼륨의 CIDR 범위에서 발생하는 트래픽을 허용합니다.

  • ICMPV4

  • LDAP 389 TCP

  • SMB over IP 445 TCP

  • Secure LDAP 636 TCP

  • Kerberos 464 TCP

  • Kerberos 464 UDP

  • Kerberos 88 TCP

  • Kerberos 88 UDP

Active Directory 서버에 방화벽 태그 연결

다음 안내에 따라 방화벽 태그를 Active Directory 서버에 연결합니다.

  1. 방화벽 규칙을 Active Directory DNS 서버에 연결합니다.

    gcloud compute firewall-rules create netappvolumes-to-dns \
      --allow=icmp,TCP:53,UDP:53 \
      --direction=ingress \
      --target-tags=allow-netappvolumes-to-dns \
      --source-ranges=NETAPP_VOLUMES_CIDR \
      --network=VPC_NAME
  2. 방화벽 규칙을 Active Directory 도메인 컨트롤러에 연결합니다.

    gcloud compute firewall-rules create netappvolumes-to-activedirectory \
      --allow=icmp,TCP:88,UDP:88,TCP:389,TCP:445,TCP:464,UDP:464,TCP:636 \
      --direction=ingress \
      --target-tags=allow-netappvolumes-to-activedirectory \
      --source-ranges=NETAPP_VOLUMES_CIDR \
      --network=VPC_NAME

    다음 정보를 바꿉니다.

    • NETAPP_VOLUMES_CIDR: NetApp Volumes CIDR

    • VPC_NAME: VPC의 이름

  3. DNS 서버에 다음 태그를 연결합니다.

    allow-netappvolumes-to-dns
  4. 도메인 컨트롤러에 다음 태그를 연결합니다.

    allow-netappvolumes-to-activedirectory

NFS 프로토콜의 볼륨 액세스 제어

NetApp 볼륨은 최대 20개의 내보내기 규칙이 포함된 단일 내보내기 정책으로 NFS 프로토콜의 액세스를 보호합니다. 내보내기 규칙은 볼륨을 마운트할 권한이 있는 클라이언트를 지정하는 IPv4 주소 및 IPv4 CIDR의 쉼표로 구분된 목록입니다. NetApp Volumes는 내보내기 규칙을 순차적으로 평가하고 첫 번째 일치 후 중지됩니다. 최상의 결과를 얻으려면 내보내기 규칙을 가장 구체적인 규칙부터 가장 일반적인 규칙으로 정렬하는 것이 좋습니다.

다음 탭을 사용하여 NFS 버전에 따른 정책을 검토하세요.

Kerberos가 없는 NFS

Kerberos가 없는 모든 NFS 버전은 AUTH_SYS 보안 버전을 사용합니다. 이 모드에서는 신뢰할 수 있고 사용자 ID 및 그룹 ID 무결성을 보장할 수 있는 클라이언트만 허용하도록 내보내기 규칙을 엄격하게 관리해야 합니다.

보안 조치로 NFS 서버는 UID=0(루트)가 포함된 NFS 호출을 파일 시스템에 대한 권한이 제한된 UID=65535 (익명)에 자동으로 매핑합니다. 볼륨을 만들 때 루트 액세스 옵션을 사용 설정하여 이 동작을 제어할 수 있습니다. 루트 액세스를 사용 설정하면 사용자 ID 00로 유지됩니다. 잘 알려진 관리자 호스트에 루트 액세스를 사용 설정하고 다른 모든 클라이언트의 루트 액세스를 사용 중지하는 전용 내보내기 규칙을 만드는 것이 좋습니다.

Kerberos를 사용하는 NFSv4.1

Kerberos를 사용하는 NFSv4.1은 내보내기 정책과 Kerberos를 사용하는 추가 인증을 사용하여 볼륨에 액세스합니다. 다음에 적용할 내보내기 규칙을 구성할 수 있습니다.

  • Kerberos만 해당 (krb5)

  • Kerberos 서명 (krb5i)

  • Kerberos 개인 정보 보호 (krb5p)

SMB 프로토콜의 볼륨 액세스 제어

SMB는 공유 수준 권한을 사용하여 볼륨 액세스를 보호하며 Active Directory에 대한 인증이 필요합니다. 이 권한을 사용하면 네트워크를 통해 공유에 액세스할 수 있는 사용자를 제어할 수 있습니다.

볼륨은 모든 사용자모든 권한 공유 수준 권한으로 생성됩니다. Windows 콘솔 또는 Windows CLI를 사용하여 공유 수준 권한을 수정할 수 있습니다.

다음 안내에 따라 Windows 콘솔 또는 Windows CLI를 사용하여 SMB 공유 수준 권한을 수정합니다.

Windows 콘솔

  1. Windows 시작 아이콘을 마우스 오른쪽 버튼으로 클릭하고 컴퓨터 관리를 선택합니다.

  2. 컴퓨터 관리 콘솔이 열리면 작업 > 다른 컴퓨터에 연결을 클릭합니다.

  3. 컴퓨터 선택 대화상자에서 SMB 공유의 netbios 이름을 입력하고 확인을 클릭합니다.

  4. 파일 공유에 연결되면 시스템 도구 > 공유 폴더 > 공유로 이동하여 공유를 조회합니다.

  5. Share Name(공유 이름)을 더블클릭하고 Share Permissions(공유 권한) 탭을 선택하여 공유 권한을 관리합니다.

Windows CLI

  1. Windows 명령줄을 엽니다.

  2. 파일 공유에 연결합니다.

    fsmgmt.msc /computer=<netbios_name_of_share>
  3. 파일 공유에 연결되면 시스템 도구 > 공유 폴더 > 공유로 이동하여 공유를 조회합니다.

  4. Share Name(공유 이름)을 더블클릭하고 Share Permissions(공유 권한) 탭을 선택하여 공유 권한을 관리합니다.

파일 액세스 제어

다음 섹션에서는 NetApp 볼륨 파일 수준 액세스 제어에 대해 자세히 설명합니다.

볼륨 보안 방식

NetApp Volumes는 Linux 및 Windows 플랫폼의 다양한 권한 집합을 수용하기 위해 볼륨에 UNIX 및 NTFS라는 두 가지 보안 스타일을 제공합니다.

  • UNIX: UNIX 보안 스타일로 구성된 볼륨은 UNIX 모드 비트와 NFSv4 ACL을 사용하여 파일 액세스를 제어합니다.

  • NTFS: NTFS 보안 스타일로 구성된 볼륨은 NTFS ACL을 사용하여 파일 액세스를 제어합니다.

볼륨의 보안 스타일은 볼륨의 프로토콜 선택에 따라 다릅니다.

프로토콜 유형 볼륨 보안 방식
NFSv3 Unix
NFSv4.1 Unix
둘 다(NFSv3 및 NFSv4.1) Unix
SMB NTFS
듀얼 (SMB 및 NFSv3) UNIX 또는 NTFS
듀얼 (SMB 및 NFSv4.1) UNIX 또는 NTFS

이중 프로토콜의 경우 볼륨을 만드는 동안에만 보안 스타일을 선택할 수 있습니다.

UNIX 스타일 볼륨의 NFS 파일 수준 액세스 제어

클라이언트가 볼륨을 성공적으로 마운트하면 NetApp 볼륨은 모드 비트라는 표준 UNIX 권한 모델을 사용하여 파일 및 디렉터리에 대한 액세스 권한을 확인합니다. chmod를 사용하여 권한을 설정하고 수정할 수 있습니다.

NFSv4.1 볼륨은 NFSv4 액세스 제어 목록 (ACL)을 사용할 수도 있습니다. 파일 또는 디렉터리에 모드 비트와 NFSv4 ACL이 모두 있는 경우 ACL이 권한 확인에 사용됩니다. NFSv3 및 NFSv4.1 프로토콜 유형을 모두 사용하는 볼륨에도 동일하게 적용됩니다. nfs4_getfaclnfs4_setfacl를 사용하여 NFSv4 ACL을 설정하고 수정할 수 있습니다.

새 UNIX 스타일 볼륨을 만들면 root:root에 루트 inode 소유권과 0770 권한이 있습니다. 이러한 소유권 및 권한 설정으로 인해 루트가 아닌 사용자는 마운트 후 볼륨에 액세스하는 동안 permission denied 오류가 발생합니다. 루트가 아닌 사용자가 볼륨에 액세스할 수 있도록 하려면 루트 사용자가 chown를 사용하여 루트 inode의 소유권을 변경하고 chmod를 사용하여 파일 권한을 수정해야 합니다.

NTFS 형식 볼륨의 SMB 파일 액세스 제어

NTFS 형식 볼륨의 경우 NTFS 권한 모델을 사용하는 것이 좋습니다. 모든 파일과 디렉터리에는 NTFS ACL이 있으며, 이를 파일 탐색기, icacls 명령줄 도구 또는 PowerShell을 사용하여 수정할 수 있습니다. NTFS 권한 모델에서 새 파일과 폴더는 상위 폴더의 권한을 상속합니다.

멀티프로토콜 사용자 매핑

이중 프로토콜 볼륨의 경우 클라이언트는 NFS와 SMB를 사용하여 동일한 데이터에 액세스할 수 있습니다. 볼륨의 보안 스타일을 UNIX 또는 NTFS 권한으로 설정하여 볼륨을 구성합니다.

듀얼 프로토콜 SMB 및 NFS 볼륨을 만들 때는 Active Directory에 기본 사용자가 포함되어 있는 것이 좋습니다. 기본 사용자는 NFS 클라이언트가 Active Directory에서 사용할 수 없는 사용자 ID를 사용하여 NFS 호출을 전송할 때 사용됩니다. 그러면 NetApp Volumes는 기본 UNIX 사용자 역할을 하는 pcuser라는 사용자를 조회하려고 시도합니다. 해당 사용자가 없으면 NFS 호출에 대한 액세스가 거부됩니다.

다음 속성을 사용하여 Active Directory에 기본 사용자를 만드는 것이 좋습니다.

  • uid = pcuser

  • uidnumber = 65534

  • cn = pcuser

  • gidNumber = 65534

  • objectClass = user

클라이언트에서 사용하는 프로토콜 (NFS 또는 SMB) 및 볼륨의 보안 스타일 (UNIX 또는 NTFS)에 따라 NetApp 볼륨은 사용자의 액세스 권한을 직접 확인하거나 먼저 사용자를 다른 플랫폼의 ID에 매핑해야 할 수 있습니다.

액세스 프로토콜 보안 방식 프로토콜에서 사용하는 ID 필수 매핑
NFSv3 Unix 사용자 ID 및 그룹 ID 해당 사항 없음
NFSv3 NTFS 사용자 ID 및 그룹 ID 사용자 ID - 사용자 이름 - 보안 식별자
SMB Unix 보안 식별자 보안 식별자에서 사용자 이름으로 사용자 ID로
SMB NTFS 보안 식별자 해당 사항 없음

매핑이 필요한 경우 NetApp Volumes는 Active Directory LDAP에 저장된 데이터를 사용합니다. 자세한 내용은 Active Directory 사용 사례를 참고하세요.

멀티프로토콜 사용자 매핑 시나리오: UNIX 볼륨에 대한 SMB 액세스

과학자 찰리 E. (찰리)는 Windows 클라이언트에서 SMB를 사용하여 NetApp 볼륨 볼륨에 액세스하려고 합니다. 볼륨에는 Linux 컴퓨팅 클러스터에서 제공하는 머신 생성 결과가 포함되어 있으므로 볼륨은 UNIX 권한을 저장하도록 구성됩니다.

Windows 클라이언트는 볼륨에 SMB 호출을 전송합니다. SMB 호출에는 보안 식별자로 사용자 ID가 포함됩니다. 보안 식별자는 사용자 ID 및 그룹 ID 파일 권한과 비교할 수 없으며 매핑이 필요합니다.

NetApp 볼륨은 필수 매핑을 완료하기 위해 다음 단계를 따릅니다.

  1. NetApp 볼륨은 Active Directory에 보안 식별자를 사용자 이름으로 확인하도록 요청합니다(예: S-1-5-21-2761044393-2226150802-3019316526-1224charliee로).

  2. NetApp 볼륨은 Active Directory에 charliee의 사용자 ID 및 그룹 ID를 반환하도록 요청합니다.

  3. NetApp 볼륨은 반환된 사용자 ID 및 그룹 ID를 사용하여 파일의 소유권 사용자 ID 및 그룹 ID에 대한 액세스를 확인합니다.

멀티프로토콜 사용자 매핑 시나리오: NTFS 볼륨에 대한 NFS 액세스

엔지니어 아말 L은 NFS를 사용하여 Linux 클라이언트에서 볼륨의 일부 데이터에 액세스해야 합니다. 볼륨은 주로 Windows 데이터를 저장하는 데 사용되므로 NTFS 보안 스타일로 구성됩니다.

Linux 클라이언트는 NetApp 볼륨에 NFS 호출을 전송합니다. NFS 호출에는 매핑 없이 보안 식별자에 일치시킬 수 없는 사용자 ID 및 그룹 ID 식별자가 포함됩니다.

필요한 매핑을 완료하기 위해 NetApp Volumes는 Active Directory에 사용자 ID의 사용자 이름을 요청하고 사용자 이름의 보안 식별자를 반환한 다음 반환된 보안 식별자를 사용하여 액세스된 파일의 소유자 보안 식별자에 대해 액세스를 확인합니다.

전송 중인 데이터 암호화

NFS

NFS 볼륨의 경우 최대 보안을 위해 Kerberos krb5p 암호화가 사용 설정된 NFSv4.1을 사용하세요.

SMB

SMB 볼륨의 경우 최대 보안을 위해 Active Directory 정책에서 AES 암호화를 사용 설정하고 볼륨에서 SMB 암호화를 사용 설정합니다.

볼륨 복제

NetApp Volumes는 Google Cloud 리전 간에 볼륨을 복제하여 데이터 보호를 제공할 수 있습니다. 트래픽이 Google Cloud에 있으므로 무단 가로채기를 방지하기 위해 액세스가 제한된 Google의 네트워크 인프라를 사용하므로 전송 프로세스가 안전합니다. 또한 복제 트래픽은 FIPS 140-2를 준수하는 TLS 1.2 표준을 사용하여 암호화됩니다.

통합 백업

통합 백업은 서비스 내에서 NetApp Volumes의 백업을 만듭니다. 백업 트래픽은 FIPS 140-2를 준수하는 TLS 1.2 표준 암호화를 사용하여 Google의 보안 네트워크 인프라 내에 유지됩니다. 또한 백업 보관소는 보안 강화를 위해 Google-owned and Google-managed encryption key 를 사용하여 이러한 백업을 저장합니다.

볼륨 이전

볼륨 마이그레이션은 소스 ONTAP 또는 Cloud Volumes ONTAP 시스템에서 NetApp Volumes로 데이터를 전송합니다. 소스 시스템과 NetApp 볼륨 간의 통신은 FIPS 140-2 준수 TLS 1.2 표준을 사용하여 암호화됩니다.

NetApp Volumes는 이전을 시작하고 다음 프로토콜과 포트를 사용합니다.

  • ICMP

  • 10000/TCP

  • 11104/TCP

  • 11105/TCP

ONTAP 시스템의 클러스터 간 로직 인터페이스 (LIF)와 NetApp Volumes의 이전 IP 주소 간에 있는 방화벽에서 이러한 포트를 허용하는지 확인합니다.

다음 단계

서비스 경계를 사용하여 NetApp 볼륨 보호