管理ポリシーに基づくポリシーの例 - AWS Elastic Beanstalk

管理ポリシーに基づくポリシーの例

このセクションでは、AWS Elastic Beanstalk へのユーザーアクセスを制御する方法を説明し、一般的なシナリオで必要なアクセスを提供するポリシーの例を示します。これらのポリシーは、Elastic Beanstalk 管理ポリシーから派生しています。ユーザーまたはグループに管理ポリシーをアタッチする方法については、「Elastic Beanstalk ユーザーポリシーの管理」を参照してください。

このシナリオでは、Example Corp. というソフトウェア会社の 3 つのチームが自社ウェブサイト関連の作業に携わっています。インフラストラクチャを管理する管理者チーム、ウェブサイト向けソフトウェアを開発する開発者チーム、そしてウェブサイトをテストする QA チームです。Elastic Beanstalk リソースに対するアクセス許可を管理しやすいように、Example Corp. では、Admins、Developers、Testers の 3 つグループを作成し、各チームのメンバーを追加します。Example Corp. は、Admins グループがすべての Elastic Beanstalk アセットの作成、トラブルシューティング、削除を行えるように、すべてのアプリケーション、環境、およびそれらの基盤となるリソースへのフルアクセスを許可したいと考えています。開発者には、すべての Elastic Beanstalk アセットの表示、およびアプリケーションバージョンの作成とデプロイを許可する必要があります。開発者がアプリケーションまたは環境を新規作成したり、実行中の環境を終了したりできないようにします。テスターは、アプリケーションをモニタリングおよびテストするために、すべての Elastic Beanstalk リソースを表示する必要があります。テスターは、Elastic Beanstalk リソースに変更を加えることができないようにする必要があります。

次のポリシーの例では、各グループに必要なアクセス権限を付与しています。

例 1: 管理者グループ - すべての Elastic Beanstalk および関連するサービス API

以下のポリシーにより、Elastic Beanstalk の使用に必要なすべてのアクションに対するアクセス許可がユーザーに付与されます。このポリシーでは、以下のサービスで Elastic Beanstalk がユーザーに代わってリソースのプロビジョニングと管理を行うことを許可しています。Elastic Beanstalk は、環境を作成するときに、これらの追加サービスに依存して基盤となるリソースをプロビジョニングします。

  • Amazon Elastic Compute Cloud

  • Elastic Load Balancing

  • Auto Scaling

  • Amazon CloudWatch

  • Amazon Simple Storage Service

  • Amazon Simple Notification Service

  • Amazon Relational Database Service

  • AWS CloudFormation

このポリシーは例です。これにより、Elastic Beanstalk がアプリケーションと環境を管理するのに使用する AWS のサービスに、広範なアクセス許可のセットが付与されます。例えば、ec2:* を使用すると、AWS Identity and Access Management (IAM) ユーザーは AWS アカウントで、すべての Amazon EC2 リソースに対してどんなアクションでも実行できます。これらのアクセス許可は、Elastic Beanstalk で使用するリソースに限定されません。ベストプラクティスとして、職務遂行に必要な許可のみを個人に付与することをお勧めします。

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "elasticbeanstalk:*", "ec2:*", "elasticloadbalancing:*", "autoscaling:*", "cloudwatch:*", "s3:*", "sns:*", "rds:*", "cloudformation:*" ], "Resource" : "*" } ] }

例 2: 開発者グループ - 高い特権のオペレーションを除くすべてのオペレーション。

以下のポリシーでは、アプリケーションと環境を作成するアクセス許可を拒否し、それ以外の Elastic Beanstalk アクションをすべて許可します。

このポリシーは例です。これにより、Elastic Beanstalk がアプリケーションと環境を管理するのに 使用する AWS 製品に、広範なアクセス許可のセットが付与されます。例えば、ec2:* を使用すると、IAM ユーザーが AWS アカウントで、すべての Amazon EC2 リソースに対してどんなアクションでも実行できます。これらのアクセス許可は、Elastic Beanstalk で使用するリソースに限定されません。ベストプラクティスとして、職務遂行に必要な許可のみを個人に付与することをお勧めします。

{ "Version" : "2012-10-17", "Statement" : [ { "Action" : [ "elasticbeanstalk:CreateApplication", "elasticbeanstalk:CreateEnvironment", "elasticbeanstalk:DeleteApplication", "elasticbeanstalk:RebuildEnvironment", "elasticbeanstalk:SwapEnvironmentCNAMEs", "elasticbeanstalk:TerminateEnvironment"], "Effect" : "Deny", "Resource" : "*" }, { "Action" : [ "elasticbeanstalk:*", "ec2:*", "elasticloadbalancing:*", "autoscaling:*", "cloudwatch:*", "s3:*", "sns:*", "rds:*", "cloudformation:*"], "Effect" : "Allow", "Resource" : "*" } ] }

例 3: テスター - 表示のみ

次のポリシーは、すべてのアプリケーション、アプリケーションバージョン、イベント、および環境に対して読み取り専用アクセスを許可します。任意のアクションを実行することはできません。

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "elasticbeanstalk:Check*", "elasticbeanstalk:Describe*", "elasticbeanstalk:List*", "elasticbeanstalk:RequestEnvironmentInfo", "elasticbeanstalk:RetrieveEnvironmentInfo", "ec2:Describe*", "elasticloadbalancing:Describe*", "autoscaling:Describe*", "cloudwatch:Describe*", "cloudwatch:List*", "cloudwatch:Get*", "s3:Get*", "s3:List*", "sns:Get*", "sns:List*", "rds:Describe*", "cloudformation:Describe*", "cloudformation:Get*", "cloudformation:List*", "cloudformation:Validate*", "cloudformation:Estimate*" ], "Resource" : "*" } ] }