Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】EFSのアクセスポイントについて色々試してみた

2025年09月22日に「Qiita」が公開したITニュース「EFSのアクセスポイントについて色々試してみた」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

AWSの共有ファイルシステムEFSは、アクセスポイントを使うと特定のユーザーやディレクトリのみアクセス可能にできる。この記事では、EFSアクセスポイントの様々な設定をEC2からマウントして検証し、その挙動を詳細に解説した。

ITニュース解説

EFS(Amazon Elastic File System)は、複数のサーバーから同時にアクセスできる、クラウド上の共有ファイルシステムだ。ちょうどオフィスの共有ファイルサーバーのように、たくさんのコンピューターから同じデータにアクセスして利用できる点が特徴だ。EFSは、データを保存する場所として利用され、特にWebサーバーや開発環境など、複数のEC2インスタンス(Amazon Elastic Compute Cloud、クラウド上の仮想サーバー)から共通のファイルが必要な場合に非常に便利だ。

EFSにEC2インスタンスからアクセスする際、通常はNFS(Network File System)というプロトコルを使ってマウント(外部のストレージを自分のPCから使えるように接続すること)する。しかし、NFSをそのまま使うと、EFS全体のファイルシステムが見えてしまい、特定のユーザーやアプリケーションに限定したアクセス制御が難しい場合がある。そこで登場するのがEFSアクセスポイントだ。

EFSアクセスポイントは、EFSに対する特定のアクセス経路を提供する機能だ。これにより、より細かくアクセス権限を制御し、セキュリティを高め、EFSの管理をシンプルにできる。アクセスポイントには主に二つの重要な設定項目がある。一つは「ルートディレクトリ」、もう一つは「POSIXユーザー/グループIDとパーミッション」だ。

まず「ルートディレクトリ」について説明する。通常、EC2からEFSをマウントすると、EFSの最上位のディレクトリ(ルート)全体が見えてしまう。しかし、アクセスポイントのルートディレクトリを設定すると、EC2インスタンスからはその設定されたディレクトリがEFSのルートディレクトリであるかのように見えるようになる。例えば、EFS内に「/applications/webapp」というディレクトリがあったとして、アクセスポイントのルートディレクトリを「/applications/webapp」と設定すると、EC2からこのアクセスポイント経由でマウントした場合は、「/applications/webapp」がEC2から見て「/」のように振る舞うのだ。これにより、特定のアプリケーションが利用するデータだけを公開し、他のデータへのアクセスを制限できる。これは、アプリケーションごとに専用のストレージ領域を与え、他のアプリケーションとの干渉を防ぐのに役立つ。

次に「POSIXユーザー/グループIDとパーミッション」についてだ。EFSはLinuxのファイルシステムに似たアクセス制御メカニズムを持つ。ファイルの所有者、グループ、その他のユーザーに対して、読み取り、書き込み、実行の権限を設定する「パーミッション」という仕組みだ。通常のNFSマウントでは、EC2インスタンスでEFSにアクセスしたユーザーのID(UID)とグループID(GID)がそのままEFSに伝わり、そのIDに基づいて権限がチェックされる。しかし、アクセスポイントを使うと、この挙動を変えられる。

アクセスポイントのPOSIX ID設定では、EFSにアクセスする際に、常に特定のUIDとGIDを持つユーザーとして扱われるように指定できる。例えば、EC2インスタンス上で「ec2-user」というユーザー(UID 1000)がEFSにアクセスしたとしても、アクセスポイントで「UID 1001, GID 1002」と設定していれば、EFS上では「UID 1001, GID 1002」のユーザーとして扱われる。これにより、EC2インスタンス上のユーザーIDに関わらず、EFS上でのファイル操作の権限を統一的に管理できるようになる。これは、複数の開発者が異なるユーザーIDで作業する場合でも、EFS上のファイル所有者を一貫させたい場合に非常に有効だ。

さらに、アクセスポイントは「作成パーミッション」という設定も持っている。これは、アクセスポイントで指定したルートディレクトリがEFS上に存在しない場合に、そのディレクトリを自動的に作成し、どのようなパーミッション(読み書き実行の権限)で作成するかを指定するものだ。もしルートディレクトリが存在せず、作成パーミッションも指定されていない場合、EFSへのマウントは失敗する。しかし、作成パーミッションを設定しておけば、初めてマウントする際にもスムーズに利用開始できる。例えば、ルートディレクトリを「/data/app1」とし、作成パーミッションを「755」と設定すれば、「/data/app1」ディレクトリが存在しない場合に自動で作成され、所有者には読み書き実行権限、グループとその他には読み取りと実行権限が付与される。

これらの設定を組み合わせることで、より高度なアクセス制御が可能になる。例えば、複数のチームがEFSを利用する場合、チームAには「/teamA」ディレクトリへのアクセスポイントを、チームBには「/teamB」ディレクトリへのアクセスポイントをそれぞれ提供し、それぞれのアクセスポイントに特定のPOSIXユーザーIDとパーミッションを設定できる。これにより、各チームは自分の領域にのみアクセスでき、他のチームのデータには干渉できないようにできるのだ。

今回の検証では、これらのアクセスポイントの挙動が具体的にどうなるかが確認されている。ルートディレクトリが存在しない場合の挙動、作成パーミッションの有無による違い、POSIX IDの設定がファイル作成時の所有者情報にどう影響するか、といった点が細かく試されている。特に、アクセスポイントで指定したUIDとGIDがEFSのファイル所有者として反映されること、そしてその所有者情報に基づいてNFSのパーミッションが適用されることが示されている。もしアクセスポイントで設定されたUIDとGIDが、既存のファイルの所有者と異なっていた場合、そのユーザーがそのファイルに書き込めるかどうかは、そのファイルの「グループ」や「その他」のパーミッション設定に依存する。この点が、NFSベースのファイルシステムにおける権限管理の基本的な考え方であり、アクセスポイントを介してもこの原則は変わらない。

まとめると、EFSアクセスポイントは、EFSという強力な共有ファイルシステムを、より安全に、より細かく、そしてより管理しやすく利用するための重要な機能だ。システムエンジニアを目指す上で、クラウドサービスにおけるストレージの利用方法やアクセス制御の考え方を理解することは非常に重要であり、EFSアクセスポイントはその一例として非常に参考になるはずだ。

関連コンテンツ

関連IT用語