AWS 서비스에 액세스할 때 액세스가 거부되거나 승인되지 않는 오류가 발생하는 문제를 해결하고 싶습니다.
간략한 설명
AWS Identity and Access Management(IAM)는 정책이 특정 조건 요구 사항을 충족하지 않는 경우 액세스가 거부되거나 승인되지 않는 오류를 반환합니다.
문제를 해결하려면 문제를 일으키는 특정 IAM 사용자 또는 IAM 역할을 식별하십시오. 해당 엔터티에 연결된 권한 경계를 검토하십시오. 권한 경계를 통해 관리형 정책을 사용하여 IAM 엔터티에 대한 최대 권한을 설정할 수 있습니다. 이 기능은 ID 기반 정책이 IAM 사용자 또는 역할에 부여할 수 있는 최대 권한을 제어합니다. 엔터티에 대한 권한 경계를 설정하면 해당 엔터티는 두 정책에서 모두 허용하는 작업만 수행할 수 있습니다.
참고: 엔터티는 ID 기반 정책과 권한 경계에서 모두 허용하는 작업만 수행할 수 있습니다.
해결 방법
권한 경계로 오류가 해결되지 않으면 AWS 계정의 서비스 제어 정책(SCP)을 검토하십시오. 다음으로 리소스 기반 정책에 IAM 엔터티에 대한 거부가 포함되어 있는지 확인합니다.
IAM 정책에서는 허용되지만 권한 경계에서는 허용되지 않는 작업이 있는지 확인
다음 예에서는 IAM 정책에서는 허용되지만 권한 경계에서는 허용되지 않는 작업을 보여 줍니다. 이 예에서 IAM 사용자에게는 USER_IAM_POLICY 정책이 연결되어 있습니다.
IAM policy:(USER_IAM_POLICY)
“Effect”: “Allow”,
“Action”: [
“ec2:*”,
“s3:*”
],
이 정책은 사용자에게 Amazon Elastic Compute Cloud(Amazon EC2) 및 Amazon Simple Storage Service(S3) 서비스에 대한 전체 액세스 권한을 부여합니다. 사용자에게 USER_PB_POLICY라는 권한 경계도 설정되어 있습니다.
Permissions Boundary:(USER_PB_POLICY)
“Effect”: “Allow”,
“Action”: [
“cloudwatch:*”,
“s3:*”
],
권한 경계는 사용자가 수행할 수 있는 최대 권한을 설정합니다. 이 예에서 해당 권한 경계는 Amazon CloudWatch 및 Amazon S3 서비스에 대한 전체 액세스를 허용합니다. 그러나 Amazon S3는 IAM 정책과 권한 경계에서 모두 허용되는 유일한 서비스이므로 사용자는 S3에 대해서만 액세스할 수 있습니다. 사용자가 Amazon EC2에 액세스하려고 하면 액세스 거부 오류가 발생합니다.
이 오류를 해결하려면 권한 경계를 편집하고 Amazon EC2에 대한 액세스를 허용하십시오.
“Effect”: “Allow”,
“Action”: [
“cloudwatch:*”,
“s3:*”,
“ec2:*”
],
IAM 콘솔을 사용하여 권한 경계에 필요한 모든 작업 포함
사용자에게 필요한 모든 작업을 포함하도록 권한 경계를 편집하려면 다음 단계를 완료하십시오.
- IAM 콘솔을 엽니다.
- 탐색 창에서 역할/사용자를 선택합니다.
- 편집하려는 IAM 엔터티를 선택합니다.
- 권한 경계 섹션에서 설정을 확인합니다. 권한 경계가 set이면 권한 경계가 설정되어 있음을 의미합니다. IAM 엔터티에서 권한 경계 역할을 하는 관리형 정책의 이름이 이 섹션에 나열됩니다.
- JSON 정책을 확장하고 필요한 작업이 권한 경계에서 허용되는지 확인합니다. 권한 경계가 작업을 허용하지 않는 경우 IAM 엔터티에 필요한 모든 작업을 허용하도록 JSON 정책을 수정합니다.
정책 수정 방법에 대한 자세한 내용은 IAM 정책 편집을 참조하십시오.
IAM 정책에서 iam:PermissionsBoundary 조건 키 사용
IAM 정책에 iam:PermissionsBoundary 조건 키를 추가합니다. 이 조건 키는 특정 정책이 IAM 엔터티에 권한 경계로 연결되어 있는지 확인합니다.
다음 예시는 RestrictedRegionpermissionsBoundary라는 이름의 IAM 정책을 보여줍니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "EC2RestrictRegion",
"Effect": “Allow”,
"Action": "ec2:*”
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": [
"us-east-1"
]
}
}
}
정책을 만들어 사용자를 만들 권한이 있는 위임된 관리자에게 연결합니다. 다음 예제 정책을 관리자에게 연결하면 관리자는 해당 사용자에게 RestrictedRegionPermissionsBoundary 정책을 연결한 경우에만 IAM 사용자를 만들 수 있습니다. 관리자가 정책을 연결하지 않고 IAM 사용자를 만들려고 하면 액세스 거부 오류가 발생합니다.
{
"Sid": "CreateUser",
"Effect": "Allow",
"Action": [
"iam:CreateUser"
],
"Resource": "arn:aws:iam::444455556666:user/test1*",
"Condition": {
"StringEquals": {
"iam:PermissionsBoundary": "arn:aws:iam::444455556666:policy/RestrictedRegionPermissionsBoundary"
}
}
새 사용자를 만들 때 IAM 정책 RestrictedRegionPermissionsBoundary를 권한 경계로 설정하려면 다음 단계를 완료하십시오.
- IAM 콘솔을 엽니다.
- 탐색 창에서 사용자를 선택한 다음, 사용자 추가를 선택합니다.
- 편집할 사용자 이름을 입력하고 AWS 액세스 유형을 선택한 후 다음을 선택합니다.
- 권한 경계 설정 섹션을 확장하고 권한 경계를 사용하여 최대 역할 권한 제어를 선택합니다.
- 검색 필드에 RestrictedRegionPermissionsBoundary를 입력한 다음, 정책에 대한 라디오 버튼을 선택합니다.
- Next:Tags를 선택합니다.
- 설정을 검토하고 사용자를 만듭니다.
관련 정보
경계를 사용하여 유효 권한 평가
AWSSupport-TroubleshootIAMAccessDeniedEvents