ファイル・ストレージのエクスポート・オプション
Compute Cloud@Customerでは、NFSエクスポート・オプションを使用すると、セキュリティ・リスト・ルールを使用してVCNアクセスを制限する場合よりも詳細なアクセス制御を作成できます。NFSエクスポート・オプションを使用すると、マウント・ターゲットのエクスポートを介してファイル・システムに接続するIPアドレスまたはCIDRブロックのアクセス・レベルを指定できます。各クライアントのファイル・システムへのアクセスを不可にし、他のユーザーに表示されないようにアクセスを制限できます。これにより、マルチテナント環境でより適切なセキュリティ制御が提供されます。
NFSエクスポート・オプションのアクセス制御を使用すると、クライアントがファイル・システムに接続してデータを表示したり、書き込む機能を制限できます。たとえば、ファイル・システム内で、クライアントによるリソースの消費を許可するが、リソースの更新を許可しない場合は、読取り専用へのアクセスを設定できます。また、ファイル・システムへのクライアント・ルート・アクセスを削減したり、指定したユーザーID (UID)およびグループID (GID)を、選択した1つの匿名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のドキュメントID 2823994.1を参照してください。
ファイル・システムは、1つ以上のマウント・ターゲットに含まれる1つ以上のエクスポートに関連付けることができます。
クライアントのソースIPアドレスが単一エクスポートのリストのエントリと一致しない場合、そのエクスポートはクライアントに表示されません。ただし、ファイル・システムには、同じまたはその他のマウント・ターゲット上の他のエクスポートを介してアクセスできます。ファイル・システムへのクライアント・アクセスを完全に拒否するには、ファイル・システムに関連付けられたマウント・ターゲットのエクスポートに、クライアント・ソースIPアドレスまたはCIDRブロックが含まれないようにします。
様々なファイル共有シナリオのエクスポート・オプションを構成する方法の詳細は、NFSアクセス制御シナリオを参照してください。
エクスポート・オプションの構成の詳細は、「NFSエクスポート・オプションの設定」の項を参照してください。
NFSエクスポート・オプションのデフォルト
ファイル・システムとエクスポートを作成すると、そのファイル・システムのNFSエクスポート・オプションが次のデフォルトに設定され、すべてのNFSクライアント・ソース接続でフル・アクセスが可能になります。アクセスを制限する場合、これらのデフォルトを変更する必要があります:
ノート – CLIを使用してエクスポートオプションを設定するときに、空のアレイ(オプションを指定しない)でオプションを設定すると、どのクライアントからもエクスポートにアクセスできなくなります。
Compute Cloud@Customerコンソールのエクスポート・オプション | CLIのエクスポート・オプション | デフォルトの値 | 内容 |
---|---|---|---|
ソース: |
|
0.0.0.0/0 |
接続しているNFSクライアントのIPアドレスまたはCIDRブロック。 |
Ports: |
|
任意の |
常に次のように設定します。
|
アクセス: |
|
読取り/書込み |
ソースNFSクライアント・アクセスを指定します。次の値のいずれかに設定できます。
|
Squash: |
|
なし |
rootとしてファイル・システムにアクセスしているクライアントに、squash UID/GIDに再マップされたユーザーID (UID)およびグループID (GID)があるかどうかを判断します。指定できる値は次のとおりです:
|
スカッシュUID/GID: |
|
65534 |
この設定は、Squashオプションとともに使用されます。rootユーザーを再マップするときに、この設定を使用すると、選択したユーザーIDにデフォルトのanonymousUidおよびanonymousGidを変更できます。 |
NFSアクセス制御のシナリオ
Compute Cloud@Customerでは、いくつかのシナリオを確認することでNFSアクセスを制御する様々な方法を学習します。
- シナリオA: ホスト・ベースのアクセスの制御: 2つのクライアントに管理対象環境を提供します。クライアントはマウント・ターゲットを共有しますが、それぞれ独自のファイル・システムを持ち、他のデータにアクセスすることはできません。
- シナリオB: データの書込み能力の制限: クライアントに消費するデータを提供しますが、クライアントにデータの更新は許可しません。
- シナリオC: ファイル・システム・セキュリティの向上: ファイル・システムへの接続時にrootユーザーの権限を制限することで、セキュリティを向上させます。
シナリオA: ホスト・ベースのアクセスの制御
Compute Cloud@Customerで、2つのクライアントの管理対象ホスト環境を提供します。クライアントはマウント・ターゲットを共有しますが、それぞれ独自のファイル・システムを持ち、互いのデータにアクセスすることはできません。
たとえば、次のとおりです。
-
クライアントAはCIDRブロック10.0.0.0/24に割り当てられ、ファイル・システムAへの読取り/書込みアクセスが必要です。ファイル・システムBへのアクセスは必要ありません。
-
クライアントBはCIDRブロック10.1.1.0/24に割り当てられ、ファイル・システムBへの読取り/書込みアクセスが必要です。ファイル・システムAへのアクセスは必要ありません。
-
クライアントCはCIDRブロック10.2.2.0/24に割り当てられ、ファイル・システムAまたはファイル・システムBにはどのような種類のアクセス権も付与されません。
-
ファイル・システムAとファイル・システムBの両方は、単一のマウント・ターゲットMT1に関連付けられます。各ファイル・システムには、MT1のエクスポート・セットに含まれるエクスポートが存在します。
クライアントAとクライアントBは異なるCIDRブロックからマウント・ターゲットにアクセスするため、両方のファイル・システムのエクスポートにクライアント・オプションを設定することで、1つのCIDRブロックへのアクセスを許可できます。いずれかのファイル・システムのエクスポートのNFSエクスポート・オプションにIPアドレスまたはCIDRブロックを含めないと、クライアントCはアクセスを拒否されます。
Compute Cloud@Customerコンソールの例
ファイル・システムAのエクスポート・オプションを設定して、CIDRブロック10.0.0.0/24に割り当てられているクライアントAへの読取り/書込みアクセスのみを許可します。クライアントBおよびクライアントCはこのCIDRブロックに含まれないため、ファイル・システムにアクセスできません。
ソース | ポート | アクセス | Squash | スカッシュUID/GID |
---|---|---|---|---|
10.0.0.0/24 | 任意の | 読取り/書込み | なし | (使用されません。) |
ファイル・システムBのエクスポート・オプションを設定して、CIDRブロック10.1.1.0/24に割り当てられているクライアント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"}]'
ファイル・システムBのエクスポート・オプションを設定して、CIDRブロック10.1.1.0/24に割り当てられているクライアントBにのみRead_Write
アクセスできるようにします。クライアント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: データ書込み機能の制限
Compute Cloud@Customerで、消費する顧客にデータを提供しますが、データの更新は許可しません。
たとえば、アプリケーションが消費するためにリソースのセットをファイル・システムAで公開しても、変更しない場合があります。アプリケーションは、IPアドレス10.0.0.8から接続します。
Compute Cloud@Customerコンソールの例
ファイル・システム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: ファイル・システム・セキュリティの向上
Compute Cloud@Customerで、セキュリティを強化するために、ファイル・システムAへの接続時にrootユーザーの権限を制限できます。Identity Squashを使用して、ルート・ユーザーをUID/GID 65534に再マップします。
UNIXライクなシステムでは、このUID/GIDの組み合わせは、システム特権を持たないユーザー「nobody」用に予約されています。
Compute Cloud@Customerコンソールの例
ファイル・システム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"}]'