안녕하세요,

베스핀글로벌 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