Okta SSO의 소스 구성 - Amazon CloudWatch

Okta SSO의 소스 구성

Okta SSO와 통합

CloudWatch Pipeline은 Okta 시스템 로그 API를 사용하여 Okta SSO 테넌트에서 인증, API 활동, 탐지 결과, 엔터티 관리 이벤트를 검색합니다.

Okta SSO로 인증

로그를 읽으려면 파이프라인이 Okta SSO 테넌트로 인증해야 합니다. Okta SSO의 경우, 인증은 Okta API 서비스 애플리케이션을 통해 OAuth 2.0 클라이언트 자격 증명(JWT 어설션) 흐름을 사용하여 수행됩니다.

인증을 위한 프라이빗/퍼블릭 키 페어 생성

  • 관리자 계정을 사용하여 Okta Admin Console에 로그인합니다.

  • Applications → Applications로 이동합니다.

  • 기존 API 서비스 애플리케이션을 선택하거나 새로 생성합니다.

  • General → Client Credentials에서 퍼블릭 키를 업로드하거나 새 키를 생성합니다. 이 키 페어는 서명된 JWT 어설션을 사용하여 인증하는 데 사용됩니다.

  • 애플리케이션에 필요한 OAuth 범위가 할당되어 있는지 확인하며, 특히 okta.logs.read가 있는지 확인합니다.

  • Admin Roles → Edit assignments → Role(Read-only Administrator 선택)

  • 애플리케이션의 클라이언트 ID를 복사합니다.

  • client_id 및 client_secret(프라이빗 키)을 AWS Secrets Manager에 client_idclient_secret(private_key)(JWT 어설션에 서명하는 데 사용되는 RSA 프라이빗 키)로 저장합니다.

  • Okta 조직 URL을 식별한 후 파이프라인에서 구성합니다(예: https://yourdomain.okta.com).

구성이 완료되면 파이프라인은 Okta의 OAuth 2.0 클라이언트 자격 증명(JWT 어설션) 흐름을 사용하여 인증한 후 Okta 시스템 로그 API에서 감사 로그 이벤트 검색을 시작할 수 있습니다.

CloudWatch 파이프라인 구성

로그를 읽도록 파이프라인을 구성하려면 Okta SSO를 데이터 소스로 선택합니다. Okta 도메인 이름 같은 필수 정보를 입력합니다. 파이프라인을 생성한 후 활성화하면 Okta SSO의 감사 로그 데이터가 선택한 CloudWatch Logs 로그 그룹으로 전달되기 시작합니다.

지원되는 Open Cybersecurity Schema Framework 이벤트 클래스

이 통합은 OCSF 스키마 버전 v1.5.0을 지원하고 인증(3002), API 활동(6003), 탐지 결과(2004), 엔터티 관리(3004)에 매핑되는 Okta 이벤트를 지원합니다.

인증에는 다음 이벤트가 포함됩니다.

  • user.authentication.auth

  • user.authentication.auth_via_AD_agent

  • user.authentication.auth_via_IDP

  • user.authentication.auth_via_LDAP_agent

  • user.authentication.auth_via_inbound_SAML

  • user.authentication.auth_via_inbound_delauth

  • user.authentication.auth_via_iwa

  • user.authentication.auth_via_mfa

  • user.authentication.auth_via_radius

  • user.authentication.auth_via_richclient

  • user.authentication.auth_via_social

  • user.authentication.authenticate

  • user.authentication.sso

  • user.session.start

  • user.session.impersonation.grant

  • app.oauth2.signon

  • user.session.impersonation.initiate

  • user.authentication.universal_logout

  • user.session.clear

  • user.session.end

  • user.authentication.slo

  • user.authentication.universal_logout.scheduled

  • user.session.expire

  • user.session.impersonation.end

  • user.authentication.verify

  • policy.evaluate_sign_on

  • user.mfa.attempt_bypass

  • user.mfa.okta_verify

  • user.mfa.okta_verify.deny_push

  • user.mfa.okta_verify.deny_push_upgrade_need

  • user.mfa.factor.activate

  • user.mfa.factor.deactivate

  • user.mfa.factor.reset_all

  • user.mfa.factor.suspend

  • user.mfa.factor.unsuspend

  • user.mfa.factor.update

  • user.session.impersonation.extend

  • user.session.impersonation.revoke

  • user.session.access_admin_app

  • user.session.context.change

  • application.policy.sign_on.deny_access

  • user.authentication.auth_unconfigured_identifier

  • user.authentication.dsso_via_non_priority_source

  • app.oauth2.invalid_client_credentials

  • policy.auth_reevaluate.fail

API 활동에는 다음 이벤트가 포함됩니다.

  • oauth2.claim.created

  • oauth2.scope.created

  • security.trusted_origin.create

  • system.api_token.create

  • workflow.user.table.view

  • app.oauth2.as.key.rollover

  • app.saml.sensitive.attribute.update

  • system.api_token.update

  • oauth2.claim.updated

  • oauth2.scope.updated

  • security.events.provider.deactivate

  • system.api_token.revoke

  • oauth2.claim.deleted

  • oauth2.scope.deleted

탐지 결과에는 다음 이벤트가 포함됩니다.

  • security.attack.start

  • security.breached_credential.detected

  • security.request.blocked

  • security.threat.detected

  • security.zone.make_blacklist

  • system.rate_limit.violation

  • user.account.report_suspicious_activity_by_enduser

  • user.risk.change

  • user.risk.detect

  • zone.make_blacklist

  • security.attack.end

엔터티 관리에는 다음 이벤트가 포함됩니다.

  • iam.role.create

  • system.idp.lifecycle.create

  • application.lifecycle.create

  • group.lifecycle.create

  • user.lifecycle.create

  • policy.lifecycle.create

  • zone.create

  • oauth2.as.created

  • event_hook.created

  • inline_hook.created

  • pam.security_policy.create

  • iam.resourceset.create

  • pam.secret.create

  • analytics.reports.export.download

  • app.audit_report.download

  • system.idp.lifecycle.read_client_secret

  • app.oauth2.client.read_client_secret

  • pam.secret.reveal

  • pam.service_account.password.reveal

  • support.org.update

  • system.idp.lifecycle.update

  • application.lifecycle.update

  • policy.lifecycle.update

  • user.account.update_profile

  • user.account.update_password

  • user.account.reset_password

  • group.profile.update

  • zone.update

  • group.privilege.grant

  • group.privilege.revoke

  • iam.resourceset.bindings.add

  • user.account.privilege.grant

  • user.account.privilege.revoke

  • pki.cert.lifecycle.revoke

  • iam.resourceset.update

  • iam.role.update

  • pam.security_policy.update

  • oauth2.as.updated

  • event_hook.updated

  • inline_hook.updated

  • pam.secret.update

  • iam.resourceset.bindings.delete

  • iam.role.delete

  • pam.security_policy.delete

  • policy.lifecycle.delete

  • user.lifecycle.delete.initiated

  • application.lifecycle.delete

  • group.lifecycle.delete

  • zone.delete

  • oauth2.as.deleted

  • event_hook.deleted

  • inline_hook.deleted

  • iam.resourceset.delete

  • pam.secret.delete

  • device.enrollment.create

  • credentials.register

  • credentials.revoke

  • policy.lifecycle.activate

  • system.feature.enable

  • event_hook.activated

  • inline_hook.activated

  • system.feature.disable

  • application.lifecycle.activate

  • user.lifecycle.activate

  • zone.activate

  • oauth2.as.activated

  • system.log_stream.lifecycle.activate

  • policy.lifecycle.deactivate

  • security.authenticator.lifecycle.deactivate

  • application.lifecycle.deactivate

  • user.lifecycle.deactivate

  • zone.deactivate

  • event_hook.deactivated

  • inline_hook.deactivated

  • system.log_stream.lifecycle.deactivate

  • oauth2.as.deactivated

  • user.account.lock

  • user.account.lock.limit

  • user.lifecycle.suspend

  • device.lifecycle.suspend

  • user.account.unlock

  • user.lifecycle.unsuspend

  • device.lifecycle.unsuspend

  • user.lifecycle.reactivate