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_id및client_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