Storage Transfer Service でアクセス制御を設定
Google Cloud Japan Team
※この投稿は米国時間 2023 年 2 月 11 日に、Google Cloud blog に投稿されたものの抄訳です。
Google Cloud の Storage Transfer Service(STS)を使用して、Cloud Storage バケットや POSIX ファイル システムにデータを転送またはバックアップできます。またこのサービスは、柔軟性に優れ、水平方向のスケーリング、暗号化、チェックサム検証も可能です。主に、ストレージ管理者がさまざまなアクセス権で、すべてのファイルごとファイル システム全体を移行する際に利用しています。
マルチテナント ストレージ環境で POSIX のアクセスをモニタリングする必要がある場合は、データの移行が困難なことがあり、許可されたデータのみを転送できる機能を備えた転送ツールが必要になります。STS は root 権限で実行しますが、いくつかの方法で転送エージェントにアクセス制御を適用できます。転送オペレーション中には POSIX のアクセス権が適用されるため、安心してデータを転送できます。
マウントや権限が設定されていなければ、転送エージェント(2)はマウント内のいずれのデータも転送できます。図の設定では、/mnt/ にマウントされたエージェントは、/mnt/ 以下のすべてのディレクトリ(datasetA、datasetB、datasetC、datasetD)のデータを Cloud Storage に転送できます。
マルチテナントの NAS または NFS ストレージ環境で特定のユーザー グループ用に転送サービスを設定する場合、特定のマウントまたは POSIX のユーザー アカウント権限を使用してこのユーザー グループと無関係なデータへのアクセス権を制限する必要があります。グループごとに異なる POSIX ユーザー アカウント権限を使うことで、複数の設定を行えます。
図では、権限とマウントのいずれかまたは両方の設定により、特定のエージェントが特定のマウント内とその下階層のディレクトリ内のデータのみを Cloud Storage に転送できます。エージェント プール A 内のエージェントがアクセスできるのは、/mnt/dataset A 内のデータのみです。dataset B、dataset C、dataset D にはアクセスできません。また、エージェント プール B 内のエージェントがアクセスできるのは、/mnt/dataset B 内のデータのみで、dataset A、dataset C、dataset D にはアクセスできません。
アクセス制御方法の概要
コンテナを転送エージェントとして設定する
以下の 2 つの方法で、転送エージェントによるデータへのアクセス権を制限できます。いずれのアクセス制御方法も、単独で、または組み合わせて使用できます。
マウント
POSIX ユーザー アカウント権限
マウント - コンテナのマウント オプションでディレクトリを指定してサービスを転送します。
マウント ロケーション以外ではデータにアクセスできません。転送ノードや VM がアクセスできるディレクトリの場合でも、Docker コンテナ / エージェントにマウントされていなければ、データにはアクセスできません。
利点: 大規模なファイル システムでは、多くの場合プロジェクトがディレクトリ構造で格納されているため、特定のディレクトリをエージェントにマウントすると、エージェント プールが特定のプロジェクト データをターゲットに設定できるようになります。
POSIX ユーザー アカウント権限 - エージェントが最上位ディレクトリにアクセスできる場合でも、POSIX ユーザー アカウント権限に基づいてアクセスが制限されます。
利点: マルチテナント環境でも、管理者が POSIX 権限でユーザー アクセスを制限できます。
エージェントの設定用コマンド:
以下は、マウント / POSIX ユーザー アカウント権限で転送エージェントを設定するためのコマンドの例です。
サービス アカウント JSON キーの設定
転送エージェントの設定
マウント: 「--user uid:gid」を使用すると、POSIX ユーザー権限を同時に設定できます。
POSIX ユーザー アカウント権限: -v <directory to be transferred>:<directory to be transferred> を使用します。
権限なしでディレクトリを転送すると、エラー メッセージが表示されます。
表示されるエラー メッセージは次のとおりです。
エラー メッセージ:
マルチテナント NAS 環境のアクセス制御を以下のように使用して、複数の転送エージェントを設定できます。
Google Cloud の Storage Transfer Service は、データを Cloud Storage バケットに移動またはバックアップする以外にもさまざまな用途にご活用いただけます。一般的なユースケースとしては、複数の Cloud Storage バケット間で転送する、Cloud Storage データを他のロケーションに移動する、データを複数のファイル システム間で転送する、などが挙げられます。その他、ご参考までに、こちらのリンク先のドキュメントをご覧ください。