Network File System (NFS) レベルでのユーザー、グループ、アクセス許可の操作 - Amazon Elastic File System

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Network File System (NFS) レベルでのユーザー、グループ、アクセス許可の操作

ファイルシステムを作成した後、デフォルトでは、ルートユーザー (UID 0) のみが読み取り/書き込み/実行のアクセス許可を持ちます。他のユーザーがファイルシステムを変更できるようにするには、ルートユーザーは、明示的にアクセス許可を付与する必要があります。アクセスポイントを使用すると、root 以外のユーザーによる書き込み可能なディレクトリの作成を自動化できます。詳細については、「Amazon EFS アクセスポイントを使用する」を参照してください。

Amazon EFS ファイルシステムオブジェクトには、Unix 形式のモードが関連付けられています。このモード値は、そのオブジェクトに対してアクションを実行するアクセス許可を定義します。Unix 形式のシステムに精通しているユーザーは、これらのアクセス許可に関して Amazon EFS がどのように動作するかを簡単に理解できます。

さらに、Unix 形式のシステムでは、ユーザーとグループは Amazon EFS がファイルの所有権を表すために使用する数値 ID にマッピングされます。Amazon EFS の場合、ファイルシステムオブジェクト (ファイル、ディレクトリなど) は、単一の所有者と単一のグループによって所有されます。Amazon EFS は、ユーザーがファイルシステムオブジェクトにアクセスしようとすると、マッピングされた数値 ID を使用してアクセス許可をチェックします。

以下では、アクセス許可の例、および Amazon EFS の NFS のアクセス許可に関する考慮事項について説明します。

Amazon EFS ファイルシステムのユースケースとアクセス許可の例

Amazon EFS ファイルシステムを作成し、VPC にファイルシステムのターゲットをマウントしたら、リモートファイルシステムを Amazon EC2 インスタンスにローカルにマウントできます。mount コマンドは、ファイルシステムの任意のディレクトリをマウントできます。ただし、最初にファイルシステムを作成するときは、/ にルートディレクトリは 1 つしかありません。

以下のようになりますmountコマンドは、ファイルシステムの DNS 名で識別される Amazon EFS ファイルシステムのルートディレクトリを/efs-mount-pointローカルディレクトリ。

sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.efs.aws-region.amazonaws.com:/ efs-mount-point

ルートユーザーとルートグループは、マウントされたディレクトリを所有します。

最初のアクセス許可のモードでは、次のことを許可します。

  • 所有者のread-write-executeルートに対する アクセス許可

  • グループのread-executeルートに対する アクセス許可

  • 他のユーザーに対する read-execute アクセス許可

ルートユーザーのみがこのディレクトリを変更できます。たとえば、ルートユーザーは、他のユーザーにこのディレクトリに書き込むアクセス許可を付与することもできます。

  • 書き込み可能なユーザーごとのサブディレクトリを作成します。手順については、「チュートリアルの概要: 書き込み可能なユーザーごとのサブディレクトリを作成し、再起動時の自動再マウントを設定する」を参照してください。

  • ユーザーが Amazon EFS ファイルシステムのルートに書き込むことを許可します。ルート権限を持つユーザーは、他のユーザーにファイルシステムへのアクセスを許可することができます。

    • Amazon EFS ファイルシステムの所有権をルートユーザーおよびグループを使用するには、以下を使用します。

      $ sudo chown user:group /EFSroot
    • ファイルシステムのアクセス許可をより制限の低いものに変更するには、以下を使用します。

      $ sudo chmod 777 /EFSroot

      このコマンドは、ファイルシステムがマウントされているすべての EC2 インスタンス上のすべてのユーザーに読み取り/書き込み/実行の権限を許可します。

ファイルシステム内のファイルとディレクトリに対するユーザー ID とグループ ID のアクセス許可

Amazon EFS ファイルシステムのファイルとディレクトリでは、ユーザー ID とグループ ID に基づいて、標準 UNIX 形式の読み取り、書き込み、実行のアクセス許可がサポートされます。NFS クライアントがアクセスポイントを使用せずに EFS ファイルシステムをマウントした場合は、クライアントから提供されたユーザー ID とグループ ID が信頼されます。EFS アクセスポイントにより、NFS クライアントによって使用されるユーザー ID とグループ ID を上書きできます。ユーザーがファイルとディレクトリにアクセスしようとすると、Amazon EFS はユーザー ID とグループ ID を確認して、各ユーザーにオブジェクトへのアクセス権限があることを確認します。Amazon EFS は、これらの ID を使用して、ユーザーが作成する新しいファイルやディレクトリの所有者とグループ所有者を示すこともできます。Amazon EFS は、ユーザー名またはグループ名を調べません。数値 ID のみを使用します。

注記

EC2 インスタンスでユーザーを作成すると、任意の数値のユーザー ID (UID) とグループ ID (GID) をユーザーに割り当てることができます。数値のユーザー ID は、Linux システムの /etc/passwd ファイルに設定されます。数値グループ ID は、/etc/group ファイルにあります。これらのファイルは、名前と ID の間のマッピングを定義します。EC2 インスタンスの外部では、Amazon EFS は、0 のルート ID を含むこれらの ID の認証を実行しません。

ユーザーが 2 つの異なる EC2 インスタンスから Amazon EFS ファイルシステムにアクセスする場合、これらのインスタンスでユーザーの UID が同じか異なるかによって、次のような異なる動作になります。

  • ユーザー ID が両方の EC2 インスタンスで同じである場合、Amazon EFS は使用された EC2 インスタンスに関係なく、それらが同じユーザーを示すとみなします。ファイルシステムにアクセスする際のユーザーエクスペリエンスは、両方の EC2 インスタンスで同じです。

  • ユーザー ID が両方の EC2 インスタンスで同じでない場合、Amazon EFS はユーザーを異なるユーザーとみなします。2 つの異なる EC2 インスタンスから Amazon EFS ファイルシステムにアクセスする場合には、ユーザーエクスペリエンスは同じではありません。

  • 異なる EC2 インスタンスの 2 人の異なるユーザーが ID を共有する場合、Amazon EFS はそれらを同じユーザーとみなします。

EC2 インスタンス間でユーザー ID マッピングを一貫して管理することを検討することもできます。ユーザーは、以下に示すように、id コマンドを使用して数値 ID を確認することができます。

$ id uid=502(joe) gid=502(joe) groups=502(joe)

ID マッパーを無効にする

オペレーティングシステムの NFS ユーティリティには、ユーザー名と ID の間のマッピングを管理する ID マッパーと呼ばれるデーモンが含まれています。Amazon Linux では、デーモンは rpc.idmapd と呼ばれ、Ubuntu では、idmapd と呼ばれます。これは、ユーザーおよびグループ ID を名前に変換し、逆も行います。ただし、Amazon EFS は、数値 ID のみを扱います。EC2 インスタンスでこのプロセスを無効にすることをお勧めします。Amazon Linux では、マッパーは通常無効です。この場合、ID マッパーを有効にしないでください。ID マッパーを無効にするには、以下に示すコマンドを使用します。

$ service rpcidmapd status $ sudo service rpcidmapd stop

ルートスカッシュなし

デフォルトでは、ルートスカッシュは EFS ファイルシステムでは無効になっています。Amazon EFS は、を使用する Linux NFS サーバーのように動作します。no_root_squash。ユーザーまたはグループ ID が 0 の場合、Amazon EFS はそのユーザーをrootユーザーを作成し、アクセス許可チェックをバイパスします (すべてのファイルシステムオブジェクトへのアクセスと変更を許可します)。AWS Identity and Access Management (AWS IAM) の ID ポリシーまたはリソースポリシーがClientRootAccessaction. ルートスカッシュが有効になっている場合、ルートユーザーは NFS サーバー上で制限されたアクセス許可を持つユーザーに変換されます。

アクセス許可のキャッシュ

Amazon EFS は、短期間間、ファイルのアクセス許可をキャッシュします。その結果、以前ファイルシステムオブジェクトにアクセスでき、最近アクセスを取り消されたユーザーが、そのオブジェクトに短期間アクセスできることがあります。

ファイルシステムオブジェクトの所有権の変更

Amazon EFS は、POSIXchown_restricted属性を使用します。これは、ルートユーザーだけがファイルシステムオブジェクトの所有者を変更できることを意味します。ルートユーザーまたは所有者ユーザーは、ファイルシステムオブジェクトの所有者グループを変更できます。ただし、ユーザーがルートでない限り、そのグループは所有者ユーザーがメンバーになっているものにのみ変更できます。

EFS アクセスポイント

アクセスポイントは、アクセスポイントを介したすべてのシステム要求に対して、オペレーティングシステムのユーザー、グループ、およびファイルシステムのパスを適用します。アクセスポイントのオペレーティングシステムのユーザーおよびグループは、NFS クライアントから提供されるすべての ID 情報を上書きします。ファイルシステムのパスは、アクセスポイントのルートディレクトリとしてクライアントに公開されます。このアプローチにより、各アプリケーションは共有ファイルベースのデータセットにアクセスするときに、常に正しいオペレーティングシステム ID と正しいディレクトリを使用できます。アクセスポイントを使用するアプリケーションは、それ自体のディレクトリ以下のデータにのみアクセスできます。アクセスポイントの詳細については、「Amazon EFS アクセスポイントを使用する」を参照してください。