

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

# ファイル共有とバケットへのアクセスとアクセス許可の付与
<a name="add-file-share"></a>

S3 File Gateway がアクティブ化されて実行されたら、追加のファイル共有を追加し、ゲートウェイやファイル共有 AWS アカウント とは異なる のバケットを含む Amazon S3 バケットへのアクセスを許可できます。以下のセクションでは、IAM ロールを使用して、ゲートウェイに Amazon S3 バケットと VPC エンドポイントのアクセス許可を付与し、特定のセキュリティ問題を防ぎ、 AWS アカウント間でファイル共有をバケットに接続する方法について説明します。

ファイル共有を追加する方法については、「[ファイル共有の作成](GettingStartedCreateFileShare.md)」を参照してください。

このセクションでは、ファイル共有と Amazon S3 バケットへのアクセスとアクセス許可を付与する方法に関する追加情報を提供する以下のトピックについて説明します。

**トピック**
+ [Amazon S3 バケットに対するアクセス権限の付与](grant-access-s3.md) - ファイルゲートウェイにアクセス権限を付与して Amazon S3 バケットにファイルをアップロードし、バケットへの接続に使用するアクセスポイントまたは Amazon Virtual Private Cloud (Amazon VPC) エンドポイントに対してアクションを実行する方法について説明します。
+ [サービス間の混乱した代理の防止](cross-service-confused-deputy-prevention.md) - 共通のセキュリティ問題は、アクションを実行する許可を持たないエンティティが、より特権のあるエンティティにアクションを実行するように強制できるセキュリティの問題です。
+ [クロスアカウントアクセスでのファイル共有の使用](cross-account-access.md) - Amazon Web Services アカウントおよび、別の Amazon Web Services アカウントに属するリソースにアクセスするあカウントのユーザーにアクセス権限が付与されます。

# Amazon S3 バケットに対するアクセス権限の付与
<a name="grant-access-s3"></a>

ファイル共有を作成する際、ファイルゲートウェイは Amazon S3 バケットへのファイルアップロード、およびバケット接続に使用するアクセスポイントや仮想プライベートクラウド（VPC）エンドポイントに対するアクションを実行するためにアクセス権限を必要とします。このアクセスを付与するために、ファイルゲートウェイは、このアクセスを付与する IAM ポリシーに関連付けられた AWS Identity and Access Management (IAM) ロールを引き受けます。

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

これらのロールとアクセスポリシーは自分自身で作成したり、ユーザーに代わってファイルゲートウェイに作成させたりできます。ファイルゲートウェイでポリシーを作成した場合、そのポリシーには S3 アクションのリストが含まれます。ロールとアクセス許可については、*IAM ユーザーガイド*の [[AWS のサービスのサービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)] を参照してください。

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

------
#### [ JSON ]

****  

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

------

**重要**  
Storage Gateway は、`iam:PassRole` ポリシーアクションを使用して渡される既存のサービスロールを引き受けることができますが、`iam:PassedToService` コンテキストキーを使用してアクションを特定のサービスに制限する IAM ポリシーはサポートされていません。  
詳細については、「*AWS Identity and Access Management ユーザーガイド*」の以下のトピックを参照してください。  
[IAM: IAM ロールを特定の AWS サービスに渡す](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_iam-passrole-service.html)
[AWS サービスにロールを渡すアクセス許可をユーザーに付与する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)
[IAM で使用できるキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_PassedToService)

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

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

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3:GetAccelerateConfiguration",
                "s3:GetBucketLocation",
                "s3:GetBucketVersioning",
                "s3:ListBucket",
                "s3:ListBucketVersions",
                "s3:ListBucketMultipartUploads"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "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:::amzn-s3-demo-bucket/*",
            "Effect": "Allow"
        }
    ]
}
```

------

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

------
#### [ JSON ]

****  

```
{
    "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:111122223333:accesspoint/TestAccessPointName/*",
            "Effect": "Allow"
        }
    ]
}
```

------

**注記**  
ファイル共有を VPC エンドポイント経由で S3 バケットに接続する必要がある場合は、『*AWS PrivateLink ユーザーガイド*』の「[Amazon S3 のエンドポイントポリシー](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#vpc-endpoints-policies-s3)」を参照してください。

**注記**  
暗号化されたバケットの場合、ファイル共有は送信先 S3 バケットアカウントのキーを使用する必要があります。

**注記**  
ファイルゲートウェイが暗号化に SSE-KMS または DSSE-KMS を使用している場合は、ファイル共有に関連付けられた IAM ロールに *kms:Encrypt*、*kms:Decrypt*、*kms:ReEncrypt\$1*、*kms:GenerateDataKey*、および *kms:DescribeKey* のアクセス許可が含まれていることを確認してください。詳細については、「[Storage Gateway でアイデンティティベースのポリシー (IAM ポリシー) を使用する](https://docs.aws.amazon.com/filegateway/latest/files3/using-identity-based-policies.html)」を参照してください。

# サービス間の混乱した代理の防止
<a name="cross-service-confused-deputy-prevention"></a>

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

リソースポリシーで [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)および [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-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:*` です。

次の例では、Storage Gateway で `aws:SourceArn` および `aws:SourceAccount` グローバル条件コンテキストキーを使用して、混乱した代理問題を回避する方法を示します。

------
#### [ JSON ]

****  

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

------

# クロスアカウントアクセスでのファイル共有の使用
<a name="cross-account-access"></a>

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

**ある Amazon Web Services アカウントが所有するファイル共有を使用して、別の Amazon Web Services アカウントの S3 バケットにアクセスするには**

1. アクセスする必要のある S3 バケットと、そのバケット内のオブジェクトへのアクセス権限が、S3 バケットの所有者から Amazon Web Services アカウントに付与されていることを確認します。このアクセス権を付与する方法については、*Amazon Simple Storage Service ユーザーガイド*の「[例 2: バケット所有者がクロスアカウントのバケットのアクセス許可を付与する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html)」を参照してください。必要なアクセス権限のリストについては、「[Amazon S3 バケットに対するアクセス権限の付与](grant-access-s3.md)」を参照してください。

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

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

1. [https://console.aws.amazon.com/storagegateway/home](https://console.aws.amazon.com/storagegateway/) で**ファイル共有を作成またはファイル共有設定を編集するときに、S3 バケット所有者がアクセスできるゲートウェイ**ファイルを選択します。

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

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

## リソース
<a name="related-topics-fileshare"></a>

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

*Amazon Simple Storage Service ユーザーガイド*の[アクセスポリシーのオプションを使用するためのガイドライン](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-alternatives-guidelines.html)

『*Amazon Simple Storage Service ユーザーガイド*』の「[アクセスコントロールリスト (ACL) の概要](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html)」