

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

# Amazon EBS の IAM ポリシーの例
<a name="security_iam_id-based-policy-examples"></a>

デフォルトでは、ユーザーおよびロールには Amazon EBS リソースを作成または変更する許可がありません。また、、 AWS Command Line Interface (AWS CLI) AWS マネジメントコンソール、または AWS API を使用してタスクを実行することはできません。IAM 管理者は、リソースで必要なアクションを実行するための権限をユーザーに付与する IAM ポリシーを作成できます。その後、管理者はロールに IAM ポリシーを追加し、ユーザーはロールを引き受けることができます。

これらサンプルの JSON ポリシードキュメントを使用して、IAM アイデンティティベースのポリシーを作成する方法については、IAM ユーザーガイドの[IAM ポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)を参照してください。

**Topics**
+ [ポリシーに関するベストプラクティス](#security_iam_service-with-iam-policy-best-practices)
+ [ユーザーに Amazon EBS コンソールの使用を許可](#security_iam_id-based-policy-examples-console)
+ [自分の権限の表示をユーザーに許可する](#security_iam_id-based-policy-examples-view-own-permissions)
+ [ユーザーにボリュームの操作を許可](#iam-example-manage-volumes)
+ [ユーザーにスナップショットの操作を許可](#iam-example-manage-snapshots)

## ポリシーに関するベストプラクティス
<a name="security_iam_service-with-iam-policy-best-practices"></a>

アイデンティティベースのポリシーは、あるユーザーがアカウントの Amazon EBS リソースを作成、アクセス、削除できるどうかを決定します。これらのアクションでは、 AWS アカウントに費用が発生する場合があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:
+ ** AWS 管理ポリシーを開始し、最小特権のアクセス許可に移行する** – ユーザーとワークロードにアクセス許可の付与を開始するには、多くの一般的なユースケースにアクセス許可を付与する*AWS 管理ポリシー*を使用します。これらは で使用できます AWS アカウント。ユースケースに固有の AWS カスタマー管理ポリシーを定義することで、アクセス許可をさらに減らすことをお勧めします。詳細については、*IAM ユーザーガイド* の [AWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) または [ジョブ機能のAWS マネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) を参照してください。
+ **最小特権を適用する** – IAM ポリシーでアクセス許可を設定する場合は、タスクの実行に必要な許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、*IAM ユーザーガイド* の [IAM でのポリシーとアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) を参照してください。
+ **IAM ポリシーで条件を使用してアクセスをさらに制限する** - ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。たとえば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定できます。条件を使用して、サービスアクションが などの特定の を通じて使用されている場合に AWS のサービス、サービスアクションへのアクセスを許可することもできます CloudFormation。詳細については、*IAM ユーザーガイド* の [IAM JSON ポリシー要素:条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) を参照してください。
+ **IAM アクセスアナライザー を使用して IAM ポリシーを検証し、安全で機能的な権限を確保する** - IAM アクセスアナライザー は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM アクセスアナライザーは 100 を超えるポリシーチェックと実用的な推奨事項を提供し、安全で機能的なポリシーの作成をサポートします。詳細については、*IAM ユーザーガイド* の [IAM Access Analyzer でポリシーを検証する](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) を参照してください。
+ **多要素認証 (MFA) を要求する** – で IAM ユーザーまたはルートユーザーを必要とするシナリオがある場合は AWS アカウント、MFA をオンにしてセキュリティを強化します。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、*IAM ユーザーガイド* の [MFA を使用した安全な API アクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) を参照してください。

IAM でのベストプラクティスの詳細については、*IAM ユーザーガイド* の [IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) を参照してください。

## ユーザーに Amazon EBS コンソールの使用を許可
<a name="security_iam_id-based-policy-examples-console"></a>

Amazon Elastic Block Store コンソールにアクセスするには、最小限の許可セットが必要です。これらのアクセス許可により、 の Amazon EBS リソースの詳細を一覧表示および表示できます AWS アカウント。最小限必要な許可よりも制限が厳しいアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) に対してコンソールが意図したとおりに機能しません。

 AWS CLI または AWS API のみを呼び出すユーザーには、最小限のコンソールアクセス許可を付与する必要はありません。代わりに、実行しようとしている API オペレーションに一致するアクションのみへのアクセスが許可されます。

ユーザーとロールが引き続き Amazon EBS コンソールを使用できるようにするには、エンティティに Amazon EBS `{{ConsoleAccess}}`または `{{ReadOnly}}` AWS 管理ポリシーもアタッチします。詳細については、「*IAM ユーザーガイド*」の「[ユーザーへのアクセス許可の追加](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)」を参照してください。

## 自分の権限の表示をユーザーに許可する
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

この例では、ユーザーアイデンティティにアタッチされたインラインおよびマネージドポリシーの表示を IAM ユーザーに許可するポリシーの作成方法を示します。このポリシーには、コンソールで、または AWS CLI または AWS API を使用してプログラムでこのアクションを実行するアクセス許可が含まれています。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## ユーザーにボリュームの操作を許可
<a name="iam-example-manage-volumes"></a>

**Topics**
+ [例: ボリュームのアタッチとデタッチ](#iam-example-manage-volumes-attach-detach)
+ [例: ボリュームの作成](#iam-example-manage-volumes-create)
+ [例: タグ付きのボリュームの作成](#iam-example-manage-volumes-tags)
+ [例: Amazon EC2 コンソールを使用したボリュームの操作](#ex-volumes)

### 例: ボリュームのアタッチとデタッチ
<a name="iam-example-manage-volumes-attach-detach"></a>

API アクションが複数のリソースを指定するために発信者を必要とする場合、ユーザーがすべての必要なリソースにアクセスできるようにポリシーステートメントを作成する必要があります。1 つ以上のリソースで `Condition` エレメントを使用する必要がある場合、この例のとおり複数のステートメントを作成する必要があります。

以下のポリシーでは、ユーザーがタグ`volume_user`=*iam-user-name*」の付いたボリュームを、タグ`department=dev`の付いたインスタンスにアタッチしたり、またインスタンスからボリュームをデタッチしたりできるようにします。このポリシーを IAM グループにアタッチする場合、`aws:username` ポリシー変数によってグループのユーザーに、値としてユーザー名を持つタグ名が `volume_user` のインスタンスからボリュームをアタッチまたはデタッチするための許可が付与されます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AttachVolume",
                "ec2:DetachVolume"
            ],
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/department": "dev"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AttachVolume",
                "ec2:DetachVolume"
            ],
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/volume_user": "${aws:username}"
                }
            }
        }
    ]
}
```

------

### 例: ボリュームの作成
<a name="iam-example-manage-volumes-create"></a>

次のポリシーでは、ユーザーが [CreateVolume](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) API アクションを使用することができます。ユーザーは、ボリュームが暗号化されていて、ボリューム サイズが 20 GiB 未満の場合にのみボリュームの作成を許可されます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateVolume"
            ],
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*",
            "Condition": {
                "NumericLessThan": {
                    "ec2:VolumeSize": "20"
                },
                "Bool": {
                    "ec2:Encrypted": "true"
                }
            }
        }
    ]
}
```

------

### 例: タグ付きのボリュームの作成
<a name="iam-example-manage-volumes-tags"></a>

次のポリシーには、タグ `aws:RequestTag` および `costcenter=115` を使用して作成したすべてのボリュームへのタグ付けをユーザーに求める `stack=prod` 条件キーが含まれています。ユーザーがこれらのタグを渡さないか、タグをまったく指定しない場合、リクエストは失敗します。

タグを適用するリソース作成アクションでは、ユーザーが `CreateTags` アクションを使用するアクセス権限を持っていることも必要です。2 番目のステートメントは、`ec2:CreateAction` 条件キーを使用して、ユーザーが `CreateVolume` のコンテキストでみタグを使用できるようにします。ユーザーは、既存のボリュームにも他のリソースにもタグ付けできません。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCreateTaggedVolumes",
            "Effect": "Allow",
            "Action": "ec2:CreateVolume",
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/costcenter": "115",
                    "aws:RequestTag/stack": "prod"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateVolume"
                }
            }
        }
    ]
}
```

------

次のポリシーでは、ユーザーがタグを指定しなくてもボリュームを作成することができます。`CreateTags` アクションは、タグが `CreateVolume` リクエストで指定されている場合にのみ評価されます。ユーザーがタグを指定する場合、`purpose=test` タグを指定する必要があります。リクエストでは他のタグは許可されません。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:CreateVolume",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/purpose": "test",
                    "ec2:CreateAction": "CreateVolume"
                },
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": "purpose"
                }
            }
        }
    ]
}
```

------

### 例: Amazon EC2 コンソールを使用したボリュームの操作
<a name="ex-volumes"></a>

次のポリシーは、ボリュームの表示および作成、ならびに Amazon EC2 コンソールを使用して特定のインスタンスにボリュームのアタッチおよびデタッチする許可をユーザーに付与します。

ユーザーは、「`purpose=test`」 というタグを含むインスタンスに対してどのボリュームもアタッチできます。同様に、それらのインスタンスからボリュームをデタッチすることもできます。Amazon EC2 コンソールを使用してボリュームをアタッチするには、ユーザーに `ec2:DescribeInstances` アクションを使用するアクセス許可があると、[**Attach Volume**] ダイアログボックスのあらかじめ用意されたリストからインスタンスを選択できるため、役立ちます。ただし、これにより、コンソールの [**Instances**] ページでもすべてのインスタンスが表示されるため、このアクションを省略することもできます。

最初のステートメントでは、ボリュームを作成するときにユーザーがアベイラビリティーゾーンを選択できるようにするため、`ec2:DescribeAvailabilityZones` アクションが必要です。

ユーザーは、作成したボリュームをタグ付けできません (ボリュームの作成中も作成後も)。

## ユーザーにスナップショットの操作を許可
<a name="iam-example-manage-snapshots"></a>

以下に、`CreateSnapshot` (EBS ボリュームのポイントインタイムスナップショット) と `CreateSnapshots` (マルチボリュームスナップショット) の両方のポリシーの例を示しています。

**Topics**
+ [例: スナップショットの作成](#iam-creating-snapshot)
+ [例: スナップショットの作成](#iam-creating-snapshots)
+ [例: タグ付きのスナップショットの作成](#iam-creating-snapshot-with-tags)
+ [例: タグを使用してマルチボリュームスナップショットを作成する](#iam-creating-snapshots-with-tags)
+ [例: スナップショットのコピー](#iam-copy-snapshot)
+ [例: スナップショットのアクセス許可設定の変更](#iam-modifying-snapshot-with-tags)

### 例: スナップショットの作成
<a name="iam-creating-snapshot"></a>

次のポリシーでは、お客様が [CreateSnapshot](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSnapshot.html) API アクションを使用することができます。お客様は、ボリュームが暗号化されていて、ボリューム サイズが 20 GiB 未満の場合にのみスナップショットを作成できます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshot",
            "Resource": "arn:aws:ec2:us-east-1::snapshot/*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshot",
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*",
            "Condition": {
                "NumericLessThan": {
                    "ec2:VolumeSize": "20"
                },
                "Bool": {
                    "ec2:Encrypted": "true"
                }
            }
        }
    ]
}
```

------

### 例: スナップショットの作成
<a name="iam-creating-snapshots"></a>

次のポリシーでは、お客様が [CreateSnapshot](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSnapshots.html) API アクションを使用することができます。インスタンス上のすべてのボリュームがタイプ GP2 の場合にのみ、お客様はスナップショットを作成できます。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect":"Allow",
         "Action":"ec2:CreateSnapshots",
         "Resource":[
"arn:aws:ec2:us-east-1::snapshot/*",
"arn:aws:ec2:*:*:instance/*"
   ]
      },
      {
         "Effect":"Allow",
         "Action":"ec2:CreateSnapshots",
         "Resource":"arn:aws:ec2:us-east-1:*:volume/*",
         "Condition":{
            "StringLikeIfExists":{
               "ec2:VolumeType":"gp2"
             }
	    }
            
      }
   ]
}
```

------

### 例: タグ付きのスナップショットの作成
<a name="iam-creating-snapshot-with-tags"></a>

次のポリシーには、タグ `aws:RequestTag` および `costcenter=115` をすべての新しいリクエストに適用することをお客様に求める `stack=prod` 条件キーが含まれています。ユーザーがこれらのタグを渡さないか、タグをまったく指定しない場合、リクエストは失敗します。

タグを適用するリソース作成アクションでは、`CreateTags` アクションを使用するアクセス権限も持っていることが求められます。3 番目のステートメントは、`ec2:CreateAction` 条件キーを使用して、お客様が `CreateSnapshot` のコンテキストでみタグを使用できるようにします。お客様は、既存のボリュームにも他のリソースにもタグ付けできません。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshot",
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*"
        },
        {
            "Sid": "AllowCreateTaggedSnapshots",
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshot",
            "Resource": "arn:aws:ec2:us-east-1::snapshot/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/costcenter": "115",
                    "aws:RequestTag/stack": "prod"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:us-east-1::snapshot/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateSnapshot"
                }
            }
        }
    ]
}
```

------

### 例: タグを使用してマルチボリュームスナップショットを作成する
<a name="iam-creating-snapshots-with-tags"></a>

次のポリシーには、マルチボリュームスナップショットセットを作成するときにタグ `costcenter=115` および `stack=prod` を適用することをお客様に要求する `aws:RequestTag` 条件キーが含まれています。ユーザーがこれらのタグを渡さないか、タグをまったく指定しない場合、リクエストは失敗します。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect":"Allow",
         "Action":"ec2:CreateSnapshots",
         "Resource":[
"arn:aws:ec2:us-east-1::snapshot/*",
"arn:aws:ec2:*:*:instance/*",
"arn:aws:ec2:*:*:volume/*"

   ]
      },
      {
         "Sid":"AllowCreateTaggedSnapshots",
         "Effect":"Allow",
         "Action":"ec2:CreateSnapshots",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "StringEquals":{
               "aws:RequestTag/costcenter":"115",
               "aws:RequestTag/stack":"prod"
            }
         }
      },
      {
         "Effect":"Allow",
         "Action":"ec2:CreateTags",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "StringEquals":{
               "ec2:CreateAction":"CreateSnapshots"
            }
         }
      }
   ]
}
```

------

次のポリシーでは、お客様がタグを指定しなくてもスナップショットを作成することができます。`CreateTags` アクションは、タグが `CreateSnapshot` または `CreateSnapshots` リクエストで指定されている場合にのみ評価されます。リクエストでは、タグを省略できます。タグを指定する場合、タグは `purpose=test` である必要があります。リクエストでは他のタグは許可されません。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect":"Allow",
         "Action":"ec2:CreateSnapshot",
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":"ec2:CreateTags",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "StringEquals":{
               "aws:RequestTag/purpose":"test",
               "ec2:CreateAction":"CreateSnapshot"
            },
            "ForAllValues:StringEquals":{
               "aws:TagKeys":"purpose"
            }
         }
      }
   ]
}
```

------

次のポリシーでは、お客様がタグを指定しなくても、マルチボリュームスナップショットセットを作成することができます。`CreateTags` アクションは、タグが `CreateSnapshot` または `CreateSnapshots` リクエストで指定されている場合にのみ評価されます。リクエストでは、タグを省略できます。タグを指定する場合、タグは `purpose=test` である必要があります。リクエストでは他のタグは許可されません。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect":"Allow",
         "Action":"ec2:CreateSnapshots",
         "Resource":"*"
      },
      {
         "Effect":"Allow",
         "Action":"ec2:CreateTags",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "StringEquals":{
               "aws:RequestTag/purpose":"test",
               "ec2:CreateAction":"CreateSnapshots"
            },
            "ForAllValues:StringEquals":{
               "aws:TagKeys":"purpose"
            }
         }
      }
   ]
}
```

------

次のポリシーでは、ソースボリュームにお客様の `User:username` がタグ付けされていて、スナップショット自体に `Environment:Dev` と `User:username` がタグ付けされている場合にのみスナップショットの作成を許可します。お客様は、スナップショットにタグを追加できます。

次の `CreateSnapshots` のポリシーでは、ソースボリュームにお客様用の `User:username` がタグ付けされ、スナップショット自体に `Environment:Dev` と `User:username` のタグ付けがされている場合にのみスナップショットを作成できます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshots",
            "Resource": "arn:aws:ec2:us-east-1:*:instance/*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshots",
            "Resource": "arn:aws:ec2:us-east-1:{{111122223333}}:volume/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/User": "${aws:username}"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateSnapshots",
            "Resource": "arn:aws:ec2:us-east-1::snapshot/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/Environment": "Dev",
                    "aws:RequestTag/User": "${aws:username}"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:us-east-1::snapshot/*"
        }
    ]
}
```

------

次のポリシーでは、スナップショットにお客様の User:*username* がタグ付けされている場合のみスナップショットの削除を許可します。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
            {
         "Effect":"Allow",
         "Action":"ec2:DeleteSnapshot",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "StringEquals":{
               "aws:ResourceTag/User":"${aws:username}"
            }
         }
      }
   ]
}
```

------

次のポリシーでは、お客様はスナップショットを作成できますが、作成されるスナップショットにタグキー `value=stack` が付いている場合はアクションが拒否されます。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect":"Allow",
         "Action":[
            "ec2:CreateSnapshot",
            "ec2:CreateTags"
         ],
         "Resource":"*"
      },
      {
         "Effect":"Deny",
         "Action":"ec2:CreateSnapshot",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "ForAnyValue:StringEquals":{
               "aws:TagKeys":"stack"
            }
         }
      }
   ]
}
```

------

次のポリシーでは、お客様はスナップショットを作成できますが、作成されるスナップショットにタグキー `value=stack` が付いている場合はアクションが拒否されます。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect":"Allow",
         "Action":[
            "ec2:CreateSnapshots",
            "ec2:CreateTags"
         ],
         "Resource":"*"
      },
      {
         "Effect":"Deny",
         "Action":"ec2:CreateSnapshots",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "ForAnyValue:StringEquals":{
               "aws:TagKeys":"stack"
            }
         }
      }
   ]
}
```

------

次のポリシーでは、複数のアクションを単一のポリシーにまとめることができます。スナップショットがリージョン `CreateSnapshots` で作成された場合にのみ、(`us-east-1` のコンテキスト内で) スナップショットを作成できます。スナップショットがリージョン `CreateSnapshots` に作成されている場合、およびインスタンスタイプが `us-east-1` の場合にのみ、スナップショットを作成できます (`t2*` のコンテキスト内で)。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
          {
         "Effect":"Allow",
         "Action":[
            "ec2:CreateSnapshots",
            "ec2:CreateSnapshot",
            "ec2:CreateTags"
         ],
         "Resource": [
            "arn:aws:ec2:*:*:instance/*",
            "arn:aws:ec2:*:*:snapshot/*",
            "arn:aws:ec2:*:*:volume/*"
         ],
         "Condition":{
            "StringEqualsIgnoreCase": {
              "ec2:Region": "us-east-1"
            },
            "StringLikeIfExists": {
              "ec2:InstanceType": ["t2.*"]
            }
         }
      }
   ]
}
```

------

### 例: スナップショットのコピー
<a name="iam-copy-snapshot"></a>

**CopySnapshot** アクション用に指定されたリソースレベルのアクセス許可は、新しいスナップショットとソーススナップショップの両方に適用されます。

以下のポリシーの例では、新しいスナップショットがタグキー `purpose`、タグ値 `production` (`purpose=production`) を使用して作成された場合にのみ、プリンシパルがスナップショットをコピーすることを許可します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCopySnapshotWithTags",
            "Effect": "Allow",
            "Action": "ec2:CopySnapshot",
            "Resource": "arn:aws:ec2:*:{{111122223333}}:snapshot/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/purpose": "production"
                }
            }
        }
    ]
}
```

------

次のポリシー例では、ソーススナップショットが AWS アカウント によって所有されている場合にのみ、プリンシパルがスナップショットをコピーすることを許可します`123456789012`。

以下のポリシーの例では、ソーススナップショットが `CSISnapshotName` のタグキーを使用して作成された場合にのみ、プリンシパルがスナップショットをコピーすることを許可します。

```
{
    "Effect": "Allow",
    "Action": "ec2:CopySnapshot", 
    "Resource": "arn:aws:ec2:*::snapshot/${*}",
    "Condition": { 
        "StringLike": { 
            "aws:RequestTag/CSISnapshotName": "*" 
         } 
     }
},

{
    "Effect": "Allow",
    "Action": "ec2:CopySnapshot",
    "Resource": "arn:aws:ec2:*::snapshot/snap-*"
}
```

### 例: スナップショットのアクセス許可設定の変更
<a name="iam-modifying-snapshot-with-tags"></a>

次のポリシーでは、スナップショットが でタグ付けされている場合にのみ`User:{{username}}`、スナップショットの変更を許可します。{{ユーザー名}}は顧客の AWS アカウントユーザー名です。この条件が満たされない場合、リクエストは失敗します。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
           {
         "Effect":"Allow",
         "Action":"ec2:ModifySnapshotAttribute",
         "Resource":"arn:aws:ec2:us-east-1::snapshot/*",
         "Condition":{
            "StringEquals":{
               "aws:ResourceTag/user-name":"${aws:{{username}}}"
            }
         }
      }
   ]
}
```

------