안녕하세요,
베스핀글로벌 GCP Support팀입니다.
이번 아티클에서는 주제로 "IAM Condition 설정 중 날짜/시간 기반 접근 제어 설정 방법"을 다루고자 합니다.
날짜/시간 기반 접근 제어 설정
IAM 권한 부여 시, conditional role binding을 이용한 특정 날짜 및 시간대에 대해 접근을 제어하는 방법을 설명하겠습니다.
Date/Time-based Condition은 Google Cloud 리소스에 대한 만료, 예약, 기간 제한 액세스를 설정하는 데 사용됩니다.
1) Date/Time-based Condition 종류
- Expiring Access : 사용자가 지정된 만료 날짜 및 시간이 지난 후에 더 이상 리소스에 액세스할 수 없도록 리소스에 대한 시간 제한 액세스 권한을 부여합니다.
- Schedule : 반복적으로 특정 요일 또는 시간에 리소스에 대한 액세스 권한을 부여합니다.
Day of Week : 특정 요일에 대한 접근을 제어합니다.
Hour of Day : 특정 시간대에 대한 접근을 제어합니다.
2) 날짜/시간 속성 조건 표현식
※ 날짜/시간 속성 조건 표현식을 사용하여 세부적인 접근 제어가 가능합니다.
- 지원되는 함수
date : 문자열을 타임스탬프로 변환합니다. 예시 : date("2020-02-01")
duration : 문자열을 기간으로 변환합니다. 예시 : duration("90s")
timestamp : 문자열을 타임스탬프로 변환합니다. 예시 : timestamp("1996-12-19T16:39:57-08:00")
※ date와 timestamp의 타임스탬프 기준은 모두 UTC 기준입니다.
- 지원되는 연산자
<, <=, >, >= : 요청 시간과 UTC 기준으로 특정 타임스탬프와의 비교를 설정합니다.
※ 일반적으로 역할 부여의 '시작 시간' 또는 '만료 시간' 조건을 설정하는 데 사용됩니다.
+ - : 타임스탬프에서 기간을 더하거나 뺍니다.
예시 : timestamp("2018-04-12T14:30:00.00Z") + duration("1800s")
3) 제한사항
Owner, Editor, Viewer를 비롯한 Basic Role을 부여할 때는 조건을 사용할 수 없습니다.
모든 사용자(allUsers) 또는 모든 인증된 사용자(allAuthenticatedUsers)에게 역할을 부여할 때는 조건을 사용할 수 없습니다.
4) 설정 가이드(Expiring Access 사용 예시)
- Console > IAM & Admin > 구성원 선택 후 수정 버튼 클릭, Storage Object Viewer 권한 선택 > +ADD IAM CONDITION 버튼 클릭
- Condition type에서 Time > Expiring Access type을 설정합니다. 그 후 제한하고자 하는 기한을 설정합니다.
- Condition 추가 후 IAM Role 우측에 해당 IAM Condition이 추가되어 있음을 확인 할 수 있습니다.
- IAM 권한 제한 테스트를 진행합니다.
테스트 시 지정한 시간(5시 05분)전에는 접근할 수 있었으나, 지정한 시간 후에는 접근 할 수 없습니다.
참조링크
[1] 날짜/시간 속성을 사용한 시간 기반 액세스 구성
https://cloud.google.com/iam/docs/configuring-temporary-access