Access Context Manager 날짜 및 시간 제한 기능은 날짜 및 시간을 기준으로 액세스 제어를 설정할 수 있는 기능을 기업에 제공합니다.
제로 트러스트 액세스를 평가할 때는 리소스에 대한 사용자 액세스를 특정 일자 및 시간으로 제한해야 하는 경우가 많습니다. 예를 들어 교대 근무자가 해당 교대 근무 시간 중에만 회사 리소스에 액세스하도록 허용하거나 하루 중 특정 시간 사이에 사용자에게 일시적인 액세스 권한을 부여할 수 있습니다.
시간 및 일 액세스 수준 조건을 적용하려면 다음 테이블에 나열된 함수를 사용합니다. 함수 형식은 function(timezone)
입니다.
timezone
을 UTC, UTC 기준의 명시적 시간 및 분을 나타내는 고정 시간대, 긴 timezone
이름(예: Europe/Paris
, CET
, US/Central
)으로 지정할 수 있습니다. 전체 목록은 Common Express Language 정의의 시간대 섹션을 참조하세요.
'시간대'를 지정하지 않으면 표현식은 기본적으로 UTC로 설정됩니다.
함수 | 설명 | 예시 |
---|---|---|
getFullYear |
2020과 같이 현재 연도를 나타내는 숫자를 검색합니다. | 2020년인가요? request.time.getFullYear("America/Los_Angeles") == 2020
|
getMonth |
해당 연도의 월을 검색합니다. 월 값의 범위는 0~11까지입니다. 0은 1월이고 11은 12월입니다. | 1월인가요? request.time.getMonth("America/Los_Angeles") == 1
|
getDate |
해당 월의 일자를 검색합니다. 일자 값의 범위는 1~31까지입니다. 1은 월의 1일이고 31은 월의 31일입니다. |
월의 첫 번째 일인가요? request.time.getDate("America/Los_Angeles") == 1
|
getDayOfMonth |
해당 월의 일을 검색합니다. 일 값의 범위는 0~30까지입니다. 0은 월의 1일이고 30은 월의 31일입니다. | 월의 첫 번째 일인가요? request.time.getDayOfMonth("America/Los_Angeles") == 0 |
getDayOfWeek |
해당 주의 요일을 검색합니다. 요일 값의 범위는 0~6까지입니다. 0은 일요일이고 6은 토요일입니다. | 월요일인가요? request.time.getDayOfWeek("America/Los_Angeles") == 1 |
getDayOfYear |
해당 연도의 일을 검색합니다. 일 값의 범위는 0~365까지입니다. 0은 해당 연도의 첫 번째 일이고 365는 해당 연도의 366번째 일입니다. |
해당 연도의 첫 번째 일인가요? request.time.getDayOfYear("America/Los_Angeles") == 0
|
getHours |
해당 일자의 시간을 검색합니다. 시간 값의 범위는 0~23까지입니다. 0은 자정이고 23은 오후 11시입니다. |
오후 7시인가요? request.time.getHours("America/Los_Angeles") == 19 |
getMinutes |
해당 시간의 분을 검색합니다. 분 값의 범위는 0~59까지입니다. 0은 해당 시간의 첫 번째 분이고 59는 마지막 분입니다. |
오후 7시 30분인가요? request.time.getHours("America/Los_Angeles") == 19 && request.time.getMinutes("America/Los_Angeles") == 30 |
date |
UTC 자정으로 정규화된 날짜를 나타내는 타임스탬프를 반환합니다. | UTC 기준 현재 시간입니다. request.time.date()
|
date(tz string) |
시간대 문자열 <tz>를 기준으로 자정으로 정규화된 날짜를 나타내는 타임스탬프를 반환합니다. | 태평양 표준시 기준 현재 시간입니다.
|
timeOfDay |
타임스탬프와 연결된 google.type.TimeOfDay 를 UTC로 반환합니다. |
UTC 기준 현재 시간입니다(예: '09:30:00'). request.time.timeOfDay() |
timeOfDay(tz string) |
시간대 영역 <tz>를 기준으로 타임스탬프와 연결된 google.type.TimeOfDay를 반환합니다. | 태평양 표준시 기준 현재 시간입니다(예: '09:30:00'). request.time.timeOfDay('America/Los_Angeles') |
between(start, stop) (타임스탬프용) |
타임스탬프가 '시작'(포함) 및 '중지'(제외) 사이에 있는 경우 타임스탬프는 '시작' 및 '중지'는 | 2020년 1월 10일 00:00(포함)에서 2020년 1월 11일 00:00(제외) 사이의 현재 타임스탬프가 PST 기준인가요? request.time.date('08:00')
.between('2020-10-01T00:00:00+08:00', '2020-10-01T00:00:00+08:00')
|
between(start, stop string) (TimeOfDay의 경우) |
type.TimeOfDay 또는 문자열일 수 있으며 type.TimeOfDay 로 변환됩니다.
|
현재 시간이 태평양 표준시 기준 오전 9시 30분(포함)부터 오후 05시 30분(제외)까지입니까? request.time.timeOfDay('America/Los_Angeles').between('09:30:00', '17:30:00')
|
다음 표에서는 시간 및 날짜 제한을 사용하는 방법에 대한 예시를 보여줍니다.
정책 예시 | 표현식 |
---|---|
교대 근무자가 7월 4일만 제외하고 월요일부터 금요일, 오전 9시부터 오후 5시까지 리소스에 액세스하도록 허용합니다. | 옵션 1: request.time.getDayOfWeek("America/Los_Angeles") >= 1 && request.time.getDayOfWeek("America/Los_Angeles") <= 5 && request.time.getHours("America/Los_Angeles") >= 9 && request.time.getHours("America/Los_Angeles") <= 17 && !(request.time.getMonth("America/Los_Angeles") == 6 && request.time.getDayOfMonth("America/Los_Angeles") == 3)
옵션 2:
|
2020년 3월 1일 오후 10시부터 자정까지 리소스에 대해 일시적으로 액세스를 허용합니다. | 옵션 1: 옵션 2:
|
다음은 특정 기간을 캡처하기 위해 일부 함수를 사용하는 표현식의 예시입니다.
영업시간 중에 범위 표시
날짜-시간 형식은 'HH:MM:SS'이며 RFC 3339 표준을 따릅니다.
request.time.timeOfDay('America/Los_Angeles').between('09:30:00', '17:30:00')
request.time.date('America/Los_Angeles')
.between('01-10-2020T00:00:00+08:00', '01-11-2020T00:00:00-07:00')
월의 첫 번째 주 특정 일 표시
(다른 시간대 형식 지원 참조)
request.time.getDayOfMonth('America/Los_Angeles') < 7
특정 기간(연간)으로 표시
예: 분기별 보고
request.time.date('Asia/Hong_Kong').between(
request.time.getFullYear('08:00') + '-12-15T00:00:00+08:00',
request.time.getFullYear('08:00')+1 + '-01-01T00:00:00+08:00')