권한 관리 - 보안 원칙

권한 관리

AWS 및 워크로드에 액세스해야 하는 인적 자격 증명 및 시스템 자격 증명에 대한 액세스를 제어하는 권한을 관리합니다. 권한은 누가 어떤 조건에서 무엇에 액세스할 수 있는지를 제어합니다. 특정 리소스의 특정 서비스 작업에 대한 액세스 권한을 부여하려면 구체적인 인적 및 시스템 자격 증명에 권한을 설정합니다. 또한 액세스 권한을 부여하려면 ‘참’이어야 하는 조건을 지정합니다. 예를 들어 개발자에게 새 Lambda 함수를 생성하도록 허용하되, 특정 리전에서만 가능하도록 제한할 수 있습니다. 대규모로 AWS 환경을 관리할 때는 다음과 같은 모범 사례를 준수하여 자격 증명에 필요한 액세스만 부여하도록 해야 합니다.

서로 다른 유형의 리소스에 액세스 권한을 부여하는 방법에는 여러 가지가 있습니다. 그중 하나는 서로 다른 정책 유형을 사용하는 것입니다.

IAM의 자격 증명 기반 정책관리형이거나 인라인 방식이며, 사용자나 그룹, 역할을 포함한 IAM 자격 증명에 연결됩니다. 이러한 정책을 사용하면 해당 자격 증명이 할 수 있는 일 및 권한을 지정할 수 있습니다. 자격 증명 기반 정책은 하위 범주로 분류할 수 있습니다.

관리형 정책 - 독립형 자격 증명 기반 정책으로, AWS 계정 내의 여러 사용자, 그룹, 역할에 연결할 수 있습니다. 관리형 정책에는 다음과 같이 2가지 유형이 있습니다.

  • AWS 관리형 정책 - AWS에서 생성하고 관리하는 관리형 정책입니다.

  • 고객 관리형 정책 - AWS 계정에서 생성하고 관리하는 관리형 정책입니다. 고객 관리형 정책은 AWS 관리형 정책에 비해 정책을 더 세세하게 제어할 수 있습니다.

관리형 정책은 권한 적용에 선호되는 방법입니다. 그러나 하나의 사용자, 그룹 또는 역할에 직접 추가하는 인라인 정책을 사용할 수도 있습니다. 인라인 정책은 정책과 자격 증명 사이에 엄격한 1대1 관계를 유지합니다. 자격 증명을 삭제하면 인라인 정책도 삭제됩니다.

대부분의 경우 최소 권한 원칙에 따라 자체적으로 고객 관리형 정책을 생성해야 합니다.

리소스 기반 정책은 리소스에 연결됩니다. 리소스 기반 정책의 예로는 S3 버킷 정책이 있습니다. 이 정책은 리소스와 같거나 다른 계정에 있을 수 있는 보안 주체에 권한을 부여합니다. 리소스 기반 정책을 지원하는 서비스 목록을 확인하려면 IAM과 함께 작동하는 AWS 서비스를 참조하세요.

권한 경계는 관리형 정책을 사용하여 관리자가 설정할 수 있는 최대 권한을 지정합니다. 이렇게 하면 IAM 역할 생성과 같은 권한을 생성하고 관리할 수 있는 능력을 개발자에게 위임할 수 있지만, 개발자가 생성한 권한을 사용하여 권한을 에스컬레이션할 수 없도록 제한할 수 있습니다.

속성 기반 액세스 제어(ABAC)를 사용하면 속성을 기반으로 권한을 부여할 수 있습니다. AWS에서는 이를 태그라고 합니다. 태그는 IAM 보안 주체(사용자 또는 역할) 및 AWS 리소스에 연결될 수 있습니다. 관리자는 IAM 정책을 사용하여 IAM 보안 주체의 속성을 기반으로 권한을 적용하는, 재사용 가능한 정책을 만들 수 있습니다. 예를 들어, 관리자는 조직의 개발자에게 개발자의 프로젝트 태그와 일치하는 AWS 리소스에 대한 액세스 권한을 부여하는 단일 IAM 정책을 사용할 수 있습니다. 개발자 팀이 프로젝트에 리소스를 추가하면 속성에 따라 권한이 자동으로 적용됩니다. 따라서 새 리소스가 생길 때마다 정책을 업데이트하지 않아도 됩니다.

조직 서비스 통제 정책(SCP)을 사용하여 조직 또는 조직 단위(OU)의 계정 멤버에 대한 최대 권한을 정의합니다. SCP는 자격 증명 기반 정책 또는 리소스 기반 정책이 계정 내의 엔터티(사용자 또는 역할)에 부여하는 권한을 제한할 뿐 권한을 부여하지는 않습니다.

세션 정책은 역할 또는 페더레이션 사용자를 수임합니다. AWS CLI 또는 AWS API를 사용할 때 세션 정책을 전달합니다. 세션 정책은 역할 또는 사용자의 자격 증명 기반 정책이 세션에 부여하는 권한을 제한합니다. 이러한 정책은 생성된 세션에 대한 권한을 제한할 뿐 권한을 부여하지는 않습니다. 자세한 내용은 세션 정책을 참조하세요.