Amazon EFS アクセスポイントを使用してマウントする - Amazon Elastic File System

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

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

Amazon EFS アクセスポイントは、EFS ファイルシステムへのアプリケーション固有のエントリポイントです。これにより、共有データセットへのアプリケーションアクセスが管理しやすくなります。アクセスポイントを使用すると、アクセスポイントを介したすべてのファイルシステム要求に対してユーザーアイデンティティ (ユーザーの POSIX グループなど) を適用できます。また、ファイルシステムに対して別のルートディレクトリを適用し、このディレクトリまたはそのサブディレクトリ内のデータに対してのみ、クライアントにアクセスを許可することもできます。

AWS Identity and Access Management (IAM) ポリシーを使用して、特定のアプリケーションが特定のアクセスポイントを使用するように設定できます。IAM ポリシーとアクセスポイントを組み合わせると、アプリケーションから特定のデータセットへのアクセスを簡単に保護できます。

注記

アクセスポイントを使用するには、EFS ファイルシステムに少なくとも 1 つのマウントターゲットを作成する必要があります。

アクセスポイントの作成の詳細については、「アクセスポイントの作成と削除」を参照してください。

アクセスポイントの作成

AWS Management Console、AWS Command Line Interface (AWS CLI)、EFS API を使用して、既存の Amazon EFS ファイルシステムのアクセスポイントを作成できます。Amazon EFS ファイルシステムに最大 1,000 個のアクセスポイントを作成できます。既存のアクセスポイントは、作成後に変更することはできません。

step-by-step アクセスポイントを作成する手順については、を参照してくださいアクセスポイントの作成と削除

アクセスポイントを使ったファイルシステムのマウント

アクセスポイントを使用してファイルシステムをマウントする場合は、EFS マウントヘルパーを使用します。マウントコマンドには、以下の例に示すように、ファイルシステム ID、アクセスポイント ID、tls マウントオプションを含めます。

$ mount -t efs -o tls,iam,accesspoint=fsap-abcdef0123456789a fs-abc0123def456789a: /localmountpoint

アクセスポイントを使用したファイルシステムのマウントの詳細については、「Amazon EFS アクセスポイントを使用してマウントする」を参照してください。

アクセスポイントによるユーザーIDの強制

アクセスポイントを使用すると、アクセスポイントを介したすべてのファイルシステム要求に対して、ユーザーおよびグループ情報を適用できます。この機能を有効にするには、アクセスポイントの作成時に、適用するオペレーティングシステム ID を指定する必要があります。

その一環として、以下の情報を提供します。

  • ユーザー ID - ユーザーの数値 POSIX ユーザー ID。

  • グループ ID - ユーザーの数値 POSIX グループ ID。

  • セカンダリグループ ID - オプションのセカンダリグループ ID のリスト。

ユーザー適用を有効にすると、Amazon EFS は NFS クライアントのユーザー ID およびグループ ID を、アクセスポイントですべてのファイルシステムオペレーションに対して設定されている アイデンティティ に置き換えます。ユーザー適用では、以下のことも行います。

  • 新しいファイルとディレクトリの所有者とグループは、アクセスポイントのユーザー ID とグループ ID に設定されます。

  • EFS は、ファイルシステムのアクセス許可を評価するときに、アクセスポイントのユーザー ID、グループ ID、およびセカンダリグループ ID を考慮します。EFS は、NFS クライアントの ID を無視します。

重要

ユーザー ID の適用は、ClientRootAccess IAM アクセス許可を条件とします。

たとえば、場合によっては、アクセスポイントのユーザー ID、グループ ID、またはその両方をルートに設定する (つまり、UID、GID、またはその両方を 0 に設定する) ことがあります。そのような場合、NFS クライアントに ClientRootAccess IAM アクセス許可を付与する必要があります。

アクセスポイントによるルートディレクトリの強制

アクセスポイントを使用して、ファイルシステムのルートディレクトリを上書きできます。ルートディレクトリを適用すると、アクセスポイントを使用する NFS クライアントは、ファイルシステムのルートディレクトリではなく、アクセスポイントに設定されているルートディレクトリを使用します。

この機能を有効にするには、アクセスポイントの作成時にアクセスポイントの Path 属性を設定します。Path 属性は、このアクセスポイントを介したすべてのファイルシステム要求に対するファイルシステムのルートディレクトリのフルパスです。フルパスの長さは 100 文字を超えることはできません。最大 4 つのサブディレクトリを含めることができます。

アクセスポイントにルートディレクトリを指定すると、これがアクセスポイントをマウントする NFS クライアントのファイルシステムのルートディレクトリになります。たとえば、アクセスポイントのルートディレクトリが /data であるとします。この場合、アクセスポイントを使用して fs-12345678:/ をマウントすると、アクセスポイントを使用せずに fs-12345678:/data をマウントするのと同じ効果があります。

アクセスポイントでルートディレクトリを指定する場合は、アクセスポイントのユーザーがファイルシステムを正常にマウントできるようにディレクトリ権限が設定されていることを確認します。具体的には、アクセスポイントのユーザーまたはグループ、またはすべてのユーザーに対して実行ビットが設定されていることを確認します。たとえば、ディレクトリ権限の値が 755 の場合、ディレクトリユーザーの所有者はファイルのリスト表示、ファイルの作成およびマウントを実行できます。他のすべてのユーザーはファイルのリスト表示とマウントを実行できます。

アクセスポイントのルートディレクトリの作成

アクセスポイントのルートディレクトリパスがファイルシステムに存在しない場合は、Amazon EFS によって、指定された所有権とアクセス許可を使用して、そのルートディレクトリが自動的に作成されます。作成時にディレクトリの所有権と権限を指定しない場合、Amazon EFS はルートディレクトリを作成しません。このアプローチにより、Linux ホストからファイルシステムをマウントすることなく、特定のユーザーまたはアプリケーションに対してファイルシステムアクセスをプロビジョニングできます。ルートディレクトリを作成するには、アクセスポイントの作成時に以下の属性を使用して、ルートディレクトリの所有権とアクセス許可を設定する必要があります。

  • OwnerUid - ルートディレクトリの所有者として使用する数値 POSIX ユーザー ID。

  • OwnerGiD - ルートディレクトリの所有者グループとして使用する数値 POSIX グループ ID。

  • アクセス許可 - ディレクトリの Unix モード。一般的な設定は 755 です。アクセスポイントユーザーがマウントできるように、実行ビットが設定されていることを確認します。この設定では、ディレクトリ所有者に、ディレクトリ内の新しいファイルの入力、一覧表示、書き込みのアクセス許可が付与されます。他のすべてのユーザーに、ファイルを入力および一覧表示するアクセス許可が付与されます。Unix のファイルモードとディレクトリモードの使用方法の詳細については、「ネットワークファイルシステム (NFS) レベルでのユーザー、グループ、アクセス許可の操作」を参照してください。

Amazon EFS では OwnUid、ディレクトリのアクセス許可を指定した場合にのみ、アクセスポイントのルートディレクトリが作成されます。この情報を指定しない場合、Amazon EFS はルートディレクトリを作成しません。ルートディレクトリが存在しない場合に、アクセスポイントを使用してマウントしようとすると、失敗します。

アクセスポイントを使用してファイルシステムをマウントすると、 OwnerUid アクセスポイントの作成時にルートディレクトリと権限が指定されていれば、そのディレクトリがまだ存在しない場合はアクセスポイントのルートディレクトリが作成されます。アクセスポイントのルートディレクトリがマウント前にすでに存在している場合、既存の権限はアクセスポイントによって上書きされません。ルートディレクトリを削除すると、次にアクセスポイントを使用してファイルシステムをマウントするときに、EFS によってルートディレクトリが再作成されます。

注記

アクセスポイントのルートディレクトリに所有権とアクセス許可を指定しない場合、Amazon EFS はルートディレクトリを作成しません。アクセスポイントをマウントしようとすると、失敗します。

アクセスポイントのルートディレクトリのセキュリティモデル

ルートディレクトリの上書きが有効になっている場合、 Amazon EFS は no_subtree_check オプションを有効にした Linux NFS サーバーと同じように動作します。

NFS プロトコルでは、ファイルのアクセス時に一意の参照としてクライアントで使用されるファイルハンドルがサーバーで作成されます。EFS は、EFS ファイルシステム固有の予測可能なファイルハンドルを安全に生成します。ルートディレクトリの上書きが有効になっている場合、EFS は指定されたルートディレクトリ外のファイルにファイルハンドルを公開しません。ただし、場合によっては、 out-of-band ユーザーがメカニズムを使用してアクセスポイントの外部にあるファイルのファイルハンドルを取得することがあります。たとえば、2 番目のアクセスポイントにアクセスできる場合は、これを行う可能性があります。これを行うと、ファイルに対して読み取りおよび書き込みオペレーションを実行できます。

ユーザーのアクセスポイントのルートディレクトリ内外のファイルへのアクセスに対しては、ファイルの所有権とアクセス許可が常に適用されます。

IAM ポリシーでのアクセスポイントの使用

IAM ポリシーでは、IAM ロールで特定した NFS クライアントに対して、特定のアクセスポイントへのアクセスのみを許可できます。そのためには、elasticfilesystem:AccessPointArn IAM 条件キーを使用します。AccessPointArn は、ファイルシステムがマウントされているアクセスポイントの Amazon リソースネーム (ARN) です。

以下に示しているのは、IAM ロール app1 にアクセスポイント fsap-01234567 を使用したファイルシステムへのアクセスを許可するファイルシステムポリシーの例です。また、このポリシーでは、app2 にアクセスポイント fsap-89abcdef を使用したファイルシステムへのアクセスを許可しています。

{ "Version": "2012-10-17", "Id": "MyFileSystemPolicy", "Statement": [ { "Sid": "App1Access", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/app1" }, "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Condition": { "StringEquals": { "elasticfilesystem:AccessPointArn" : "arn:aws:elasticfilesystem:us-east-1:222233334444:access-point/fsap-01234567" } } }, { "Sid": "App2Access", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/app2" }, "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite" ], "Condition": { "StringEquals": { "elasticfilesystem:AccessPointArn" : "arn:aws:elasticfilesystem:us-east-1:222233334444:access-point/fsap-89abcdef" } } } ] }