Restricción del acceso a los recursos en función del marco temporal

Puede utilizar variables basadas en el tiempo en las políticas para restringir el acceso otorgado en la política solo a determinados marcos temporales.

Esta función permite restringir las acciones en los recursos a tiempos concretos. Por ejemplo, puede crear una política que permita el acceso solo hasta una fecha especificada. Una política como esta sería útil si su compañía contrata contratistas y desea asegurarse de que el acceso no esté permitido después de la fecha de finalización del contrato. O bien, puede permitir el acceso a los recursos solo durante el horario laborable (por ejemplo, de lunes a viernes de 9:00 a. m. a 5:00 p. m.). Esta restricción puede reducir el riesgo de que un mal actor realice cambios cuando es más probable que pasen desapercibidos.

Las variables que puede utilizar para definir el ámbito de acceso en función del tiempo son:

  • 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

El uso de estas variables se describe con más detalle en las siguientes secciones.

Información para trabajar con variables basadas en el tiempo

Debe especificar la hora de las variables con el formato ISO 8601: AAAA-MM-DDThh:mm:ssZ. Algunos ejemplos de este formato son:

  • Fecha y hora con segundos: '2020-04-01T15:00:00Z'
  • Fecha y hora con minutos: '2020-04-01T05:00Z'
  • Solo fecha: '2020-04-01Z'
  • Solo hora: '05:00:00'

Aunque puede especificar un tiempo de inactividad en segundos, debe considerar una diferencia de tiempo de 5 minutos entre el registro de hora de la solicitud y la hora a la que el servicio IAM evalúa la solicitud. Esta diferencia de tiempo puede estar causada por varios factores, por lo que debe tener en cuenta esta posible discrepancia al planificar e implantar sus políticas basadas en el tiempo.

La hora que especifique se evalúa como Hora Universal Coordinada (UTC). Esto significa que debe calcular la hora UTC correcta para la zona horaria en la que se evalúa la política. Por ejemplo, para especificar la Hora Estándar del Pacífico de las 9:00 a. m. para el valor de una variable, debe introducir '17:00:00'. Si su configuración regional participa en el horario de verano, deberá actualizar todas las políticas que hagan referencia a una hora específica cuando el cambio de hora entre en vigor.

Detalles de cada variable basada en el tiempo

El uso de cada variable se describe en las siguientes secciones:

request.utc-timestamp

Descripción: hora a la que se recibe la solicitud de autorización. Puede escribir una política que permita el acceso solo antes o después de un registro de fecha y hora específico. El registro de hora debe seguir el formato ISO 8601: AAAA-MM-DDThh:mm:ssZ en la Hora Universal Coordinada (UTC).

Operadores soportados: before | after

Valores permitidos: registro de hora universal coordinada (UTC) en formato ISO 8601: AAAA-MM-DDThh:mm:ssZ

Valores de ejemplo:
  • '2020-04-01T00:00:00Z'
  • '2020-04-01T00:00Z'

Política de ejemplo: permite al grupo, Contractors, acceder a los recursos instance-family solo hasta una fecha determinada:

Allow group Contractors to manage instance-family in tenancy where request.utc-timestamp before '2022-01-01T00:00Z'

El acceso otorgado por la política al grupo Contractors caducará el 1 de enero de 2022, a las 12:00 a. m., UTC.

request.utc-timestamp.month-of-year

Descripción: mes del año en el que se recibe la solicitud de autorización. Puede escribir una política que permita el acceso solo durante meses específicos.

Operadores soportados: = | != | in

Valores permitidos: mes numérico (compatible con ISO 8601)

Valores de ejemplo: '1', '2', '3', ... '12'

Política de ejemplo: permite al grupo, SummerInterns, acceder a los recursos instance-family solo durante junio, julio y agosto:

Allow group SummerInterns to manage instance-family in tenancy where ANY {request.utc-timestamp.month-of-year in ('6', '7', '8')}

El acceso otorgado por la política al grupo SummerInterns solo es válido durante junio, julio y agosto de un año determinado.

request.utc-timestamp.day-of-month

Descripción: día del mes en el que se recibe la solicitud de autorización. Puede escribir una política que permita el acceso solo para días específicos del mes. Tenga en cuenta que el intervalo del día se calcula según el estándar UTC. Por ejemplo, supongamos que está en Miami, Florida, EE. UU. y que introduce '1' para indicar el primer día del mes. Para el mes de febrero, la política estará en vigor de las 12:00 a. m. a las 11:59 p. m. UTC el 1 de febrero, que en Miami sería de las 7:00 p. m. del 31 de enero a las 6:59 p. m. del 1 de febrero.

Operadores soportados: = | != | in

Valores permitidos: día numérico del mes

Valores de ejemplo: '1', '2', '3', ... '31'

Política de ejemplo: permite al grupo, ComplianceAuditors, leer all-resources solo el primer día del mes.

Allow group ComplianceAuditors to read all-resources in tenancy where request.utc-timestamp.day-of-month = '1'

El acceso otorgado por la política al grupo ComplianceAuditors solo es válido el primer día de cada mes (el día se define según la hora UTC).

request.utc-timestamp.day-of-week

Descripción: día de la semana en el que se recibe la solicitud de autorización. Puede escribir una política que permita el acceso solo para días específicos de la semana. Tenga en cuenta que el intervalo del día se calcula según el estándar UTC. Por ejemplo, supongamos que usted está en Miami, Florida, EE. UU., y que introduce 'monday'. La política entrará en vigor de las 12:00 a. m. a las 11:59 p. m. UTC el lunes, que en Miami sería de las 7:00 p. m. (EST) del domingo a las 6:59 p. m. del lunes.

Operadores soportados: = | != | in

Valores permitidos: nombre del día de la semana en inglés

Valores de ejemplo: 'Monday', 'Tuesday', 'Wednesday', etc

Política de ejemplo: permite al grupo, WorkWeek, gestionar instance-family solo durante la semana laboral de la compañía.

Allow group WorkWeek to manage instance-family where ANY {request.utc-timestamp.day-of-week in ('monday', 'tuesday', 'wednesday', 'thursday', 'friday')}

El acceso otorgado por la política al grupo WorkWeek solo es válido en los días especificados (el día se define según la hora UTC).

request.utc-timestamp.time-of-day

Descripción: hora del día a la que se recibe la solicitud de autorización. Puede escribir una política que permita el acceso solo durante un intervalo de tiempo específico durante el día. Tenga en cuenta que la hora del día se calcula según el estándar UTC. Si vive en una zona horaria que implanta el horario de verano, deberá actualizar la política cuando cambie la hora.

Operadores soportados: between

Valores permitidos: intervalo de tiempo UTC con el formato ISO 8601: hh:mm:ssZ

Valores de ejemplo: '01:00:00Z' Y '2:01:00Z'

Políticas de ejemplo: permite al grupo DayShift gestionar instancias y recursos relacionados entre las 9:00 a. m. y las 5:00 p. m. hora estándar del Pacífico (PST).

Tenga en cuenta que las horas se convierten a UTC:

Allow group DayShift to manage instance-family where request.utc-timestamp.time-of-day between '17:00:00Z' and '01:00:00Z'

Quiero permitir al grupo NightShift gestionar instancias y recursos relacionados entre las 5:00 p. m. y las 9:00 a. m. PST.

Allow group NightShift to manage instance-family where request.utc-timestamp.time-of-day between '01:00:00Z' and '17:00:00Z'

En ambos ejemplos, la hora actual se calcula y se prueba para comprobar si está dentro del rango proporcionado o no (ignorando el día en el que cae la hora).