Restringindo o Acesso a Recursos com Base no Período
Você pode usar variáveis baseadas em tempo em suas políticas para restringir o acesso concedido na política apenas a determinados períodos.
Esse recurso permite que você restrinja ações em recursos a momentos específicos. Por exemplo, você pode criar uma política que permita acesso apenas em uma data especificada. Uma política como essa será útil se sua empresa contratar contratantes e você quiser garantir que o acesso não seja permitido após a data final do contrato. Ou você pode permitir acesso a recursos somente durante o horário comercial (por exemplo, de segunda a sexta das 9h às 17h). Essa restrição pode diminuir o risco de um ator inválido fazer alterações quando tiver maior probabilidade de passar despercebido.
As variáveis que você pode usar para definir o escopo do acesso com base no período são:
request.utc-timestamp
request.utc-timestamp.month-of-year
request.utc-timestamp.day-of-month
request.utc-timestamp.day-of-week
request.utc-timestamp.time-of-day
O uso dessas variáveis é descrito com mais detalhes nas seções a seguir.
Informações para Trabalhar com Variáveis Baseadas no Tempo
Especifique o horário das variáveis usando o formato ISO 8601: AAAA-MM-DDThh:mm:ssZ. Os exemplos desse formato são:
- Data e hora com segundos: '2020-04-01T15:00:00Z'
- Data e hora com minutos: '2020-04-01T05:00Z'
- Apenas data: '2020-04-01Z'
- Somente hora: '05:00:00'
Embora você possa especificar um tempo abaixo de segundos, permita uma diferença de tempo de 5 minutos entre o timestamp da solicitação e o horário em que a solicitação é avaliada pelo serviço IAM. Essa diferença de tempo pode ser causada por vários fatores; portanto, esteja ciente dessa possível discrepância ao planejar e implementar suas políticas baseadas em tempo.
O tempo especificado é avaliado como Horário Universal Coordenado (UTC). Isso significa que você deve calcular o horário UTC correto para o fuso horário no qual a política é avaliada. Por exemplo, para especificar 9:00 AM no Horário Padrão do Pacífico para o valor de uma variável, você digitaria '17:00:00'. Se sua localidade adotar o horário de verão, atualize todas as políticas que mencionam uma hora específica quando a mudança de horário entrar em vigor.
Detalhes de Cada Variável Baseada em Tempo
O uso de cada variável é descrito nas seguintes seções:
Descrição: O horário em que a solicitação é recebida para autorização. Você pode criar uma política que permita o acesso apenas antes ou depois de um timestamp de data e hora específico. O timestamp deve seguir o formato ISO 8601: AAAA-MM-DDThh:mm:ssZ e estar no Horário Universal Coordenado (UTC).
Operadores suportados: antes de | após
Valores permitidos: Timestamp no Horário Universal Coordenado (UTC) no formato ISO 8601: AAAA-MM-DDThh:mm:ssZ
- '2020-04-01T00:00:00Z'
- '2020-04-01T00:00Z'
Exemplo de política: Permite que o grupo, Contratantes, acesse os recursos instance-family
somente até uma determinada data:
Allow group Contractors to manage instance-family in tenancy where request.utc-timestamp before '2022-01-01T00:00Z'
O acesso concedido pela política ao grupo Contratantes expirará em 1º de janeiro de 2022, ao meio dia no UTC.
Descrição: O mês do ano em que a solicitação é recebida para autorização. Você pode criar uma política que permita o acesso apenas durante meses específicos.
Operadores suportados: = | != | em
Valores permitidos: Mês numérico (correspondente a ISO 8601)
Exemplo de Valores: '1', '2', '3', ... '12'
Exemplo de política: Permitir que o grupo, SummerInterns, acesse os recursos instance-family
somente durante junho, julho e agosto:
Allow group SummerInterns to manage instance-family in tenancy where ANY {request.utc-timestamp.month-of-year in ('6', '7', '8')}
O acesso concedido pela política ao grupo SummerInterns só é válido durante junho, julho e agosto de um determinado ano.
Descrição: O dia do mês em que a solicitação é recebida para autorização. Você pode criar uma política que permita o acesso apenas para dias específicos do mês. Lembre-se de que o intervalo do dia é calculado com base no UTC. Por exemplo, suponha que você esteja em Miami, Flórida, EUA e digite '1' para indicar o primeiro dia do mês. Para o mês de fevereiro, a política entrará em vigor de 12:00 AM até 11:59 PM UTC em 1º de fevereiro, que em Miami é de 7:00 PM em 31 de janeiro até 6:59 PM em 1º de fevereiro.
Operadores suportados: = | != | em
Valores permitidos: Dia numérico do mês
Exemplo de Valores: '1', '2', '3', ... '31'
Exemplo de política: Permitir que o grupo, ComplianceAuditors, leia all-resources
somente no primeiro dia do mês.
Allow group ComplianceAuditors to read all-resources in tenancy where request.utc-timestamp.day-of-month = '1'
O acesso concedido pela política ao grupo ComplianceAuditors só é válido no primeiro dia de cada mês (o dia é definido pelo horário UTC).
Descrição: O dia da semana em que a solicitação é recebida para autorização. Você pode criar uma política que permita acesso apenas para dias específicos da semana. Observe que o intervalo do dia é calculado com base no UTC. Por exemplo, suponha que você esteja em Miami, Flórida, EUA e digite 'monday'. A política entrará em vigor de 12:00 AM a 11:59 PM UTC na segunda-feira, que em Miami é de 7:00 PM (EST) no domingo a 6:59 PM na segunda-feira.
Operadores suportados: = | != | em
Valores permitidos: Nome do dia da semana em inglês
Exemplo de Valores: 'Monday', 'Tuesday', 'Wednesday' etc.
Exemplo de política: Permitir que o grupo, WorkWeek, gerencieinstance-family
somente durante a semana de trabalho da empresa.
Allow group WorkWeek to manage instance-family where ANY {request.utc-timestamp.day-of-week in ('monday', 'tuesday', 'wednesday', 'thursday', 'friday')}
O acesso concedido pela política ao grupo WorkWeek só é válido nos dias especificados (o dia é definido pelo horário UTC).
Descrição: A hora do dia em que a solicitação é recebida para autorização. Você pode criar uma política que permita o acesso apenas para um período específico durante o dia. Observe que a hora do dia é calculada com base no UTC. Se você viver em um fuso horário que adote o horário de verão, atualize a política quando o horário mudar.
Operadores suportados: entre
Valores permitidos: Intervalo de tempo no UTC no formato ISO 8601: hh:mm:ssZ
Exemplo de Valores: '01:00:00Z' AND '2:01:00Z'
Exemplo de políticas: Permitir que o grupo DayShift gerencie instâncias e recursos relacionados entre as horas de 9:00 AM e 5:00 PM Horário Padrão do Pacífico (PST).
Observe que os horários são convertidos em UTC:
Allow group DayShift to manage instance-family where request.utc-timestamp.time-of-day between '17:00:00Z' and '01:00:00Z'
Quero permitir que o grupo NightShift gerencie instâncias e recursos relacionados entre 5:00 PM e 9:00 AM PST.
Allow group NightShift to manage instance-family where request.utc-timestamp.time-of-day between '01:00:00Z' and '17:00:00Z'
Nos dois exemplos, a hora atual é calculada e testada para ver se está dentro do intervalo fornecido ou não (ignorando em qual dia a hora cai).