ファイル共有の追加 - AWSStorage Gateway

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

ファイル共有の追加

S3 ファイルゲートウェイをアクティブ化して実行すると、ファイル共有をさらに追加して、Amazon S3 バケットにアクセス権限を付与できます。アクセス権限を付与するバケットには、バケットを別のバケットに含めることができます。AWS アカウントファイル共有よりもします。ファイル共有を追加する方法については、「ファイル共有の作成」を参照してください。

Amazon S3 バケットへのアクセス許可の付与

ファイル共有を作成する場合、ファイルゲートウェイは Amazon S3 バケットにファイルをアップロードし、バケットへの接続に使用するアクセスポイントまたは仮想プライベートクラウド(VPC)エンドポイントでアクションを実行するためのアクセス権限が必要です。このアクセスを許可するために、ファイルゲートウェイはAWS Identity and Access Management(IAM) ロールで、このアクセス許可を与える IAM ポリシーに関連付けられています。

このロールには、この IAM ポリシーに加え、Security Token Service (STS) 信頼関係が設定されていることが必要です。このポリシーによって、ロールで実行できるアクションが決まります。また、S3 バケットおよび関連付けられたアクセスポイントまたは VPC エンドポイントには、この IAM ロールがアクセスすることを許可するアクセスポリシーが必要です。

ロールとアクセスポリシーは自分自身で作成できます。または、ファイルゲートウェイによって作成することもできます。ファイルゲートウェイによってポリシーが作成された場合、そのポリシーは S3 アクションのリストに含まれます。ロールとアクセス許可については、「」を参照してください。にアクセス許可を委任するロールの作成AWS のサービスIAM ユーザーガイド

次に示すのは、ファイルゲートウェイが IAM ロールを引き受けることができるようにする信頼ポリシーの例です。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "storagegateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

ファイルゲートウェイがユーザーに代わってポリシーを作成しないようにするには、独自のポリシーを作成してファイル共有にアタッチできます。これを行う方法については、「ファイル共有の作成」を参照してください。

次のポリシーの例では、ファイルゲートウェイがポリシーに表示されたすべての Amazon S3 アクションを実行できるよう許可します。ステートメントの最初の部分では、リストされたすべてのアクションを TestBucket という S3 バケットで実行するよう許可します。次に、TestBucket のすべてのオブジェクトでリストされたアクションを許可します。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetAccelerateConfiguration", "s3:GetBucketLocation", "s3:GetBucketVersioning", "s3:ListBucket", "s3:ListBucketVersions", "s3:ListBucketMultipartUploads" ], "Resource": "arn:aws:s3:::TestBucket", "Effect": "Allow" }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectVersion", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::TestBucket/*", "Effect": "Allow" } ] }

次の例のポリシーは、前述のポリシーと似ていますが、ファイルゲートウェイがアクセスポイントを介してバケットにアクセスするために必要なアクションを実行できるようにします。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectVersion", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:us-east-1:123456789:accesspoint/TestAccessPointName/*", "Effect": "Allow" } ] }
注記

VPC エンドポイントを介して S3 バケットにファイル共有を接続する必要がある場合は、「」を参照してください。Amazon S3 のエンドポイントポリシーAWS PrivateLinkユーザーガイド

サービス間での不分別な代理処理の防止

「混乱した代理」問題は、アクションを実行するためのアクセス許可を持たないエンティティが、より特権のあるエンティティにアクションの実行を強制できてしまう場合に生じる、セキュリティ上の問題です。AWS では、サービス間でのなりすましが、不分別な代理処理の問題を生じさせる可能性があります。サービス間でのなりすましは、1 つのサービス (呼び出し元サービス) が、別のサービス (呼び出し先サービス) を呼び出す場合に発生します。呼び出し元サービスが操作され、それ自身のアクセス許可を使用して、本来アクセス許可が付与されるべきではない方法で別の顧客のリソースに対して働きかけることがあります。これを防ぐために AWS では、お客様のすべてのサービスのデータを保護するのに役立つツールを提供しています。これには、アカウントのリソースへのアクセス権が付与されたサービスプリンシパルを使用します。

リソースポリシー内では aws:SourceArn および aws:SourceAccount のグローバル条件コンテキストキーを使用して、AWS Storage Gateway が別のサービスに付与する、リソースへのアクセス許可を制限することをお勧めします。グローバル条件コンテキストキーの両方を使用しており、それらが同じポリシーステートメントで使用される場合、aws:SourceAccount 値と aws:SourceArn 値のアカウントが同じアカウント ID を使用する必要があります。

の価値aws:SourceArnは、ファイル共有が関連付けられているStorage Gateway の ARN である必要があります。

不分別な代理処理の問題から保護するための最も効果的な方法は、リソースの完全な ARN を指定しながら、aws:SourceArn グローバル条件コンテキストキーを使用することです。リソースの完全な ARN が不明な場合や、複数のリソースを指定する場合には、グローバルコンテキスト条件キー aws:SourceArn で、ARN の未知部分を示すためにワイルドカード (*) を使用します。例えば、arn:aws:servicename::123456789012:* です。

以下の例は、aws:SourceArnそしてaws:SourceAccount混乱した副問題を防ぐために、Storage Gateway のグローバル条件コンテキストキー。

{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "storagegateway.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:storagegateway:us-east-1:123456789012:gateway/sgw-712345DA" } } } ] }

クロスアカウントアクセスのファイル共有の使用

クロスアカウントアクセスとは、アマゾンウェブサービスのアカウントおよびそのアカウントのユーザーが別のAmazon Web Services アカウントに属するリソースに対するアクセスを付与されている場合をいいます。ファイルゲートウェイを使用すると、1 つのAmazon Web Services アカウントのファイル共有を使用して、別のAmazon Web Services アカウントに属する Amazon S3 バケットのオブジェクトにアクセスできます。

1 つのAmazon Web Services アカウントが所有するファイル共有を使用して、別のAmazon Web Services アカウントの S3 バケットにアクセスするには
  1. アクセスする必要のある S3 バケットおよびそのバケット内のオブジェクトへのアクセス権限が S3 バケット所有者から Amazon Web Services アカウントに付与されているかどうかを確認してください。このアクセスを許可する方法については、「」を参照してください。例 2: バケット所有者がクロスアカウントのバケットのアクセス許可を付与するAmazon Simple Storage Service ユーザーガイド。必要なアクセス権限のリストについては、「Amazon S3 バケットへのアクセス許可の付与」を参照してください。

  2. ファイル共有が S3 バケットにアクセスするために使用する IAM ロールには、s3:GetObjectAcls3:PutObjectAcl などのオペレーションを行うアクセス権限が含まれていることを確認します。さらに、この IAM ロールにはアカウントがこの IAM ロールを引き受けることができる信頼ポリシーが含まれていることを確認します。このような信頼ポリシーの例については、「Amazon S3 バケットへのアクセス許可の付与」を参照してください。

    ファイル共有が既存のロールを使用して S3 バケットにアクセスする場合は、s3:GetObjectAcl および s3:PutObjectAcl オペレーションに対するアクセス許可を含める必要があります。このロールには、アカウントがこのロールを引き受けることを許可する信頼ポリシーも必要です。このような信頼ポリシーの例については、「Amazon S3 バケットへのアクセス許可の付与」を参照してください。

  3. [Storage Gateway コンソールを開く] でhttps://console.aws.amazon.com/storagegateway/home

  4. [ファイル共有の設定] ダイアログボックスの [オブジェクトメタデータ] にある [バケット所有者に完全なコントロールを付与] を選択します。

クロスアカウントアクセスのファイル共有を作成または更新して、ファイル共有をオンプレミスにマウントした場合は、セットアップをテストすることを強くお勧めします。これを行うには、ディレクトリの内容一覧を表示するか、テストファイルを書き込んで S3 バケットのオブジェクトとして表示されることを確認します。

重要

クロスアカウントにファイル共有に使用するアカウントへのアクセス権限が付与されるようにポリシーが正しくセットアップされていることを確認します。正しく設定されていない場合には、操作している Amazon S3 バケットに伝達していないオンプレミスアプリケーションでファイルを更新します。

アクセスポリシーおよびアクセスコントロールリストの詳細については、以下を参照してください。

アクセスポリシーのオプションを使用するためのガイドラインAmazon Simple Storage Service ユーザーガイド

アクセスコントロールリスト (ACL) の概要Amazon Simple Storage Service ユーザーガイド