Identity and Access Management(IAM)는 주 구성원이 액세스할 수 있는 리소스를 제어하는 데 도움이 되는 여러 가지 유형의 정책을 제공합니다. 이 페이지는 이러한 정책 유형을 사용하고 관리하는 방법의 차이점을 이해하는 데 도움이 됩니다.
IAM 정책 유형
IAM은 다음과 같은 유형의 정책을 제공합니다.
- 허용 정책
- 거부 정책
- 주 구성원 액세스 경계(PAB) 정책
다음 표에는 이러한 정책 유형 간 차이점이 요약되어 있습니다.
정책 | 정책 함수 | 정책을 관리하는 데 사용되는 API | 정책과 대상 간의 관계 | 정책을 대상에 연결하는 방법 | 정책 상위 리소스 |
---|---|---|---|---|---|
허용 정책 | 주 구성원에게 리소스에 대한 액세스 권한 부여 | 허용 정책을 관리하려는 리소스의 API |
일대일 관계 각 허용 정책은 리소스 하나에 연결됩니다. 리소스마다 허용 정책 하나만 있을 수 있습니다. |
정책을 만들 때 리소스 지정 | 허용 정책이 연결된 리소스와 동일 |
거부 정책 | 주 구성원이 특정 권한을 사용할 수 없는지 확인 | IAM v2 API |
일대다 관계 각 거부 정책은 리소스 하나에 연결됩니다. 리소스마다 거부 정책이 최대 500개까지 있을 수 있습니다. |
거부 정책을 만들 때 리소스 지정 | 거부 정책이 연결된 리소스와 동일 |
주 구성원 액세스 경계 정책 | 주 구성원이 액세스할 수 있는 리소스 제한 | IAM v3 API |
다대다 관계 각 주 구성원 액세스 경계 정책은 무제한의 주 구성원 집합에 연결할 수 있으며 주 구성원 집합마다 주 구성원 액세스 경계 정책이 최대 10개까지 바인딩될 수 있습니다. |
주 구성원 액세스 경계 정책을 주 구성원 집합에 연결하는 정책 바인딩 만들기 | 조직 |
다음 섹션에서는 각 정책 유형을 자세히 설명합니다.
주 구성원에게 액세스 권한을 부여하는 정책
주 구성원에게 리소스에 대한 액세스 권한을 부여하려면 IAM 허용 정책을 사용합니다.
허용 정책을 사용하면 Google Cloud의 리소스에 대한 액세스 권한을 부여할 수 있습니다. 허용 정책은 역할 바인딩과 메타데이터로 구성됩니다. 역할 바인딩은 리소스에 대한 특정 역할이 있어야 하는 주 구성원을 지정합니다.
허용 정책은 항상 단일 리소스에 연결됩니다. 허용 정책을 리소스에 연결하면 해당 리소스의 하위 요소에서 정책을 상속합니다.
허용 정책을 만들고 적용하려면 허용 정책을 수락하는 리소스를 식별한 후 해당 리소스의 setIamPolicy
메서드를 사용하여 허용 정책을 만듭니다. 허용 정책의 모든 주 구성원에게는 리소스와 리소스의 모든 하위 요소에 대한 지정된 역할이 부여됩니다. 각 리소스에 허용 정책 하나만 연결할 수 있습니다.
허용 정책에 대한 자세한 내용은 허용 정책 이해를 참조하세요.
주 구성원 액세스를 거부하는 정책
주 구성원의 리소스 액세스를 거부하려면 IAM 거부 정책을 사용합니다. IAM 거부 정책은 IAM v2 API에서 사용 가능합니다.
허용 정책과 마찬가지로 거부 정책은 항상 단일 리소스에 연결됩니다. 프로젝트, 폴더 또는 조직에 거부 정책을 연결할 수 있습니다. 이 프로젝트, 폴더 또는 조직은 리소스 계층 구조에서 정책 상위 요소 역할도 합니다. 리소스에 거부 정책을 연결하면 해당 리소스의 하위 요소에서 정책을 상속합니다.
거부 정책을 만들고 적용하려면 IAM v2 API를 사용합니다 거부 정책을 만들 때 거부 정책이 연결될 리소스를 지정합니다. 거부 정책의 모든 주 구성원은 지정된 권한을 사용하여 해당 리소스 및 해당 리소스의 하위 요소에 액세스할 수 없습니다. 각 리소스에 거부 정책을 최대 500개까지 연결할 수 있습니다.
거부 정책에 대한 자세한 내용은 거부 정책을 참조하세요.
주 구성원이 액세스할 수 있는 리소스를 제한하는 정책
주 구성원이 액세스할 수 있는 리소스를 제한하려면 주 구성원 액세스 경계 정책을 사용합니다. 주 구성원 액세스 경계 정책은 IAM v3 API에서 사용 가능합니다.
주 구성원 액세스 경계 정책을 만들고 적용하려면 주 구성원 액세스 경계 정책을 만든 후 정책 바인딩을 만들어 해당 정책을 주 구성원 집합에 연결합니다.
주 구성원 액세스 경계 정책은 항상 조직의 하위 요소입니다. 주 구성원 액세스 경계 정책의 정책 바인딩은 정책 바인딩에서 참조된 주 구성원 집합에 가장 가까운 프로젝트, 폴더 또는 조직의 하위 요소입니다.
각 정책 바인딩은 주 구성원 액세스 경계 정책 하나를 주 구성원 집합 하나에 바인딩합니다. 주 구성원 액세스 경계 정책을 임의 개수의 주 구성원 집합에 바인딩할 수 있습니다. 각 주 구성원 집합에 주 구성원 액세스 경계 정책을 최대 10개까지 바인딩할 수 있습니다. 주 구성원 액세스 경계 정책을 삭제하면 해당 정책과 관련된 모든 정책 바인딩도 삭제됩니다.
주 구성원 액세스 경계 정책에 대한 자세한 내용은 주 구성원 액세스 경계 정책을 참조하세요.
정책 평가
주 구성원이 리소스에 액세스하려고 하면 IAM은 모든 관련 허용 정책, 거부 정책, 주 구성원 액세스 경계 정책을 평가하여 주 구성원이 리소스에 액세스할 수 있는지 확인합니다. 이러한 정책 중 하나라도 주 구성원이 리소스에 액세스할 수 없다고 표시되면 IAM에서 액세스를 차단합니다.
실제로 IAM은 모든 정책 유형을 동시에 평가한 후 결과를 컴파일하여 주 구성원이 리소스에 액세스할 수 있는지 확인합니다. 하지만 이 정책 평가는 다음 단계로 진행된다고 생각하면 도움이 됩니다.
-
IAM은 모든 관련 주 구성원 액세스 경계 정책을 검사하여 주 구성원이 리소스에 액세스할 수 있는지 확인합니다. 주 구성원 액세스 경계 정책은 다음이 참인 경우에 관련됩니다.
- 정책이 주 구성원이 포함된 주 구성원 집합에 바인딩되었습니다.
- 주 구성원 액세스 경계 정책이 주 구성원이 사용하려는 권한을 차단합니다. 주 구성원 액세스 경계 정책에서 차단하는 권한은 주 구성원 액세스 경계 정책 버전에 따라 다릅니다. 주 구성원 액세스 경계 정책을 만들 때 정책 버전을 지정합니다. 자세한 내용은 주 구성원 액세스 경계 정책 버전을 참조하세요.
관련 주 구성원 액세스 경계 정책을 확인하면 IAM에서 다음 중 하나를 실행합니다.
- 관련 주 구성원 액세스 경계 정책에 주 구성원이 액세스하려고 하는 리소스가 포함되어 있지 않으면 IAM은 주 구성원이 리소스에 액세스하지 못하게 합니다.
- 관련 주 구성원 액세스 경계 정책에 주 구성원이 액세스하려고 하는 리소스가 포함된 경우 IAM은 다음 단계로 진행합니다.
- 관련 주 구성원 액세스 경계 정책이 없거나 IAM에서 관련 주 구성원 액세스 경계 정책을 평가할 수 없으면 IAM은 다음 단계로 진행합니다.
-
IAM은 관련 거부 정책을 모두 검사하여 주 구성원이 권한을 거부했는지 확인합니다. 관련 거부 정책은 리소스에 연결된 거부 정책이자 상속된 거부 정책입니다.
- 이러한 거부 정책 중 하나라도 주 구성원이 필요한 권한을 사용하지 못하게 하면 IAM은 해당 리소스에 대한 액세스를 차단합니다.
- 거부 정책에서 주 구성원이 필요한 권한을 사용하지 못하게 하지 않으면 IAM은 다음 단계로 진행합니다.
-
IAM은 관련 허용 정책을 모두 검사하여 주 구성원에게 필요한 권한이 있는지 확인합니다. 관련 허용 정책은 리소스에 연결된 허용 정책이자 상속된 허용 정책입니다.
- 주 구성원에게 필요한 권한이 없으면 IAM은 주 구성원이 해당 리소스에 액세스하지 못하게 합니다.
- 주 구성원에게 필요한 권한이 있으면 IAM은 이 리소스에 대한 액세스를 허용합니다.
다음 다이어그램에서는 이 정책 평가 흐름을 보여줍니다.
다음 단계
- 허용 정책 자세히 알아보기
- 거부 정책 자세히 알아보기
- 주 구성원 액세스 경계 정책 자세히 알아보기