このページでは、Google Cloud NetApp Volumes のセキュリティに関する考慮事項の概要について説明します。
ネットワーキングのセキュリティ上の考慮事項
Google Cloud NetApp Volumes は、次の分離されたセキュリティ レイヤを備えた安全なアーキテクチャ フレームワークを提供します。
プロジェクト レベルのセキュリティ: 管理者が Google Cloud コンソール、Google Cloud SDK、API を使用して、ストレージ プールやボリュームなどの NetApp Volumes リソースを管理するために使用する管理セキュリティ レイヤ。IAM のロールと権限がこのレイヤを保護します。プロジェクト レベルのセキュリティの詳細については、IAM 権限を設定するをご覧ください。
ネットワーク レベルのセキュリティ: ネットワーク接続ストレージ(NAS)プロトコル(サーバー メッセージ ブロック(SMB)とネットワーク ファイル システム(NFS))を使用してデータ ボリュームにアクセスするために使用されるネットワーク レイヤ。
Virtual Private Cloud ネットワークを介して、NAS プロトコルを使用してボリューム内のデータにアクセスできます。NetApp Volumes へのすべてのデータアクセスは、VPC ピアリング ルーティングを VPC に置き換えるためにサードパーティ ソリューションを明示的に使用する場合を除き、VPC 経由でのみ可能です。
VPC 内では、ファイアウォールとプロトコル固有のアクセス制御メカニズムの設定により、アクセスをさらに制限できます。
ボリューム アクセスのファイアウォール ルール
ファイアウォール ルールは VPC を保護します。 Google Cloud クライアントから NetApp Volumes へのアクセスを有効にするには、特定のネットワーク トラフィックを許可する必要があります。
NFS ボリューム アクセスのファイアウォール ルール
NFS は、クライアントとサーバー間の通信にさまざまなポートを使用します。適切な通信とボリュームのマウントを成功させるには、ファイアウォールでポートを有効にする必要があります。
NetApp Volumes は NFS サーバーとして機能し、NFS に必要なネットワーク ポートを公開します。NFS クライアントに次の NetApp Volumes ポートと通信する権限があることを確認します。
111 TCP/UDP portmapper
635 TCP/UDP mountd
2049 TCP/UDP nfsd
4045 TCP/UDP nlockmgr
(NFSv3 のみ)4046 TCP/UDP status
(NFSv3 のみ)
NetApp Volumes の IP アドレスは、ネットワーク ピアリング中にサービスに割り当てた CIDR 範囲から自動的に割り当てられます。詳細については、CIDR を選択するをご覧ください。
NFSv3 でのアドバイザリ ロックの使用
NFSv3 でアドバイザリ ロックを使用する場合は、クライアントで rpc.statd
デーモンを実行して、ネットワーク ロック マネージャーをサポートする必要があります。これは、NFS と連携して動作し、ネットワーク経由で System V
スタイルのアドバイザリ ファイルとレコード ロックを提供する機能です。NFS クライアントは、rpc.statd
の上り(内向き)ポートを開いて、ネットワーク ロック マネージャーのコールバックを受信する必要があります。ほとんどの Linux ディストリビューションでは、最初の NFS 共有をマウントすると rpc.statd
が起動します。ランダムなポートを使用します。このポートは rpcinfo -p
コマンドで確認できます。rpc.statd
をファイアウォールに適合させるには、静的ポートを使用するように構成します。
rpc.statd
の静的ポートを設定するには、次のリソースをご覧ください。
NFSv3 アドバイザリ ロックまたはネットワーク ロック マネージャーを使用しない場合は、nolock
マウント オプションを使用して NFSv3 共有をマウントすることをおすすめします。
NFSv4.1 は、NFSv4.1 プロトコル自体内でロック機能を実装します。この機能は、ポート 2049 の NFSv4.1 サーバーへのクライアント開始 TCP 接続を介して実行されます。クライアントは、上り(内向き)トラフィック用にファイアウォール ポートを開く必要はありません。
SMB ボリューム アクセスのファイアウォール ルール
SMB は、クライアントとサーバー間の通信にさまざまなポートを使用します。適切な通信を確保するには、ファイアウォールでポートを有効にする必要があります。
NetApp Volumes は SMB サーバーとして機能し、SMB に必要なネットワーク ポートを公開します。SMB クライアントが次の NetApp Volumes ポートと通信できることを確認します。
445 TCP SMB2/3
135 TCP msrpc
と40001 TCP SMB CA
: SMB 3.x の継続的に利用可能な共有でのみ使用されます。これらのポートは、継続的に使用できない共有には必要ありません。
このサービスはポート 139/TCP
を公開しますが、使用しません。
NetApp Volumes の IP アドレスは、ネットワーク ピアリング中にサービスに割り当てた CIDR 範囲から自動的に割り当てられます。詳細については、CIDR を選択するをご覧ください。
SMB クライアントが SMB を機能させるために上り(内向き)ポートを公開する必要はありません。
Active Directory アクセス用のファイアウォール ルール
NetApp Volumes は、Active Directory ドメイン コントローラを識別するために、Active Directory ポリシーで構成された DNS サーバーの次のポートにアクセスする必要があります。NetApp Volumes は、Active Directory ドメイン コントローラの検出に DNS ルックアップを使用します。
ICMPV4
DNS 53 TCP
DNS 53 UDP
すべての Active Directory ドメイン コントローラで、NetApp Volumes の 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 サーバーに適用します。
ファイアウォール ルールを 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
ファイアウォール ルールを 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 の CIDRVPC_NAME
: VPC の名前
次のタグを DNS サーバーに適用します。
allow-netappvolumes-to-dns
次のタグをドメイン コントローラに適用します。
allow-netappvolumes-to-activedirectory
NFS プロトコルのボリューム アクセス制御
NetApp Volumes は、最大 20 個のエクスポート ルールを含む単一のエクスポート ポリシーを使用して、NFS プロトコルによるアクセスを保護します。エクスポート ルールは、ボリュームのマウントを許可するクライアントを指定する IPv4 アドレスと IPv4 CIDR のカンマ区切りリストです。NetApp Volumes は、エクスポート ルールを順番に評価し、最初の一致が見つかると停止します。最良の結果を得るには、最も具体的なルールから最も一般的なルールまで、エクスポート ルールを順序付けすることをおすすめします。
次のタブを使用して、NFS バージョンに基づくポリシーを確認します。
Kerberos を使用しない NFS
Kerberos を使用しないすべての NFS バージョンは、AUTH_SYS
セキュリティ フレーバーを使用します。このモードでは、信頼できるクライアントのみを許可し、ユーザー ID とグループ ID の完全性を確保できるように、エクスポート ルールを厳密に管理する必要があります。
セキュリティ対策として、NFS サーバーは UID=0
(root)の NFS 呼び出しを UID=65535
(匿名)に自動的にマッピングします。この匿名ユーザーには、ファイル システムに対する権限が制限されています。ボリュームの作成時に、ルートアクセス オプションを有効にしてこの動作を制御できます。ルートアクセスを有効にすると、ユーザー ID 0
は 0
のままになります。ベスト プラクティスとして、既知の管理者ホストの root アクセスを有効にし、他のすべてのクライアントの root アクセスを無効にする専用のエクスポート ルールを作成します。
Kerberos を使用した NFSv4.1
Kerberos を使用する NFSv4.1 は、エクスポート ポリシーと Kerberos を使用した追加の認証を使用してボリュームにアクセスします。次の対象に適用するエクスポート ルールを構成できます。
Kerberos のみ(
krb5
)Kerberos 署名(
krb5i
)Kerberos プライバシー(
krb5p
)
SMB プロトコルのボリューム アクセス制御
SMB は、共有レベルの権限を使用してボリューム アクセスを保護し、Active Directory に対する認証を必要とします。これらの権限を使用すると、ネットワーク経由で共有にアクセスできるユーザーを制御できます。
ボリュームは、Everyone と Full Control の共有レベルの権限で作成されます。共有レベルの権限は、Windows コンソールまたは Windows CLI を使用して変更できます。
Windows コンソールまたは Windows CLI を使用して SMB 共有レベルの権限を変更するには、次の操作を行います。
Windows コンソール
[Windows スタート] アイコンを右クリックし、[コンピューターの管理] を選択します。
[Computer Management] コンソールが開いたら、[Action] > [Connect to another computer] をクリックします。
[Select Computer] ダイアログで、SMB 共有の NetBIOS 名を入力し、[OK] をクリックします。
ファイル共有に接続したら、[システム ツール] > [共有フォルダ] > [共有] に移動して、共有を検索します。
[共有名] をダブルクリックし、[共有権限] タブを選択して、共有の権限を制御します。
Windows CLI
Windows コマンドラインを開きます。
ファイル共有に接続します。
fsmgmt.msc /computer=<netbios_name_of_share>
ファイル共有に接続したら、[システム ツール] > [共有フォルダ] > [共有] に移動して、共有を検索します。
[共有名] をダブルクリックし、[共有権限] タブを選択して、共有の権限を制御します。
ファイル アクセス制御
以降のセクションでは、NetApp Volumes のファイルレベルのアクセス制御について詳しく説明します。
ボリュームのセキュリティ スタイル
NetApp Volumes には、Linux プラットフォームと Windows プラットフォームのさまざまな権限セットに対応するために、UNIX と NTFS の 2 つのセキュリティ スタイルが用意されています。
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 Volumes はモードビットと呼ばれる標準の UNIX 権限モデルを使用して、ファイルとディレクトリへのアクセス権限を確認します。権限の設定と変更は chmod
を使用して行えます。
NFSv4.1 ボリュームでは、NFSv4 アクセス制御リスト(ACL)も使用できます。ファイルまたはディレクトリにモードビットと NFSv4 ACL の両方がある場合、権限チェックには ACL が使用されます。NFSv3 と NFSv4.1 の両方のプロトコル タイプを使用するボリュームにも同様のことが当てはまります。nfs4_getfacl
と nfs4_setfacl
を使用して、NFSv4 ACL を設定および変更できます。
新しい UNIX スタイルのボリュームを作成すると、root:root
はルート inode の所有権と 0770
権限を持ちます。この所有権と権限の設定により、マウント後に非 root ユーザーがボリュームにアクセスすると permission denied
エラーが発生します。root 以外のユーザーがボリュームにアクセスできるようにするには、root ユーザーが chown
を使用して root 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 Volumes はユーザーのアクセス権を直接確認するか、最初にユーザーを他のプラットフォームの ID にマッピングする必要があります。
アクセス プロトコル | セキュリティ スタイル | プロトコルで使用される ID | 必要なマッピング |
---|---|---|---|
NFSv3 | UNIX | ユーザー ID とグループ ID | なし |
NFSv3 | NTFS | ユーザー ID とグループ ID | ユーザー ID からユーザー名、セキュリティ識別子へのマッピング |
SMB | UNIX | セキュリティ ID | セキュリティ識別子からユーザー名、ユーザー ID へのマッピング |
SMB | NTFS | セキュリティ ID | なし |
マッピングが必要な場合、NetApp Volumes は Active Directory LDAP に保存されているデータに依存します。詳細については、Active Directory のユースケースをご覧ください。
マルチプロトコル ユーザー マッピングのシナリオ: UNIX ボリュームへの SMB アクセス
科学者のチャーリー E. (charliee)は、Windows クライアントから SMB を使用して NetApp Volumes ボリュームにアクセスしたいと考えています。ボリュームには Linux コンピューティング クラスタによって提供されるマシン生成の結果が含まれているため、ボリュームは UNIX 権限を保存するように構成されています。
Windows クライアントがボリュームに SMB 呼び出しを送信します。SMB 呼び出しには、セキュリティ識別子としてユーザー ID が含まれます。セキュリティ識別子はユーザー ID とグループ ID のファイル権限と照合できないため、マッピングが必要です。
必要なマッピングを完了するために、NetApp Volumes は次の手順を行います。
NetApp Volumes は、Active Directory にセキュリティ ID をユーザー名に解決するよう要求します(例:
S-1-5-21-2761044393-2226150802-3019316526-1224
からcharliee
)。NetApp Volumes は Active Directory に
charliee
のユーザー ID とグループ ID を返すよう要求します。NetApp Volumes は、返されたユーザー ID とグループ ID を使用して、ファイルの所有権のユーザー ID とグループ ID に対してアクセスを確認します。
マルチプロトコル ユーザー マッピングのシナリオ: NTFS ボリュームへの NFS アクセス
エンジニアの Amal L. は、NFS を使用して Linux クライアントからボリューム上のデータにアクセスする必要があります。このボリュームは主に Windows データの保存に使用されるため、NTFS セキュリティ スタイルで構成されています。
Linux クライアントは、NetApp Volumes に NFS 呼び出しを送信します。NFS 呼び出しには、マッピングなしではセキュリティ ID と照合できないユーザー 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 の安全なネットワーク インフラストラクチャ内に留まります。また、Backup Vault は、セキュリティを強化するために Google-owned and Google-managed encryption key を使用してこれらのバックアップを保存します。
ボリュームの移行
ボリュームの移行では、移行元の ONTAP または Cloud Volumes ONTAP システムから NetApp Volumes にデータが送信されます。ソースシステムと NetApp Volumes 間の通信は、FIPS 140-2 準拠の TLS 1.2 標準を使用して暗号化されます。
NetApp Volumes は移行を開始し、次のプロトコルとポートを使用します。
ICMP
10000/TCP
11104/TCP
11105/TCP
ONTAP システムのクラスタ間論理インターフェース(LIF)と NetApp Volumes の移行 IP アドレスの間のファイアウォールで、これらのポートが許可されていることを確認します。
次のステップ
サービス境界を使用して NetApp ボリュームを保護する。