環境間の Amazon S3 バケットアクセスの防止 - AWS Elastic Beanstalk

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

環境間の Amazon S3 バケットアクセスの防止

このトピックでは、 管理ポリシーがクロス環境 S3 バケットアクセスを許可する方法と、このタイプのアクセスを管理するカスタムポリシーを作成する方法について説明します。

Elastic Beanstalk には、 AWS アカウントの Elastic Beanstalk 環境に必要な AWS リソースを処理するためのマネージドポリシーが用意されています。 AWS アカウント内の 1 つのアプリケーションにデフォルトで提供されるアクセス許可は、同じ AWS アカウントの他のアプリケーションに属する S3 リソースにアクセスできます。

AWS アカウントで複数の Beanstalk アプリケーションを実行している場合は、環境ごとに独自のサービスロールまたはインスタンスプロファイルにアタッチする独自のカスタムポリシーを作成することで、ポリシーのセキュリティを絞り込むことができます。その後、カスタムポリシーの S3 アクセス許可を特定の環境に制限できます。

注記

カスタムポリシーを維持する責任があることに注意してください。カスタムポリシーが基になる Elastic Beanstalk 管理ポリシーが変更された場合は、ベースポリシーに対するそれぞれの変更でカスタムポリシーを変更する必要があります。Elastic Beanstalk 管理ポリシーの変更履歴については、「」を参照してくださいElastic Beanstalk によるマネージドポリシーのアップデート AWS

スコープダウンされたアクセス許可の例

次の例は、 AWSElasticBeanstalkWebTierマネージドポリシーに基づいています。

デフォルトのポリシーには、S3 バケットへのアクセス許可に関する次の行が含まれています。このデフォルトポリシーは、S3 バケットアクションを特定の環境またはアプリケーションに制限しません。

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

特定のリソースを として指定されたサービスロールに認定することで、アクセスの範囲を絞り込むことができますPrincipal。次の例では、ID を使用して環境内の S3 バケットにカスタムサービスロールのaws-elasticbeanstalk-ec2-role-my-example-envアクセス許可を提供しますmy-example-env-ID

例 特定の環境の 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/*" ] }
注記

リソースには (環境名ではなく) Elastic Beanstalk 環境 ID を含めるARN必要があります。環境 ID は、環境概要ページの Elastic Beanstalk コンソールから取得できます。 AWS CLI describe-environments コマンドを使用してこの情報を取得することもできます。

Elastic Beanstalk 環境の S3 バケットのアクセス許可を更新する方法の詳細については、次のリソースを参照してください。