

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

# タグを使用した Elastic Beanstalk リソースへのアクセスのコントロール
<a name="AWSHowTo.iam.policies.access-tags"></a>

このトピックでは、タグベースのアクセスコントロールが IAM ポリシーの作成と管理にどのように役立つかについて説明します。

IAM ユーザーポリシーステートメントの条件を使用して、Elastic Beanstalk のリソースへのアクセス許可を設定できます。ポリシーステートメント条件の詳細については、「[Elastic Beanstalk アクションのリソースと条件](AWSHowTo.iam.policies.actions.md)」を参照してください。条件内でタグを使用することは、リソースとリクエストへのアクセスをコントロールするひとつの方法です。Elastic Beanstalk リソースのタグ付けについては、「[Elastic Beanstalk アプリケーションリソースのタグ付け](applications-tagging-resources.md)」を参照してください。

IAM ポリシーの設計時に特定のリソースへのアクセス権を付与することで、詳細なアクセス許可を設定できます。管理するリソースの数が増えるに従って、このタスクはより困難になります。リソースにタグ付けしてポリシーステートメント条件でタグを使用することにより、このタスクをより容易にすることができます。特定のタグを使用して任意のリソースへのアクセス権を一括して付与します。次に、作成時や以降の段階で、このタグを関連リソースに繰り返し適用します。

タグは、リソースにアタッチしたり、タグ付けをサポートするサービスへのリクエストに渡したりすることができます。Elastic Beanstalk では、リソースにタグを付けることができ、一部のアクションにタグを含めることができます。IAM ポリシーを作成するときに、タグ条件キーを使用して次の条件をコントロールできます。
+ 既にあるタグに基づいて、どのユーザーが環境に対してアクションを実行できるか。
+ アクションのリクエストで渡すことができるタグ。
+ リクエストで特定のタグキーを使用できるかどうか。

タグ条件キーの完全な構文と意味については、[[IAM ユーザーガイド]](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)の *[タグを使用したアクセスコントロール]*」を参照してください。

## ポリシーのタグ条件の例
<a name="AWSHowTo.iam.policies.access-tags.examples"></a>

以下の例は、Elastic Beanstalk ユーザー用のポリシーでタグ条件を指定する方法を示しています。

**Example 1: リクエストのタグに基づいてアクションを制限する**  <a name="example_policy_tags.deny_by_request_tag"></a>
Elastic Beanstalk の管理ユーザーポリシー、**AdministratorAccess-AWSElasticBeanstalk** では、Elastic Beanstalk で管理されている任意のリソースに対して、任意の Elastic Beanstalk アクションを実行するための、無制限のアクセス許可をユーザーに付与します。  
以下のポリシーでは、この権限を制限し、未認可のユーザーに対して Elastic Beanstalk の本番稼働環境を作成するアクセス許可を拒否します。これを行うには、リクエストに指定されているタグ `stage` の値が `gamma` または `prod` のいずれかである場合、`CreateEnvironment` アクションを拒否します。また、このポリシーでは、タグ変更アクションにこれらの同じタグ値を含めることや `stage` タグを完全に削除することを許可しないことで、これらの未承認のユーザーが本番稼働用環境のステージを改ざんするのを防ぎます。お客様の管理者は、未認証の IAM ユーザーには、マネージドユーザーポリシーに加えて、この IAM ポリシーをアタッチする必要があります。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "elasticbeanstalk:CreateEnvironment",
        "elasticbeanstalk:AddTags"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/stage": ["gamma", "prod"]
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "elasticbeanstalk:RemoveTags"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:TagKeys": ["stage"]
        }
      }
    }
  ]
}
```

**Example 2: リソースタグに基づいてアクションを制限する**  <a name="example_policy_tags.deny_by_resource_tag"></a>
Elastic Beanstalk の管理ユーザーポリシー、**AdministratorAccess-AWSElasticBeanstalk** では、Elastic Beanstalk で管理されている任意のリソースに対して、任意の Elastic Beanstalk アクションを実行するための、無制限のアクセス許可をユーザーに付与します。  
以下のポリシーでは、この権限を制限し、未認可のユーザーに対して Elastic Beanstalk 本番稼働環境でアクションを実行するアクセス許可を拒否します。これを行うには、環境に含まれているタグ `stage` の値が `gamma` または `prod` のいずれかである場合、特定のアクションを拒否します。お客様の管理者は、権限のない IAM ユーザーには、マネージドユーザーポリシーに加えて、この IAM ポリシーをアタッチする必要があります。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "elasticbeanstalk:AddTags",
        "elasticbeanstalk:RemoveTags",
        "elasticbeanstalk:DescribeEnvironments",
        "elasticbeanstalk:TerminateEnvironment",
        "elasticbeanstalk:UpdateEnvironment",
        "elasticbeanstalk:ListTagsForResource"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/stage": ["gamma", "prod"]
        }
      }
    }
  ]
}
```

**Example 3: リクエストのタグに基づいてアクションを許可する**  <a name="example_policy_tags.allow_by_request_tag"></a>
以下のポリシーでは、Elastic Beanstalk の開発アプリケーションを作成するアクセス許可をユーザーに付与します。  
これを行うには、リクエストに指定されているタグ `stage` の値が `development` である場合、`CreateApplication` アクションと `AddTags` アクションを許可します。`aws:TagKeys` 条件により、ユーザーは他のタグキーを追加できなくなります。特に、`stage` タグキーの大文字と小文字が確実に区別されます。このポリシーは、Elastic Beanstalk の管理ユーザーポリシー、**AdministratorAccess-AWSElasticBeanstalk** が、IAM ユーザーにアタッチされていない場合に役立ちます。管理ポリシーでは、Elastic Beanstalk で管理される任意のリソースに対して任意の Elastic Beanstalk アクションを実行する無制限のアクセス許可をユーザーに付与します。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "elasticbeanstalk:CreateApplication",
        "elasticbeanstalk:AddTags"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/stage": "development"
        },
        "ForAllValues:StringEquals": {
          "aws:TagKeys": ["stage"]
        }
      }
    }
  ]
}
```

**Example 4: リソースタグに基づいてアクションを制限する**  <a name="example_policy_tags.allow_by_resource_tag"></a>
以下のポリシーでは、Elastic Beanstalk の開発アプリケーションに対するアクションを実行し、これらのアプリケーションに関する情報を取得するアクセス許可をユーザーに付与します。  
これを行うには、アプリケーションに含まれているタグ `stage` の値が `development` である場合に、特定のアクションを許可します。`aws:TagKeys` 条件により、ユーザーは他のタグキーを追加できなくなります。特に、`stage` タグキーの大文字と小文字が確実に区別されます。このポリシーは、Elastic Beanstalk の管理ユーザーポリシー、**AdministratorAccess-AWSElasticBeanstalk** が、IAM ユーザーにアタッチされていない場合に役立ちます。管理ポリシーでは、Elastic Beanstalk で管理される任意のリソースに対して任意の Elastic Beanstalk アクションを実行する無制限のアクセス許可をユーザーに付与します。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "elasticbeanstalk:UpdateApplication",
        "elasticbeanstalk:DeleteApplication",
        "elasticbeanstalk:DescribeApplications"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/stage": "development"
        },
        "ForAllValues:StringEquals": {
          "aws:TagKeys": ["stage"]
        }
      }
    }
  ]
}
```