권한 경계를 사용하여 IAM 사용자 및 역할의 범위를 제한하고 권한 상승을 방지하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 9월 11일

AWS Identity and Access Management(IAM) 관리자 액세스를 제한하고 권한 상승을 방지하는 권한 경계 정책을 생성하려면 어떻게 해야 합니까?

해결 방법

다음 예제 IAM 정책을 사용하여 이러한 제한 사항을 제공합니다.

  • IAM 관리자가 생성한 IAM 보안 주체는 AWS 리소스에 대한 전체 액세스 권한을 가질 수 있습니다. AWS 리소스에 대한 전체 액세스는 자격 증명 기반 정책에 따라 달라집니다. 권한 경계는 자체적으로 권한을 제공하지 않기 때문입니다.
  • 이 정책은 IAM 보안 주체가 AWS Billing and Cost Management 관련 서비스에 액세스하지 못하도록 제한합니다.
  • IAM 보안 주체는 제한된 서비스에 액세스할 수 있는 권한을 부여하도록 권한 경계를 변경할 수 없습니다.
  • IAM 관리자는 이미 보유한 것보다 많은 권한이 있는 IAM 보안 주체를 생성할 수 없습니다.
  • IAM 관리자가 생성한 IAM 보안 주체는 IAM 관리자보다 더 많은 권한을 가진 IAM 보안 주체를 생성할 수 없습니다.

이 정책을 ScopePermissions라는 이름의 관리형 정책으로 저장합니다. YourAccount_ID를 해당하는 계정 ID로 바꿉니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowAdminAccess",
            "Effect": "Allow",
            "Action": "*",
            "Resource": "*"
        },
        {
            "Sid": "DenyAccessToCostAndBilling",
            "Effect": "Deny",
            "Action": [
                "account:*",
                "aws-portal:*",
                "savingsplans:*",
                "cur:*",
                "ce:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DenyPermBoundaryIAMPolicyAlteration",
            "Effect": "Deny",
            "Action": [
                "iam:DeletePolicy",
                "iam:DeletePolicyVersion",
                "iam:CreatePolicyVersion",
                "iam:SetDefaultPolicyVersion"
            ],
            "Resource": [
                "arn:aws:iam::YourAccount_ID:policy/ScopePermissions"
            ]
        },
        {
            "Sid": "DenyRemovalOfPermBoundaryFromAnyUserOrRole",
            "Effect": "Deny",
            "Action": [
                "iam:DeleteUserPermissionsBoundary",
                "iam:DeleteRolePermissionsBoundary"
            ],
            "Resource": [
                "arn:aws:iam::YourAccount_ID:user/*",
                "arn:aws:iam::YourAccount_ID:role/*"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": "arn:aws:iam::YourAccount_ID:policy/ScopePermissions"
                }
            }
        },
        {
            "Sid": "DenyAccessIfRequiredPermBoundaryIsNotBeingApplied",
            "Effect": "Deny",
            "Action": [
                "iam:PutUserPermissionsBoundary",
                "iam:PutRolePermissionsBoundary"
            ],
            "Resource": [
                "arn:aws:iam::YourAccount_ID:user/*",
                "arn:aws:iam::YourAccount_ID:role/*"
            ],
            "Condition": {
                "StringNotEquals": {
                    "iam:PermissionsBoundary": "arn:aws:iam::YourAccount_ID:policy/ScopePermissions"
                }
            }
        },
        {
            "Sid": "DenyUserAndRoleCreationWithOutPermBoundary",
            "Effect": "Deny",
            "Action": [
                "iam:CreateUser",
                "iam:CreateRole"
            ],
            "Resource": [
                "arn:aws:iam::YourAccount_ID:user/*",
                "arn:aws:iam::YourAccount_ID:role/*"
            ],
            "Condition": {
                "StringNotEquals": {
                    "iam:PermissionsBoundary": "arn:aws:iam::YourAccount_ID:policy/ScopePermissions"
                }
            }
        }
    ]
}

이 정책을 테스트하려면:

1.    Bob이라는 이름의 새 IAM 사용자를 생성합니다.

2.    AdministratorAccess 정책을 Bob에 직접 연결하고 ScopePermissions를 권한 경계로 연결합니다.

3.    AWS Management Console에 Bob으로 로그인합니다. 그러고 나서, 다음을 시도합니다.

  • AWS Billing and Cost Management 서비스 Cost Explorer에 액세스합니다.
  • Bob에서 권한 경계를 삭제합니다.
  • 권한 경계 없이 새 IAM 사용자 및 역할을 생성합니다.
  • 권한 경계가 적용된 Alice라는 이름의 IAM 사용자를 생성한 다음 AdministratorAccess 정책을 자격 증명 기반 정책으로 Alice에 연결합니다.

4.    AWS Management Console에 Alice로 로그인하고 다음을 시도하십시오.

권한 경계는 다음을 확인합니다.

  • Bob은 권한 경계 ScopePermissions를 연결하지 않고는 새 사용자를 생성할 수 없습니다.
  • Bob이 생성한 IAM 사용자 및 역할은 Bob과 동일하거나 그보다 낮은 권한을 갖습니다.
  • BobAlice는 권한 경계를 소싱하는 IAM 정책을 변경할 수 없습니다(예: 정책의 기본 버전 삭제).
  • BobAlice는 자체 또는 다른 사용자로부터 적용되는 권한 경계를 변경하거나 제거할 수 없습니다.
  • 권한 경계는 제한된 서비스에 대한 액세스를 거부합니다.
  • AliceBob과 동일한 권한을 나타내어 권한 상승을 방지합니다. Alice가 새 IAM 사용자를 생성할 경우, 새 사용자는 Bob보다 많은 권한을 가지지 않습니다. 이 권한 경계는 권한 경계 없이 IAM 보안 주체가 생성되지 않도록 하여 권한 상승을 방지합니다.

이 문서가 도움이 되었습니까?


결제 또는 기술 지원이 필요합니까?