次のガイドでは、NFSv4.1 プロトコルについて説明します。
Filestore は、次のサービス階層で作成されたインスタンスに対して NFSv4.1 プロトコルをサポートしています。
- ゾーン
- リージョン
- Enterprise
この機能は、Managed Service for Microsoft Active Directory(Managed Microsoft AD)と統合して、クライアントとサーバーの認証、メッセージ データの完全性チェック、および転送中のデータの暗号化(Filestore では以前に利用できなかった機能)を必要とするワークロードをサポートします。
認証は LDAP と Kerberos を使用してサポートされており、次のセキュリティ フレーバー(設定)が含まれています。
- クライアントとサーバーの認証(
krb5
)。 - メッセージ完全性チェック(
krb5i
)。前の設定の機能が含まれています。 - 転送中のデータの暗号化(
krb5p
)。前の設定の機能が含まれています。
Managed Microsoft AD は、LDAP と Kerberos の両方および NFSv4.1 プロトコルとそのセキュリティとプライバシーの便益の要件をサポートする唯一のフルマネージド Google Cloud ソリューションです。Managed Microsoft AD との統合は必須ではありませんが、ユーザー アカウントを管理し、変動するグループと権限を管理する最適なユーザー エクスペリエンスを強くおすすめします。 Google Cloud
NFSv4.1 を使用するべきか
多くの企業組織は、ビジネス クリティカルな運用で以前のシステムに依存しています。これらのシステムの多くでは、ネットワーク ファイル ストレージに認証と転送中の暗号化が必要です。NFSv3 は認証を想定して設計されていません。Filestore の NFSv4.1 プロトコルと Managed Microsoft AD の統合により、この重要なユーザー要件が満たされるようになりました。
NFSv4.1 のメリットの詳細については、サポートされているプロトコルについてをご覧ください。
NFSv4.1 のネットワーク ベースのアクセス制御リスト(ACL)について。
NFSv3 では、sys
セキュリティ フレーバーのみがサポートされています。この設定では、マウント中にクライアントによって提供されたユーザー uid
と gid
が信頼されます。
Filestore NFSv4.1 プロトコルでは、いくつかのネットワーク ACL セキュリティ フレーバーまたは設定を使用できます。
krb5
Kerberos チケットを使用してクライアントを認証します。これは、Managed Microsoft AD Kerberos サーバーに対して検証されます。
krb5i
krb5
によって提供される認証を含み、インスタンスとの間のすべてのネットワーク トラフィックに対してメッセージの完全性チェックを実行するために Kerberos も使用します。krb5p
krb5
によって提供される認証とkrb5i
のメッセージ完全性チェックを含み、転送中のデータの暗号化に Kerberos を使用します。
これらのオプションを利用するには、Managed Service for Microsoft Active Directory との統合が必要です。詳細については、Managed Microsoft AD を使用して Filestore インスタンスを作成するをご覧ください。
Managed Service for 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 インスタンスと同じ Managed Microsoft AD ドメインに接続する必要があります。環境に応じて、次の手順を完了します。
Ubuntu イメージ
- Compute Engine インスタンスに SSH 接続します。
次のコマンドを実行して、Managed 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 インスタンスで使用されている Managed Microsoft AD ドメインに置き換えます。値を大文字で入力してから、矢印キーを押して [OK] を選択し、[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 は、使用する Managed 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 は、使用する Managed Microsoft AD サービスのレルム名です。
- MANAGED_AD_DOMAIN_NAME は、使用する Managed 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 接続します。
Managed 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 は、使用する Managed 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 は、使用する Managed Microsoft AD サービスのレルム名です。
- MANAGED_AD_DOMAIN_NAME は、使用する Managed 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