Amazon EFS ファイルシステムが読み取り専用であるのはなぜですか?

最終更新日: 2021 年 2 月 1 日

Amazon Elastic File System (Amazon EFS) ファイルシステムが使用可能で、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに正しくマウントされていますが、書き込むことができません。この問題を解決する方法を教えてください。

簡単な説明

以下は、ファイルシステムへの書き込みを妨げる一般的な問題の 2 つです。

  • /etc/fstab ファイルのマウントオプションは読み取り専用アクセスに設定されます。
  • 関連付けられた AWS Identity and Access Management (IAM) ポリシーは、読み取り専用アクセス、またはルートアクセスが無効であることを示します。

解決方法

注意: この解決方法では、Amazon EFS マウントヘルパーを使用します。Amazon EFS マウントヘルパーは、Amazon Linux にプリインストールされています。別のディストリビューションを使用している場合は、「他の Linux ディストリビューションで amazon-efs-utils パッケージをインストールする」を参照してください。

/etc/fstab ファイルでマウントオプションが正しいことを確認する

1.    次のコマンドを実行して、ファイルシステムの現在のマウントオプションを確認します。

$ mount -t nfs4

次の出力例では、変数 ro は、ファイルシステムが現在読み取り専用アクセスを許可していることを示しています。

file-system-id.efs.region.amazonaws.com:/ on /efs type nfs4 (ro,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.0.2.0,local_lock=none,addr=192.0.0.0)

2.    vi などの編集ツールを使用して、/etc/fstab ファイルのマウントパラメータを rw (読み取り/書き込みアクセス) に変更します。

注意: file-system-id をファイルシステムの ID に置き換えてください。

file-system-id:/ efs-mount-point efs rw,_netdev 0 0

3.    次のコマンドを実行して、ファイルシステムをアンマウントして再マウントします。

$ sudo mount -o remount,rw /efs -t efs && mount -t nfs4
file-system-id.efs.region.amazonaws.com:/ on /efs type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=190.0.2.0,local_lock=none,addr=190.0.2.0)

4.    ファイルシステム内にファイルを作成または編集して、ファイルシステムに書き込むことができることを確認します。

アクセス許可が正しく設定されていることを確認する

1.    Amazon EFS コンソールを開きます。

注意: リージョンが Amazon EFS ファイルシステムと同じであることを確認してください。

2.    確認するファイルシステムを選択し、[View details] (詳細を表示) を選択します。

3.    [File system policy] (ファイルシステムポリシー) タブで [Edit] (編集) を選択します。

4.    次のオプションが選択されている場合は、オフにします。
Prevent root access by default (デフォルトでルートアクセスを無効にする)
Enforce read-only access by default (デフォルトで読み取り専用アクセスを強制する)

5.    [Set policy] (ポリシーを設定) を選択します。

6.    [Save policy] (ポリシーを保存) を選択します。

7.    umount コマンドを実行して、ファイルシステムをアンマウントします。

$ sudo umount /efs

8.    mount コマンドを実行してファイルシステムを再度マウントし、変更を適用します。

注意: file-system-id をファイルシステムの ID に置き換えてください。

$ sudo mount -t efs -o iam fs-file-system-id /efs

9.    再起動後に新しいマウントを永続化するには、vi などの編集ツールを使用して /etc/fstab に次の行を追加します。

インスタンスプロファイルを持つインスタンスに IAM 認証を使用してマウントします。

file-system-id:/ efs-mount-point efs _netdev,iam 0 0

認証情報ファイルを使用して、IAM 認証で Linux インスタンスにマウントします。

file-system-id:/ efs-mount-point efs _netdev,iam,awsprofile=namedprofile 0 0

EFS アクセスポイントを使用してマウントします。

file-system-id efs-mount-point efs _netdev,accesspoint=access-point-id 0 0

詳細については、「/etc/fstab を使用した自動マウント」を参照してください。

10.    ファイルシステム内にファイルを作成または編集して、ファイルシステムに書き込むことができることを確認します。