InfoGrab DocsInfoGrab Docs

액세스 모니터링 규칙 참조

요약

액세스 모니터링 규칙을 통해 관리자는 액세스 요청을 모니터링하고 특정 조건에 따라 알림 라우팅 규칙이나 자동 검토 규칙을 적용할 수 있습니다. 액세스 모니터링 규칙은 알림 라우팅 규칙과 자동 검토 규칙을 모두 구성하거나 하나만 포함할 수 있습니다.

액세스 모니터링 규칙을 통해 관리자는 액세스 요청을 모니터링하고 특정 조건에 따라 알림 라우팅 규칙이나 자동 검토 규칙을 적용할 수 있습니다.

액세스 모니터링 규칙은 알림 라우팅 규칙과 자동 검토 규칙을 모두 구성하거나 하나만 포함할 수 있습니다.

YAML 사양#

액세스 모니터링 규칙은 다음과 유사한 구조를 가진 동적 Teleport 리소스입니다:

kind: access_monitoring_rule
version: v1
metadata:
  name: example_rule
spec:
  # subjects는 모니터링할 주제의 종류를 지정합니다.
  # 가능한 값: "access_request"
  subjects:
  - access_request

  # condition은 액세스 모니터링 규칙을 적용하기 위해 충족해야 하는 조건을 지정합니다.
  # 조건은 부울 값으로 평가되어야 하는 술어 표현식을 수락합니다.
  #
  # 이 조건은 다음 경우에 충족됩니다:
  # - `access` 역할이 요청됨
  # - 요청된 모든 리소스에 레이블 `env: dev`가 있음
  # - 요청한 사용자에게 `team: dev` 사용자 특성이 있음.
  condition: |-
    contains_all(set("access"), access_request.spec.roles) &&
    access_request.spec.resource_labels_intersection["env"].contains("dev") &&
    contains_any(user.traits["team"], set("dev"))

  # 선택 사항: desired_state는 규칙이 적용된 후 액세스 요청의 원하는 조정 상태를 지정합니다.
  # 자동 검토를 활성화하려면 이 필드를 "reviewed"로 설정해야 합니다.
  # 가능한 값: "reviewed".
  desired_state: reviewed

  # 선택 사항: automatic_review는 자동 검토 규칙을 구성합니다.
  automatic_review:
    # integration은 요청하는 사용자가 규칙 조건을 충족하는지 결정하는 데 도움이 되는
    # 외부 통합 소스의 이름을 지정합니다.
    # 외부 통합 없이 지정하려면 "builtin"을 사용합니다.
    # 가능한 값: "builtin"
    integration: builtin

    # decision은 액세스 요청을 자동으로 승인 또는 거부할지 결정합니다.
    # 가능한 값: "APPROVED" 또는 "DENIED"
    decision: APPROVED

  # 선택 사항: notification은 알림 라우팅 규칙을 구성합니다.
  notification:
    # name은 알림을 라우팅해야 하는 외부 통합을 지정합니다.
    # 가능한 값: "email", "discord", "slack", "pagerduty", "jira",
    # "mattermost", "msteams", "opsgenie", "servicenow", "datadog"
    name: email

    # recipients는 액세스 모니터링 규칙이 적용될 때 알림을 받을 수신자 목록을 지정합니다.
    recipients:
    - example@goteleport.com

  # 선택 사항: schedules는 이 규칙에 적용할 명명된 일정의 맵을 정의합니다.
  schedules:
    demo-schedule:
      time:
        # timezone은 일정의 시간대를 지정합니다. 이 필드는 선택 사항이며
        # 기본값은 "UTC"입니다. 허용되는 값은 IANA 시간대 데이터베이스에 정의된
        # 시간대 식별자를 따릅니다. 예: "America/Los_Angeles", "Europe/Lisbon",
        # "Asia/Singapore".
        #
        # 지원되는 값 목록은 https://data.iana.org/time-zones/tzdb/zone1970.tab를 참조하세요.
        timezone: America/Los_Angeles

        # shifts는 일정을 구성하는 시간 블록 목록입니다.
        # 각 교대는 요일, 시작 시간, 종료 시간을 지정합니다.
        # 시작 및 종료 시간은 포함됩니다.
        shifts:
        - weekday: Friday
          start: 17:00
          end: 23:59
        - weekday: Saturday
          start: 00:00
          end: 23:59

알림 라우팅 규칙#

관리자는 액세스 모니터링 규칙을 사용하여 외부 알림 시스템으로 알림을 라우팅할 수 있습니다.

호스팅된 통합#

사용 가능한 호스팅된 통합의 이름을 나열하려면 다음 명령을 사용할 수 있습니다:

$ tctl get plugins
Name          Status
------------- -----------
datadog       RUNNING
email         RUNNING
slack-default RUNNING

통합이 나열되지 않으면 먼저 플러그인을 등록하세요. 플러그인 등록 방법에 대한 단계별 가이드는 액세스 요청 플러그인을 참조하세요.

수신자#

recipients 필드의 허용 값은 선택한 알림 시스템에 따라 다릅니다.

알림 시스템 수신자
Datadog 이메일: user@example.com
팀: example-datadog-team
Discord 채널 ID: ...1234
Email 이메일: user@example.com
Jira -
Mattermost 이메일: user@example.com
팀/채널: example-team/example-channel
Microsoft Teams 이메일: user@example.com
채널: https://teams.microsoft.com/l/channel/...
Opsgenie 일정: example-schedule
PagerDuty 서비스: example-service
ServiceNow 일정 ID: example-schedule-id
Slack 이메일: user@example.com
채널: example-channel

알림 라우팅 규칙 예시#

다음 규칙이 구성된 경우 access 역할에 대한 액세스 요청이 생성될 때마다 #teleport-access Slack 채널로 알림이 전송됩니다.

kind: access_monitoring_rule
version: v1
metadata:
  name: slack-notifications
spec:
  subjects:
  - access_request
  condition: contains_any(access_request.spec.roles, set("access"))
  notification:
    name: slack-default
    recipients:
    - teleport-access

자동 검토 규칙#

관리자는 조건이 충족될 때 액세스 요청을 자동으로 검토하도록 액세스 모니터링 규칙을 구성할 수 있습니다.

자동 검토를 활성화하려면 spec.desired_statereviewed로 설정하고 automatic_review를 정의합니다.

검토 결정#

automatic_review.decision 옵션은 APPROVED 또는 DENIED일 수 있습니다.

자동 검토는 일반 검토처럼 작동합니다. 요청 상태를 직접 변경하지 않으며 필요한 검토 임계값을 준수합니다.

여러 자동 검토 규칙이 액세스 요청과 일치하면 DENIED 규칙이 우선합니다.

자동 검토 규칙 예시#

다음 규칙이 구성된 경우 team: sre 특성을 가진 사용자가 access 역할에 대한 액세스 요청을 생성할 때마다 자동으로 승인됩니다.

kind: access_monitoring_rule
version: v1
metadata:
  name: sre-automatic-approval
spec:
  subjects:
  - access_request
  condition: |-
    contains_all(set("access"), access_request.spec.roles) &&
    contains_any(user.traits["team"], set("sre"))
  desired_state: reviewed
  automatic_review:
    integration: builtin
    decision: APPROVED

리소스에 대한 자동 검토 규칙 예시#

다음 규칙이 구성된 경우 access 역할과 env: dev 레이블이 있는 리소스에 대한 액세스 요청은 자동으로 승인됩니다.

kind: access_monitoring_rule
version: v1
metadata:
  name: env-dev-approval
spec:
  subjects:
  - access_request
  condition: |-
    contains_all(set("access"), access_request.spec.roles) &&
    access_request.spec.resource_labels_intersection["env"].contains("dev")
  desired_state: reviewed
  automatic_review:
    integration: builtin
    decision: APPROVED

예약된 자동 검토 규칙 예시#

다음 규칙이 구성된 경우 access 역할과 env: dev 레이블이 있는 리소스에 대한 액세스 요청은 일요일(UTC 시간)에 자동으로 승인됩니다.

kind: access_monitoring_rule
version: v1
metadata:
  name: env-dev-approval
spec:
  subjects:
  - access_request
  condition: |-
    contains_all(set("access"), access_request.spec.roles) &&
    access_request.spec.resource_labels_intersection["env"].contains("dev")
  desired_state: reviewed
  automatic_review:
    integration: builtin
    decision: APPROVED
  schedules:
    dev-on-call:
      time:
        timezone: UTC
        shifts:
        - weekday: Sunday
          start: 00:00
          end: 23:59

와일드카드 또는 정규 표현식이 있는 자동 검토 규칙 예시#

다음 규칙이 구성된 경우 "on-call" 구문이 포함된 요청 이유로 access 역할에 대한 액세스 요청은 자동으로 승인됩니다.

kind: access_monitoring_rule
version: v1
metadata:
  name: on-call-automatic-approval
spec:
  subjects:
  - access_request
  condition: |-
    regexp.match(set(access_request.spec.request_reason), "*on-call*")
  desired_state: reviewed
  automatic_review:
    integration: builtin
    decision: APPROVED

조건#

condition 필드는 부울 값으로 평가되고 규칙이 적용되는 액세스 요청을 결정하는 술어 표현식입니다.

조건 술어 표현식에서 허용되는 필드:

필드 설명
access_request.spec.roles 요청된 역할 집합.
access_request.spec.suggested_reviewers 요청에 지정된 검토자 집합.
access_request.spec.system_annotations 요청의 시스템 어노테이션 맵.
access_request.spec.user 요청하는 사용자.
access_request.spec.request_reason 요청 이유.
access_request.spec.creation_time 요청 생성 시간.
access_request.spec.expiry 요청의 만료 시간.
access_request.spec.resource_labels_intersection 요청된 모든 리소스 레이블의 교집합을 포함하는 맵.
access_request.spec.resource_labels_union 요청된 모든 리소스 레이블의 합집합을 포함하는 맵.
user.traits 요청하는 사용자의 특성 맵.

예시:

# 요청에 하나 이상의 역할이 포함된 경우 적용됩니다.
condition: !is_empty(access_request.spec.roles)

# "example_user"가 생성한 경우 적용됩니다.
condition: access_request.spec.user == "example_user"

# "example_role" 역할이 요청된 경우 적용됩니다.
condition: access_request.spec.roles.contains("example_role")

# 요청된 모든 역할이 "role_1" 또는 "role_2"인 경우 적용됩니다.
condition: set("role_1", "role_2").contains_all(access_request.spec.roles)

# 사용자에게 특성 "team: dev" 또는 "team: stage"가 있는 경우 적용됩니다.
condition: contains_any(user.traits["team"], set("dev", "stage"))

# 요청된 모든 리소스에 `env: dev` 레이블이 있는 경우 적용됩니다.
condition: access_request.spec.resource_labels_intersection["env"].contains("dev")

# 요청된 리소스 중 하나에 `env: prod` 레이블이 있는 경우 적용됩니다.
condition: access_request.spec.resource_labels_union["env"].contains("prod")

# 요청 이유에 "on-call" 구문이 포함된 경우 적용됩니다.
condition: regexp.match(set(access_request.spec.request_reason), "*on-call*")

자세한 내용은 술어 언어를 참조하세요.

SSO 사용자 및 IdP 속성#

액세스 모니터링 규칙은 IdP에서 제공하는 속성을 사용하는 SSO 사용자와 함께 사용할 수 있습니다.

예를 들어 다음 GitHub SSO 구성이 사용되면 example-team 팀의 GitHub 사용자는 github_teams: example-team 특성을 가진 Teleport 사용자로 매핑됩니다.

# github.yaml
kind: github
version: v3
metadata:
  name: github
spec:
  teams_to_roles:
  - organization: example-org
    roles:
    - demo-access-request
    team: example-team
...

이제 github_teams 특성을 기반으로 자동 검토를 적용하는 액세스 모니터링 규칙을 생성할 수 있습니다:

kind: access_monitoring_rule
version: v1
metadata:
  name: dev-automatic-approval
spec:
  subjects:
  - access_request
  condition: |-
    contains_all(set("access"), access_request.spec.roles) &&
    contains_any(user.traits["github_teams"], set("example-team"))
  desired_state: reviewed
  automatic_review:
    integration: builtin
    decision: APPROVED

특성 매핑은 SSO 공급자에 따라 다릅니다. 구성 지침은 단일 로그인 구성을 참조하세요.

인프라스트럭처 코드를 사용한 액세스 모니터링 규칙#

액세스 모니터링 규칙은 Terraform을 사용하여 인프라스트럭처 코드로 관리할 수 있습니다. 다음은 리소스 정의 예시입니다:

resource "teleport_access_monitoring_rule" "example_rule" {
  version = "v1"
  metadata = {
    name = "example_rule"
  }
  spec = {
    subjects      = ["access_request"]
    condition     = "access_request.spec.roles.contains(\"example-role\")"
    desired_state = "reviewed"
    notification = {
      name       = "slack"
      recipients = ["example-channel"]
    }
    automatic_review = {
      integration = "builtin"
      decision    = "APPROVED"
    }
  }
}

자세한 내용은 Terraform 공급자를 참조하세요.

액세스 모니터링 규칙 참조

Teleport v18.9
원문 보기
요약

액세스 모니터링 규칙을 통해 관리자는 액세스 요청을 모니터링하고 특정 조건에 따라 알림 라우팅 규칙이나 자동 검토 규칙을 적용할 수 있습니다. 액세스 모니터링 규칙은 알림 라우팅 규칙과 자동 검토 규칙을 모두 구성하거나 하나만 포함할 수 있습니다.

액세스 모니터링 규칙을 통해 관리자는 액세스 요청을 모니터링하고 특정 조건에 따라 알림 라우팅 규칙이나 자동 검토 규칙을 적용할 수 있습니다.

액세스 모니터링 규칙은 알림 라우팅 규칙과 자동 검토 규칙을 모두 구성하거나 하나만 포함할 수 있습니다.

YAML 사양#

액세스 모니터링 규칙은 다음과 유사한 구조를 가진 동적 Teleport 리소스입니다:

kind: access_monitoring_rule
version: v1
metadata:
  name: example_rule
spec:
  # subjects는 모니터링할 주제의 종류를 지정합니다.
  # 가능한 값: "access_request"
  subjects:
  - access_request

  # condition은 액세스 모니터링 규칙을 적용하기 위해 충족해야 하는 조건을 지정합니다.
  # 조건은 부울 값으로 평가되어야 하는 술어 표현식을 수락합니다.
  #
  # 이 조건은 다음 경우에 충족됩니다:
  # - `access` 역할이 요청됨
  # - 요청된 모든 리소스에 레이블 `env: dev`가 있음
  # - 요청한 사용자에게 `team: dev` 사용자 특성이 있음.
  condition: |-
    contains_all(set("access"), access_request.spec.roles) &&
    access_request.spec.resource_labels_intersection["env"].contains("dev") &&
    contains_any(user.traits["team"], set("dev"))

  # 선택 사항: desired_state는 규칙이 적용된 후 액세스 요청의 원하는 조정 상태를 지정합니다.
  # 자동 검토를 활성화하려면 이 필드를 "reviewed"로 설정해야 합니다.
  # 가능한 값: "reviewed".
  desired_state: reviewed

  # 선택 사항: automatic_review는 자동 검토 규칙을 구성합니다.
  automatic_review:
    # integration은 요청하는 사용자가 규칙 조건을 충족하는지 결정하는 데 도움이 되는
    # 외부 통합 소스의 이름을 지정합니다.
    # 외부 통합 없이 지정하려면 "builtin"을 사용합니다.
    # 가능한 값: "builtin"
    integration: builtin

    # decision은 액세스 요청을 자동으로 승인 또는 거부할지 결정합니다.
    # 가능한 값: "APPROVED" 또는 "DENIED"
    decision: APPROVED

  # 선택 사항: notification은 알림 라우팅 규칙을 구성합니다.
  notification:
    # name은 알림을 라우팅해야 하는 외부 통합을 지정합니다.
    # 가능한 값: "email", "discord", "slack", "pagerduty", "jira",
    # "mattermost", "msteams", "opsgenie", "servicenow", "datadog"
    name: email

    # recipients는 액세스 모니터링 규칙이 적용될 때 알림을 받을 수신자 목록을 지정합니다.
    recipients:
    - example@goteleport.com

  # 선택 사항: schedules는 이 규칙에 적용할 명명된 일정의 맵을 정의합니다.
  schedules:
    demo-schedule:
      time:
        # timezone은 일정의 시간대를 지정합니다. 이 필드는 선택 사항이며
        # 기본값은 "UTC"입니다. 허용되는 값은 IANA 시간대 데이터베이스에 정의된
        # 시간대 식별자를 따릅니다. 예: "America/Los_Angeles", "Europe/Lisbon",
        # "Asia/Singapore".
        #
        # 지원되는 값 목록은 https://data.iana.org/time-zones/tzdb/zone1970.tab를 참조하세요.
        timezone: America/Los_Angeles

        # shifts는 일정을 구성하는 시간 블록 목록입니다.
        # 각 교대는 요일, 시작 시간, 종료 시간을 지정합니다.
        # 시작 및 종료 시간은 포함됩니다.
        shifts:
        - weekday: Friday
          start: 17:00
          end: 23:59
        - weekday: Saturday
          start: 00:00
          end: 23:59

알림 라우팅 규칙#

관리자는 액세스 모니터링 규칙을 사용하여 외부 알림 시스템으로 알림을 라우팅할 수 있습니다.

호스팅된 통합#

사용 가능한 호스팅된 통합의 이름을 나열하려면 다음 명령을 사용할 수 있습니다:

$ tctl get plugins
Name          Status
------------- -----------
datadog       RUNNING
email         RUNNING
slack-default RUNNING

통합이 나열되지 않으면 먼저 플러그인을 등록하세요. 플러그인 등록 방법에 대한 단계별 가이드는 액세스 요청 플러그인을 참조하세요.

수신자#

recipients 필드의 허용 값은 선택한 알림 시스템에 따라 다릅니다.

알림 시스템 수신자
Datadog 이메일: user@example.com
팀: example-datadog-team
Discord 채널 ID: ...1234
Email 이메일: user@example.com
Jira -
Mattermost 이메일: user@example.com
팀/채널: example-team/example-channel
Microsoft Teams 이메일: user@example.com
채널: https://teams.microsoft.com/l/channel/...
Opsgenie 일정: example-schedule
PagerDuty 서비스: example-service
ServiceNow 일정 ID: example-schedule-id
Slack 이메일: user@example.com
채널: example-channel

알림 라우팅 규칙 예시#

다음 규칙이 구성된 경우 access 역할에 대한 액세스 요청이 생성될 때마다 #teleport-access Slack 채널로 알림이 전송됩니다.

kind: access_monitoring_rule
version: v1
metadata:
  name: slack-notifications
spec:
  subjects:
  - access_request
  condition: contains_any(access_request.spec.roles, set("access"))
  notification:
    name: slack-default
    recipients:
    - teleport-access

자동 검토 규칙#

관리자는 조건이 충족될 때 액세스 요청을 자동으로 검토하도록 액세스 모니터링 규칙을 구성할 수 있습니다.

자동 검토를 활성화하려면 spec.desired_statereviewed로 설정하고 automatic_review를 정의합니다.

검토 결정#

automatic_review.decision 옵션은 APPROVED 또는 DENIED일 수 있습니다.

자동 검토는 일반 검토처럼 작동합니다. 요청 상태를 직접 변경하지 않으며 필요한 검토 임계값을 준수합니다.

여러 자동 검토 규칙이 액세스 요청과 일치하면 DENIED 규칙이 우선합니다.

자동 검토 규칙 예시#

다음 규칙이 구성된 경우 team: sre 특성을 가진 사용자가 access 역할에 대한 액세스 요청을 생성할 때마다 자동으로 승인됩니다.

kind: access_monitoring_rule
version: v1
metadata:
  name: sre-automatic-approval
spec:
  subjects:
  - access_request
  condition: |-
    contains_all(set("access"), access_request.spec.roles) &&
    contains_any(user.traits["team"], set("sre"))
  desired_state: reviewed
  automatic_review:
    integration: builtin
    decision: APPROVED

리소스에 대한 자동 검토 규칙 예시#

다음 규칙이 구성된 경우 access 역할과 env: dev 레이블이 있는 리소스에 대한 액세스 요청은 자동으로 승인됩니다.

kind: access_monitoring_rule
version: v1
metadata:
  name: env-dev-approval
spec:
  subjects:
  - access_request
  condition: |-
    contains_all(set("access"), access_request.spec.roles) &&
    access_request.spec.resource_labels_intersection["env"].contains("dev")
  desired_state: reviewed
  automatic_review:
    integration: builtin
    decision: APPROVED

예약된 자동 검토 규칙 예시#

다음 규칙이 구성된 경우 access 역할과 env: dev 레이블이 있는 리소스에 대한 액세스 요청은 일요일(UTC 시간)에 자동으로 승인됩니다.

kind: access_monitoring_rule
version: v1
metadata:
  name: env-dev-approval
spec:
  subjects:
  - access_request
  condition: |-
    contains_all(set("access"), access_request.spec.roles) &&
    access_request.spec.resource_labels_intersection["env"].contains("dev")
  desired_state: reviewed
  automatic_review:
    integration: builtin
    decision: APPROVED
  schedules:
    dev-on-call:
      time:
        timezone: UTC
        shifts:
        - weekday: Sunday
          start: 00:00
          end: 23:59

와일드카드 또는 정규 표현식이 있는 자동 검토 규칙 예시#

다음 규칙이 구성된 경우 "on-call" 구문이 포함된 요청 이유로 access 역할에 대한 액세스 요청은 자동으로 승인됩니다.

kind: access_monitoring_rule
version: v1
metadata:
  name: on-call-automatic-approval
spec:
  subjects:
  - access_request
  condition: |-
    regexp.match(set(access_request.spec.request_reason), "*on-call*")
  desired_state: reviewed
  automatic_review:
    integration: builtin
    decision: APPROVED

조건#

condition 필드는 부울 값으로 평가되고 규칙이 적용되는 액세스 요청을 결정하는 술어 표현식입니다.

조건 술어 표현식에서 허용되는 필드:

필드 설명
access_request.spec.roles 요청된 역할 집합.
access_request.spec.suggested_reviewers 요청에 지정된 검토자 집합.
access_request.spec.system_annotations 요청의 시스템 어노테이션 맵.
access_request.spec.user 요청하는 사용자.
access_request.spec.request_reason 요청 이유.
access_request.spec.creation_time 요청 생성 시간.
access_request.spec.expiry 요청의 만료 시간.
access_request.spec.resource_labels_intersection 요청된 모든 리소스 레이블의 교집합을 포함하는 맵.
access_request.spec.resource_labels_union 요청된 모든 리소스 레이블의 합집합을 포함하는 맵.
user.traits 요청하는 사용자의 특성 맵.

예시:

# 요청에 하나 이상의 역할이 포함된 경우 적용됩니다.
condition: !is_empty(access_request.spec.roles)

# "example_user"가 생성한 경우 적용됩니다.
condition: access_request.spec.user == "example_user"

# "example_role" 역할이 요청된 경우 적용됩니다.
condition: access_request.spec.roles.contains("example_role")

# 요청된 모든 역할이 "role_1" 또는 "role_2"인 경우 적용됩니다.
condition: set("role_1", "role_2").contains_all(access_request.spec.roles)

# 사용자에게 특성 "team: dev" 또는 "team: stage"가 있는 경우 적용됩니다.
condition: contains_any(user.traits["team"], set("dev", "stage"))

# 요청된 모든 리소스에 `env: dev` 레이블이 있는 경우 적용됩니다.
condition: access_request.spec.resource_labels_intersection["env"].contains("dev")

# 요청된 리소스 중 하나에 `env: prod` 레이블이 있는 경우 적용됩니다.
condition: access_request.spec.resource_labels_union["env"].contains("prod")

# 요청 이유에 "on-call" 구문이 포함된 경우 적용됩니다.
condition: regexp.match(set(access_request.spec.request_reason), "*on-call*")

자세한 내용은 술어 언어를 참조하세요.

SSO 사용자 및 IdP 속성#

액세스 모니터링 규칙은 IdP에서 제공하는 속성을 사용하는 SSO 사용자와 함께 사용할 수 있습니다.

예를 들어 다음 GitHub SSO 구성이 사용되면 example-team 팀의 GitHub 사용자는 github_teams: example-team 특성을 가진 Teleport 사용자로 매핑됩니다.

# github.yaml
kind: github
version: v3
metadata:
  name: github
spec:
  teams_to_roles:
  - organization: example-org
    roles:
    - demo-access-request
    team: example-team
...

이제 github_teams 특성을 기반으로 자동 검토를 적용하는 액세스 모니터링 규칙을 생성할 수 있습니다:

kind: access_monitoring_rule
version: v1
metadata:
  name: dev-automatic-approval
spec:
  subjects:
  - access_request
  condition: |-
    contains_all(set("access"), access_request.spec.roles) &&
    contains_any(user.traits["github_teams"], set("example-team"))
  desired_state: reviewed
  automatic_review:
    integration: builtin
    decision: APPROVED

특성 매핑은 SSO 공급자에 따라 다릅니다. 구성 지침은 단일 로그인 구성을 참조하세요.

인프라스트럭처 코드를 사용한 액세스 모니터링 규칙#

액세스 모니터링 규칙은 Terraform을 사용하여 인프라스트럭처 코드로 관리할 수 있습니다. 다음은 리소스 정의 예시입니다:

resource "teleport_access_monitoring_rule" "example_rule" {
  version = "v1"
  metadata = {
    name = "example_rule"
  }
  spec = {
    subjects      = ["access_request"]
    condition     = "access_request.spec.roles.contains(\"example-role\")"
    desired_state = "reviewed"
    notification = {
      name       = "slack"
      recipients = ["example-channel"]
    }
    automatic_review = {
      integration = "builtin"
      decision    = "APPROVED"
    }
  }
}

자세한 내용은 Terraform 공급자를 참조하세요.