ファイル システムの認証と認可
ワークロードの全体的なパフォーマンスとトラフィックの特性を理解したら、セキュリティ面を考慮する必要があります。 患者の放射線画像など、データは機密である場合があります。 さまざまな理由で、データへのアクセスを制限する必要がある場合があります。 各研究者に、"ホーム ディレクトリ" を提供し、そこからデータの読み込みと HPC 分析およびシミュレーションを行えるようにする必要がある可能性があります。
クラウド HPC ストレージを選択する場合は、現在のセキュリティ態勢とどのように統合させるかに注意してください。 ファイル システムでファイルへのアクセスを認証および認可する方法について理解します。 ローカルまたはリモート (あるいはその両方) のどちらで適用するか、および認証と認可の提供元はどこであるかに注目してください。 リモート共有ファイル システムを使用している場合は、標準の NAS プラクティスを使ってアクセスを制御する方法を理解する必要があります。 最後に、ユーザーに独自の作業スペース (ホーム ディレクトリ) を提供する場合は、そのスペースを割り当てる方法を理解します。
このユニットでは、セキュリティに関する考慮事項と、それらがストレージ アーキテクチャにどのように影響するかを調べます。
認証と認可の概要
認証: ファイル システムへのアクセスを提供するときは、何らかの信頼できる資格情報を使用して、要求元を認証する必要があります。 多くのクライアント/サーバー アーキテクチャでは、ユーザー アカウントやコンピューター アカウントなど、そのような資格情報に対してチャレンジが発行されます。 次に、それらの資格情報がチェックされ、その環境に対して有効であることが確認されます。 認証が完了すると、要求元 (ユーザーまたはコンピューター/プロセス) が認可されます。 環境に必要なアクセス プロトコルによって、ソリューションの認証が制限される場合があります。 たとえば、Windows 環境がある場合、サーバー メッセージ ブロック (SMB) をネットワーク ファイル アクセス プロトコルとして使用している可能性が高いです。 SMB 認証の要件は、NFS の要件とは異なります。
認可: ユーザーまたはコンピューターの環境へのアクセスを許可することも 1 つのことですが、アクセスのレベルはどうしますか。 たとえば、ユーザー A がファイル システム上のファイルを読み取ることができ、ユーザー B がファイルの読み取りと書き込みを行うことができるとします。 認可は、読み取りと書き込みよりも深く切り込むことができます。 たとえば、ユーザー C はファイルを変更することはできるが、特定のディレクトリに新しいファイルを作成することはできないなどです。
認可のレベルは、多くの場合、特定のファイルのアクセス許可として表現されます。 これには、読み取り、書き込み、実行が含まれます。
ユーザーとグループ: 多数のユーザーがいる場合、一連のリソースへのアクセス権の付与が煩わしくなることがあります。 また、多数のユーザーのセットに対してさまざまなレベルのアクセス権を付与しようとする場合も、複雑になります。 グループの使用が必要になります。 それによって特定のグループや一連のグループにユーザーを割り当てることができます。 次に、そのグループ ID に基づいてリソースへのアクセスを認可できます。
まとめると、認証と認可は、ここの例のファイルでは、リソースに付与しようとしているユーザー レベル、グルー プレベル、コンピューター レベルのアクセス権を表します。
Linux OS では、個々のユーザー アカウントにユーザー識別子 (UID) が割り当てられます。 UID は整数です。 システムで、特定のユーザーがアクセスできるシステム リソース (ファイルやフォルダーを含む) を決定するために使用されます。
Linux OS では、グループ割り当てにグループ識別子 (GID) が使用されます。 ユーザーは 1 つのプライマリ グループに関連付けられます。 ユーザーは、最新の Linux システムで最大 65536 個の実質的に任意の数の追加のグループ割り当てに関連付けることができます。
ローカルおよびリモートの認証と認可
ローカル認証と認可とは、コンピューターに対して同様にローカルなユーザーまたはコンピューター アカウントによるローカル ファイル システムへのアクセスを表します。 たとえば、自分のローカル ファイル システムにある /data ディレクトリへのアクセス権を付与するユーザー アカウントを作成するとします。 ディレクトリへのすべてのアクセス権の付与と同様に、そのユーザー アカウントはローカルです。 グループ割り当てを使用してアクセスを制御することもできます。 ユーザーとグループの認可の組み合わせによって、ユーザーに、ファイルまたはフォルダーへの有効なアクセス許可を与えます。
ls -al
ディレクトリ コマンドの一般的な出力を見ると、このように表示される場合があります。
drwxr-xr-x 4 root root 4096 Dec 31 19:43.
drwxr-xr-x 13 root root 4096 Dec 11 05:53 ..
drwxr-xr-x 6 root root 4096 Dec 31 19:43 microsoft
drwxr-xr-x 8 root root 4096 Dec 31 19:43 omi
-rw-r--r-- 1 root root 0 Jan 21 15:10 test.txt
drwxr-xr-x
文字は、ユーザーやグループがファイルまたはディレクトリに対して持つ認可済みのアクセス レベルを表しています。 d
は、エントリがディレクトリであることを示します (最初の値が -
の場合、そのエントリはファイル エントリです)。残りの文字は、読み取り (r)、書き込み (w)、および実行 (x) のアクセス許可グループの認可を表します。 最初の 3 つの値は、ファイルまたはディレクトリの "所有者" を示します。 2 つ目の 3 つの値は、ファイルまたはディレクトリに割り当てられたグループのアクセス許可を示します。 最後の 3 つの値は、システム上の他のすべてのユーザーに許可されているアクセス許可を示します。
次に例を示します。
-rw-r--r-- 1 root root 0 Jan 21 15:10 test.txt
-
は、このリソースがファイルであることを示します。rw-
は、所有者に読み取りおよび書き込みアクセス許可があることを示します。r--
は、割り当てられたグループに読み取りアクセス許可のみがあることを示します。r--
は、残りのユーザーに読み取りアクセス許可のみがあることを示します。- また、所有ユーザーと割り当てられたグループが 2 つの
root
列で表されていることにも注意してください。
UID、およびプライマリと補足の GID は、ローカル コンピューター上の認証済みユーザーを表します。 これらの値は、そのコンピューターに対してローカルです。 コンピューターが 5 台または 50 台ある場合はどうなるでしょうか。 それらの各コンピューターで UID と GID の割り当てをレプリケートする必要がある場合があります。 ユーザー管理に関する複雑さのレベルが大きくなり、間違ったユーザーにファイルやフォルダーのアクセス権が誤って付与される可能性も高くなります。
NFS を使用したリモート ファイル アクセス
すべてを 1 つのユーザーまたはグループの割り当てとして実行している場合、ローカルの UID と GID の割り当ては正常に機能します。 実行している HPC クラスターを複数の利害関係者が使用しており、各利害関係者が機密データを持っており、そのデータに複数のコンシューマーがいる場合はどうでしょうか。
ファイル サーバーまたは NAS 環境にデータを置くと、データのリモート アクセスが可能になります。 このアプローチは、ローカル ディスクのコストを削減し、すべてのユーザーに対して、データを最新の状態に保ち、ユーザーとグループの全体の管理を軽減するのに役立ちます。
ファイルを一元的に配置すると、ユーザーとグループの構成を含むディレクトリ サービスが必要になる場合があります。 Active Directory やライトウェイト ディレクトリ アクセス プロトコル (LDAP) などのディレクトリ サービスにより、すべてのリモート システムで使用できるユーザーまたはグループ マッピングを作成できます。 リモート コンピューターおよび NAS 環境を、ディレクトリ サービスのクライアントとして構成します。 また、Windows ユーザー アカウントと特定の UID や GID の組み合わせの間で Active Directory マッピングを使用することもできます。
リモートでファイルにアクセスする一般的な方法は、NFS、SMB、または Lustre などの並列ファイル システムなどのネットワーク ファイル システムを使用することです。 これらのプロトコルでは、データにアクセスするためのクライアントおよびサーバー API が定義されています。 NFS の操作については、「ファイル システムのパフォーマンスに関する考慮事項」ユニットで説明しました。 NFS の使用方法については、次のユニットで詳しく説明します。
Note
NFS を使用する場合、ディレクトリ サービスは必要ありません。 ただし、使用しない場合、ユーザーとシステムの数が多い場合に、UID と GID の管理がまだ困難です。
ホーム ディレクトリ
複数の研究者が使用しているが、それぞれの独自のデータを別々に保持する必要がある HPC 環境があるとします。 それらの研究者は独自のデータを絶えず変更し、追加しているとします。 研究者に独自のホーム ディレクトリを提供することは、データを分離するための効率的な方法です。
各研究者は、ホーム ディレクトリ内のアクセス許可を処理するため、必要に応じて共同作業できます。
この環境の主な課題の 1 つは、記憶域スペースです。 たとえば、500 TB の NAS 環境があるとします。 1 人の研究員がそのすべてを使ってしまうのをどうやって止めますか。
個々のディレクトリにクォータを割り当てることができます。 クォータは、許可されるデータの最大量を表します。 クォータに達したら、それ以上のデータを拒否させたり、研究者が制限を超えたことを管理者に警告させたりすることができます。 たとえば、NAS システムがある場合、各研究者にクォータを割り当てることができます。 さらに、それぞれのアクセスをホーム ディレクトリに分離すると、研究者の使用状況の構成と監視が簡単になります。