

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 防止跨環境 Amazon S3 儲存貯體存取
<a name="AWSHowTo.iam.cross-env-s3-access"></a>

本主題說明 受管政策如何允許跨環境 S3 儲存貯體存取，以及如何建立自訂政策來管理此類存取。

Elastic Beanstalk 提供受管政策來處理您 AWS 帳戶中 Elastic Beanstalk 環境所需的 AWS 資源。根據預設，您 AWS 帳戶中一個應用程式提供的許可可以存取屬於相同 AWS 帳戶中其他應用程式的 S3 資源。

如果 AWS 您的帳戶執行多個 Beanstalk 應用程式，您可以建立自己的[自訂政策](AWSHowTo.iam.managed-policies.md#AWSHowTo.iam.policies)，以連接至每個環境的自有[服務角色](iam-servicerole.md#iam-servicerole-create)或[執行個體描述檔](iam-instanceprofile.md#iam-instanceprofile-create)，藉此縮小政策的安全性範圍。然後，您可以將自訂政策中的 S3 許可限制在特定環境中。

**注意**  
請注意，您需負責維護自訂政策。如果自訂政策所依據的 Elastic Beanstalk 受管政策變更，您將需要使用基本政策的個別變更來修改自訂政策。如需 Elastic Beanstalk 受管政策的變更歷史記錄，請參閱 [AWS 受管政策的 Elastic Beanstalk 更新](security-iam-awsmanpol.md#security-iam-awsmanpol-updates)。

## 縮小範圍許可的範例
<a name="AWSHowTo.iam.cross-env-s3-access.example-env-ID"></a>

下列範例以 [AWSElasticBeanstalkWebTier](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSElasticBeanstalkWebTier.html) 受管政策為基礎。

預設政策包含下列 S3 儲存貯體的許可行。此預設政策不會將 S3 儲存貯體動作限制在特定環境或應用程式。

```
{
   "Sid" : "BucketAccess", 
   "Action" : [ 
      "s3:Get*",
      "s3:List*", 
      "s3:PutObject"
     ], 
   "Effect" : "Allow",
   "Resource" : [ 
      "arn:aws:s3:::elasticbeanstalk-*", 
      "arn:aws:s3:::elasticbeanstalk-*/*" 
     ] 
}
```

您可以將特定資源限定為指定為 的服務角色，以縮小存取範圍`Principal`。下列範例提供自訂服務角色`aws-elasticbeanstalk-ec2-role-my-example-env`許可給 環境中 ID 為 的 S3 儲存貯體`my-example-env-ID`。

**Example 僅將許可授予特定環境的 S3 儲存貯體**  

```
{
   "Sid": "BucketAccess",
   "Action": [
      "s3:Get*",
      "s3:List*",
      "s3:PutObject"
    ],
   "Effect": "Allow",
   "Principal": {
      "AWS": "arn:aws:iam::...:role/aws-elasticbeanstalk-ec2-role-my-example-env"
     },
   "Resource": [
      "arn:aws:s3:::elasticbeanstalk-my-region-account-id-12345",
      "arn:aws:s3:::elasticbeanstalk-my-region-account-id-12345/resources/environments/my-example-env-ID/*"
    ]
}
```

**注意**  
資源 ARN 必須包含 Elastic Beanstalk 環境 ID （而非環境名稱）。您可以從環境[概觀頁面上的 Elastic Beanstalk 主控台取得環境](environments-dashboard.md) ID。您也可以使用 AWS CLI [ describe-environments](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html) 命令來取得此資訊。

如需可協助您更新 Elastic Beanstalk 環境 S3 儲存貯體許可的詳細資訊，請參閱下列資源：
+ 本指南中的 [將 Elastic Beanstalk 與 Amazon S3 搭配使用](AWSHowTo.S3.md)
+ *《服務授權參考*》指南》中的 [Amazon S3 定義的資源類型](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-resources-for-iam-policies) 
+ *IAM 使用者指南*中的 [ARN 格式](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) 