

# IAM: 複数のサービスへのアクセスをプログラムによりコンソールで許可および拒否する
<a name="reference_policies_examples_iam_multiple-services-console"></a>

この例では、IAM で複数のサービスへのフルアクセスと IAM の制限された自己管理アクセスを許可する ID ベースのポリシーを作成する方法を示します。また、Amazon S3 の `logs` バケットまたは Amazon EC2 の `i-1234567890abcdef0` インスタンスへのアクセスを拒否します。このポリシーは、プログラムおよびコンソールアクセスのアクセス許可を定義します。このポリシーを使用するには、サンプルポリシーの*イタリック体のプレースホルダーテキスト*を独自の情報に置き換えます。次に、[ポリシーの作成](access_policies_create.md)または[ポリシーの編集](access_policies_manage-edit.md)の手順に従います。

**警告**  
このポリシーは、複数のサービスのすべてのアクションとリソースへのフルアクセスを許可します。このポリシーは、信頼されている管理者にのみ適用する必要があります。

このポリシーをアクセス許可の境界として使用して、アイデンティティベースのポリシーが IAM ユーザーに付与できる最大のアクセス許可の上限を定義できます。詳細については、「[アクセス許可の境界を使用した他のユーザーへの責任の委任](access_policies_boundaries.md#access_policies_boundaries-delegate)」を参照してください。ポリシーがユーザーのアクセス許可の境界として使用される場合、ステートメントは次の境界を定義します。
+ この `AllowServices` ステートメントでは、指定された AWS のサービスへのフルアクセスを許可します。つまり、これらのサービスにおけるユーザーのアクションは、ユーザーにアタッチされているアクセス許可ポリシーによってのみ制限されます。
+ `AllowIAMConsoleForCredentials` ステートメントは、すべての IAM ユーザーを一覧表示するためのアクセス権を付与します。このアクセス権は、AWS マネジメントコンソール で [**ユーザー**] ページに移動するために必要です。また、このアクセス権では、アカウントのパスワード要件を表示することができます。これは、ユーザーが自分のパスワードを変更する場合に必要です。
+ `AllowManageOwnPasswordAndAccessKeys` ステートメントは、自分のパスワードおよびプログラムを使用したアクセスキーの管理のみ許可します。これが重要であるのは、別のポリシーが IAM へのフルアクセスをユーザーに与えた場合、このユーザーは自分や他のユーザーのアクセス許可を変更できるようになるためです。このステートメントで、これを防止します。
+ `DenyS3Logs` ステートメントでは、`logs` バケットへのアクセスを明示的に拒否します。このポリシーはユーザーに会社の制限を適用します。
+ `DenyEC2Production` ステートメントでは、`i-1234567890abcdef0` インスタンスへのアクセスを明示的に拒否します。

このポリシーでは、他のサービスまたはアクションへのアクセスは許可されません。ポリシーがユーザーのアクセス許可の境界として使用されている場合、そのユーザーに関連付けられている他のポリシーがそれらのアクションを許可していても、AWS によってリクエストが拒否されます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowServices",
            "Effect": "Allow",
            "Action": [
                "s3:*",
                "cloudwatch:*",
                "ec2:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowIAMConsoleForCredentials",
            "Effect": "Allow",
            "Action": [
                "iam:ListUsers",
                "iam:GetAccountPasswordPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowManageOwnPasswordAndAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:*AccessKey*",
                "iam:ChangePassword",
                "iam:GetUser",
                "iam:*LoginProfile*"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "DenyS3Logs",
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::logs",
                "arn:aws:s3:::logs/*"
            ]
        },
        {
            "Sid": "DenyEC2Production",
            "Effect": "Deny",
            "Action": "ec2:*",
            "Resource": "arn:aws:ec2:*:*:instance/i-1234567890abcdef0"
        }
    ]
}
```

------