ファイル・ストレージのエクスポート・オプション
Roving Edge Deviceでは、NFSエクスポート・オプションにより、セキュリティ・リスト・ルールを使用する場合よりもきめ細かいアクセス制御を作成して、VCNアクセスを制限することができます。NFSエクスポート・オプションを使用すると、マウント・ターゲットでのエクスポートを通じてファイル・システムに接続するIPアドレスまたはCIDRブロックのアクセス・レベルを指定できます。アクセスを制限して、各クライアントのファイル・システムにアクセスできなくなり、他のユーザーに表示されなくなるようにすることで、マルチテナントの環境でより適切なセキュリティ制御が実現します。
NFSエクスポート・オプションのアクセス制御を使用すると、クライアントがファイル・システムに接続してデータの表示または書込みを行う機能を制限できます。たとえば、ファイル・システム内で、クライアントによるリソース消費を許可するが、リソースの更新は許可しない場合は、「読み取り専用」のアクセス権を設定します。また、ファイル・システムへのクライアント・ルート・アクセスを削減したり、指定したユーザーID (UID)およびグループID (GID)を、指定した匿名UID/GIDにマップすることもできます。
エクスポート・オプション
NFSクライアントがマウント・ターゲットに接続するときにファイル・システムにアクセスする方法は、エクスポートによって制御されます。ファイル・システムは、マウント・ターゲットを介してエクスポートされます(使用可能になります)。
NFSエクスポート・オプションとは、NFSクライアントがマウント・ターゲットに接続するときに付与されるアクセス権のレベルを指定する、エクスポート内の一連のパラメータです。エクスポート内のNFSエクスポート・オプション・エントリでは、単一のIPアドレスまたはCIDRブロック範囲に対するアクセス権を定義します。ファイル・システムにつき最大100のオプションを設定できます。
アクセスを定義する必要がある個別のクライアントIPアドレスまたはCIDRブロックごとに、インポートに個別のエクスポート・オプション・エントリが必要です。たとえば、NFSクライアントのIPアドレス 10.0.0.6、10.0.0.08、および 10.0.0.10のオプションを設定する場合は、IPアドレスごとに1つずつ、3つの個別のエントリを作成する必要があります。
同じファイル・システムと同じマウント・ターゲットを使用するエクスポートが複数ある場合、インスタンスに適用されるエクスポート・オプションは、インスタンスIPアドレスに最も近いソースを持つオプションです。最小(最も特定的な)一致がすべてのエクスポートで優先されます。したがって、すべてのエクスポートのソース値を確認することで、インスタンスに適用するエクスポート・オプションを決定できます。
たとえば、次の2つのエクスポート・オプションのエントリで、エクスポートのアクセスを指定する場合を考えます:
エントリ1: ソース: 10.0.0.8/32、アクセス: 読取り/書込み
エントリ2: ソース: 10.0.0.0/16、アクセス: 読取り専用
この場合、IPアドレス10.0.0.8からエクスポートに接続するクライアントには、読取り/書込みアクセス権があります。複数のエクスポート・オプションがある場合は、最も限定的な一致が適用されます。
複数のファイル・システムを同じマウント・ターゲットにエクスポートする場合は、最初に最小のネットワーク(最大のCIDR番号)でマウント・ターゲットにエクスポートする必要があります。詳細および手順については、My Oracle Support Doc ID 2823994.1を参照してください。
ファイル・システムは、1つ以上のマウント・ターゲット内に含まれる1つ以上のエクスポートに関連付けることができます。
クライアントのソースIPアドレスが単一エクスポートのリストのエントリと一致しない場合、そのエクスポートはクライアントに表示されません。ただし、ファイル・システムには、同じまたはその他のマウント・ターゲット上の他のエクスポートを介してアクセスできます。ファイル・システムへのクライアント・アクセスを完全に拒否するには、ファイル・システムに関連付けられたマウント・ターゲットのエクスポートに、クライアント・ソースIPアドレスまたはCIDRブロックが含まれないようにします。
様々なファイル共有シナリオのエクスポート・オプションを構成する方法の詳細は、NFSアクセス制御シナリオを参照してください。
エクスポート・オプションの構成の詳細は、「NFSエクスポート・オプションの設定」を参照してください。
NFSエクスポート・オプションのデフォルト
ファイル・システムを作成してエクスポートすると、そのファイル・システムのNFSエクスポート・オプションが次のデフォルトに設定され、すべてのNFSクライアント・ソース接続にフル・アクセスできるようになります。アクセスを制限する場合、これらのデフォルトを変更する必要があります:
ノート – CLIを使用してエクスポートオプションを設定するときに、空のアレイでオプションを設定した場合(オプションを指定しない場合)、どのクライアントからもエクスポートにアクセスできません。
| デバイス・コンソールのエクスポート・オプション | CLIのエクスポートオプション | デフォルト値 | 摘要 |
|---|---|---|---|
| ソース: |
|
0.0.0.0/0 |
接続しているNFSクライアントのIPアドレスまたはCIDRブロック。 |
| ポート: |
|
いずれか |
常に次のように設定します。
|
| アクセス: |
|
読取り/書込み |
ソースNFSクライアント・アクセスを指定します。次の値のいずれかに設定できます。
|
| Squash: |
|
なし |
rootとしてファイル・システムにアクセスしているクライアントに、ユーザーID (UID)とグループID(GID)がsquash UID/GIDに再マップされているかどうかを判断します。指定できる値は次のとおりです:
|
| スカッシュUID/GID: |
|
65534 |
この設定は、スカッシュオプションとともに使用されます。rootユーザーを再マップするときに、この設定を使用すると、デフォルトのanonymousUidおよびanonymousGidを任意のユーザーIDに変更できます。 |
NFSアクセス制御シナリオ
Roving Edgeデバイスでは、いくつかのシナリオを確認することでNFSアクセスを制御する様々な方法を学びます。
- シナリオA: ホスト・ベースのアクセスの制御: 2つのクライアントの管理環境を提供します。クライアントはマウント・ターゲットを共有しますが、それぞれ独自のファイル・システムを持ち、互いのデータにアクセスできません。
- シナリオB: データを書き込む機能の制限: 消費のためにデータをクライアントに提供しますが、データを更新することはできません。
- シナリオC: ファイル・システム・セキュリティの向上: ファイル・システムへの接続時にrootユーザーの権限を制限することで、セキュリティを強化します。
シナリオA: ホスト・ベースのアクセスの制御
Roving Edgeデバイスで、2つのクライアントの管理対象ホスト環境を指定します。クライアントはマウント・ターゲットを共有しますが、それぞれ独自のファイル・システムを持ち、互いのデータにアクセスできません。
次に例を示します。
-
クライアントAはCIDRブロック10.0.0.0/24に割り当てられており、ファイル・システムAに対する読取り/書込みアクセスが必要ですが、ファイル・システムBに対する読取り/書込みアクセスは必要ありません。
-
クライアントBはCIDRブロック10.1.1.0/24に割り当てられており、ファイル・システムAではなくファイル・システムBへの読取り/書込みアクセス権が必要です。
-
クライアントCはCIDRブロック10.2.2.0/24に割り当てられており、ファイル・システムAまたはファイル・システムBには一切アクセスできません。
-
AとBの両方のファイル・システムは、単一のマウント・ターゲット、MT1に関連付けられます。各ファイル・システムには、MT1のエクスポート・セットに含まれるエクスポートが存在します。
クライアントAとクライアントBが異なるCIDRブロックからマウント・ターゲットにアクセスするので、両方のファイル・システムのエクスポートにクライアント・オプションを設定することで、1つのCIDRブロックへのアクセスのみを許可できます。どちらかのファイル・システムのエクスポートにNFSエクスポート・オプションにIPアドレスまたはCIDRブロックを含めないため、クライアントCはアクセスを拒否されます。
デバイスコンソールの例
CIDRブロック10.0.0.0/24に割り当てられているクライアントAへの読取り/書込みアクセスのみを許可するように、ファイル・システムAのエクスポート・オプションを設定します。クライアントBおよびクライアントCはこのCIDRブロックに含まれないので、ファイル・システムにアクセスすることはできません。
| ソース | ポート | アクセス | Squash | スカッシュUID/GID |
|---|---|---|---|---|
| 10.0.0.0/24 | いずれか | 読取り/書込み | なし | (使用されていません) |
CIDRブロック10.1.1.0/24に割り当てられているクライアントBへの読取り/書込みアクセスのみを許可するように、ファイル・システムBのエクスポート・オプションを設定します。クライアントAおよびクライアントCはこのCIDRブロックに含まれないので、ファイル・システムにアクセスすることはできません。
| ソース | ポート | アクセス | Squash | スカッシュUID/GID |
|---|---|---|---|---|
| 10.1.1.0/24 | いずれか | 読取り/書込み | なし | (使用されていません) |
CLIの例
ファイル・システムAのエクスポート・オプションを設定して、CIDRブロック10.0.0.0/24に割り当てられているクライアントAへのRead_Writeアクセスのみを許可します。クライアントBおよびクライアントCはこのCIDRブロックに含まれないので、ファイル・システムにアクセスすることはできません。
oci fs export update --export-id <File_system_A_export_ID> --export-options \
'[{"source":"10.0.0.0/24","require-privileged-source-port":"false","access":"READ_WRITE","identity-squash":"NONE","anonymous-uid":"65534","anonymous-gid":"65534"}]'
CIDRブロック10.1.1.0/24に割り当てられているクライアントBへのRead_Writeアクセスのみを許可するように、ファイル・システムBのエクスポート・オプションを設定します。クライアントAおよびクライアントCはこのCIDRブロックに含まれないため、ファイル・システムにアクセスすることはできません。
oci fs export update --export-id <File_system_B_export_ID> --export-options \
'[{"source":"10.1.1.0/24 ","require-privileged-source-port":"false","access":"READ_WRITE","identity-squash":"NONE","anonymous-uid":"65534","anonymous-gid":"65534"}]'
シナリオB: データ書込み機能の制限
Roving Edgeデバイスでは、消費のために顧客にデータを提供しますが、データの更新は許可しません。
たとえば、アプリケーションが消費するためにリソースのセットをファイル・システムAで公開しても、変更しない場合があります。アプリケーションは、IPアドレス10.0.0.8から接続します。
デバイスコンソールの例
ファイル・システムAのエクスポートで、ソースIPアドレス10.0.0.8を読取り専用に設定します。
| ソース | ポート | アクセス | Squash | スカッシュUID/GID |
|---|---|---|---|---|
| 10.0.0.8 | いずれか | 読取り専用 | なし | (使用されていません) |
CLIの例
ファイル・システムAのエクスポートで、ソースIPアドレス10.0.0.8をREAD_ONLYに設定します。
oci fs export update --export-id <File_System_A_export_OCID> --export-options \
'[{"source":"10.0.0.8","require-privileged-source-port":"false","access":"READ_ONLY","identitysquash":"NONE","anonymousuid":"65534","anonymousgid":"65534"}]'
シナリオC: ファイル・システム・セキュリティの向上
Roving Edgeデバイスでは、セキュリティを強化するために、ファイル・システムAへの接続時にrootユーザーの権限を制限できます。Identity Squashを使用して、rootユーザーをUID/GID 65534に再マップします。
UNIXのようなシステムでは、このUID/GIDの組み合わせは、システム特権を持たないユーザー「nobody」用に予約されています。
デバイスコンソールの例
ファイル・システムAのエクスポートで、ソースIPアドレス10.0.0.8を読取り専用に設定します。
| ソース | ポート | アクセス | Squash | スカッシュUID/GID |
|---|---|---|---|---|
| 0.0.0.0/0 | いずれか | 読取り/書込み | ルート | 65534 |
CLIの例
oci fs export update --export-id <File_System_A_export_OCID> --export-options \
'[{"source":"0.0.0.0/0","require-privileged-source-port":"false","access":"READ_WRITE","identitysquash":"ROOT","anonymousuid":"65534","anonymousgid":"65534"}]'