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