

# IAM: 프로그래밍 방식에서, 그리고 콘솔에서 여러 서비스에 대한 액세스를 허용 및 거부
<a name="reference_policies_examples_iam_multiple-services-console"></a>

이 예제는 IAM에서 여러 서비스에 대한 전체 액세스 및 제한적 자체 관리 액세스를 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 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 Management Console의 **사용자** 페이지를 탐색하는 데 필요합니다. 또한 계정의 암호 요구 사항을 확인하도록 허용합니다. 이 액세스는 사용자가 자신의 고유 암호를 변경할 때 필요합니다.
+ `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"
        }
    ]
}
```

------