Back to Checks
Amazon SageMaker has a monitoring schedule scheduled
sagemaker_models_monitor_enabled
Service: sagemakerSeverity: low
OfficialBuilt-inVerified
Categories:gen-ai
Resource Type:Other
SageMaker Models Monitor detects data drift, model quality issues, and bias drift in production.
Risk
Without an active monitoring schedule, data drift, model quality issues, and bias drift go undetected, so model quality degrades silently while downstream decisions such as fraud detection, access control, and pricing keep relying on a degrading model.
Run this check with Prowler
Run in Prowler CloudRun
prowler aws --checks sagemaker_models_monitor_enabledRecommendation
Enable Amazon SageMaker Model Monitor and keep at least one monitoring schedule in the Scheduled state so data quality, model quality, and bias drift are continuously evaluated against a baseline.
Check Code
from prowler.lib.check.models import Check, Check_Report_AWS
from prowler.providers.aws.services.sagemaker.sagemaker_client import sagemaker_client
class sagemaker_models_monitor_enabled(Check):
def execute(self):
findings = []
for monitoring_schedule in sagemaker_client.sagemaker_monitoring_schedules:
report = Check_Report_AWS(
metadata=self.metadata(), resource=monitoring_schedule
)
if monitoring_schedule.is_scheduled:
report.status = "PASS"
report.status_extended = f"SageMaker monitoring schedule {monitoring_schedule.name} is enabled in region {monitoring_schedule.region}."
elif not monitoring_schedule.has_schedules:
report.status = "FAIL"
report.status_extended = f"No SageMaker monitoring schedules found in region {monitoring_schedule.region}."
else:
report.status = "FAIL"
report.status_extended = f"No active SageMaker monitoring schedule in region {monitoring_schedule.region}; existing schedules are not in Scheduled status."
findings.append(report)
return findings