メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

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

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

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

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

例 1: Admins グループがすべての 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. Developers グループが、アプリケーションや環境の作成などの特権オペレーションを除き、すべてのアクションを実行できるようにする

次のポリシーでは、アプリケーションと環境を作成するアクセス権限を禁止しますが、それ以外の 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: Testers グループがすべての Elastic Beanstalk 資産を表示できるようにするが、アクションを実行できないようにする

次のポリシーは、すべてのアプリケーション、アプリケーションバージョン、イベント、および環境に対して読み取り専用アクセスを許可します。

{
  "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" : "*"
    }
  ]
}