AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a systematic diagnostic framework for resolving common operational issues within AWS Clean Rooms. It guides users through identifying and debugging permission failures, access errors, and CloudWatch logging issues related to custom ML model training and inference jobs. The skill covers the inspection of IAM roles, S3 bucket policies, KMS keys, Lake Formation permissions, and Clean Rooms ML configurations to pinpoint root causes.
What it does
- Diagnoses permission and access errors for Clean Rooms collaborations.
- Troubleshoots CloudWatch log publishing failures for ML training and inference jobs.
- Validates IAM role trust policies and attached permissions.
- Inspects S3 bucket and KMS key policies for data access issues.
- Verifies Lake Formation permissions for Glue-backed tables.
- Checks ML configuration and privacy settings for custom model associations.
When to use it
- When a user encounters 'Access Denied' or permission errors in Clean Rooms.
- When custom ML model jobs fail to publish logs to CloudWatch.
- When troubleshooting cross-account data access or result writing failures.
- When verifying if an IAM role has the necessary permissions for Clean Rooms operations.
Advantages
- Provides a structured, step-by-step approach to complex AWS permission debugging.
- Reduces manual effort in identifying misconfigured ML logging associations.
- Ensures all relevant policy types (IAM, S3, KMS, Lake Formation) are checked.
- Helps resolve cross-service configuration issues efficiently.
Usage examples
- “I am getting an access denied error when running a protected query in my Clean Rooms membership.”
- The agent will initiate the permission debugging workflow, asking for the membership ID and error message to trace the failure back to the specific IAM role or bucket policy.
- “My custom ML model training job in Clean Rooms is not showing any logs in CloudWatch.”
- The agent will trigger the logging diagnostic procedure, checking the ML configuration, privacy policies, and the IAM role permissions for CloudWatch log group access.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/aws/aws-cleanrooms/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip aws-cleanrooms.zip -d .agents/skills
Documentation by AWS
AWS Clean Rooms
Overview
Domain expertise for troubleshooting AWS Clean Rooms collaborations and custom ML modeling. Covers permission debugging, data access issues, and CloudWatch logging configuration.
Common tasks
Debugging Clean Rooms errors
Determine the failure type:
Access denied or permission error? → See permission debugging procedure. Covers IAM role policies (inline + attached managed), S3 bucket policies, KMS key policies, Lake Formation permissions, and cross-account trust.
Missing CloudWatch logs for custom model jobs? → See custom model logging debugging procedure. Covers Configured Model Algorithm Association privacy configuration, ML Configuration role permissions, and log group verification.
Additional resources
Files
- ATTRIBUTION.mdAdded by AutoGineer917 B
- LICENSELicence file added by AutoGineer9.9 KiB
- NOTICELicence file added by AutoGineer67 B
- SKILL.md1.7 KiB
- references/custom-model-logging-debugging.md5.9 KiB
- references/permission-debugging.md9.3 KiB
references/custom-model-logging-debugging.md
Clean Rooms ML Custom Model Logging Debugging
Systematic diagnostic procedure for CloudWatch log publishing failures in Clean Rooms ML custom model training and inference jobs.
Parameters
membership_id (required): The Clean Rooms membership ID
region (required): The AWS region
trained_model_arn (optional): ARN of the specific trained model or inference job
You MUST ask for all required parameters upfront.
Steps
1. Validate AWS Credentials and Region
aws sts get-caller-identityInform the user about the AWS account and region being used
2. Check Trained Model or Inference Job Status
Determine the resource type by inspecting the ARN: if it contains trained-model-inference-job, use the inference job call; otherwise use the trained model call. If ResourceNotFoundException, try the other.
aws cleanroomsml get-trained-model --membership-identifier ${membership_id} --trained-model-arn ${trained_model_arn} --region ${region}aws cleanroomsml get-trained-model-inference-job --membership-identifier ${membership_id} --trained-model-inference-job-arn ${trained_model_arn} --region ${region}
If no ARN provided, list recent resources:
aws cleanroomsml list-trained-models --membership-identifier ${membership_id} --region ${region}aws cleanroomsml list-trained-model-inference-jobs --membership-identifier ${membership_id} --region ${region}
If multiple returned, present the list and ask the user to confirm which to investigate.
Extract: logsStatus, logsStatusDetails, configuredModelAlgorithmAssociationArn, job status.
If configuredModelAlgorithmAssociationArn is not in the response, use: aws cleanroomsml list-configured-model-algorithm-associations --membership-identifier ${membership_id} --region ${region}. If multiple associations are returned, present the list and ask the user to confirm which one is relevant to the resource under investigation.
3. Check Configured Model Algorithm Association Privacy Configuration
aws cleanroomsml get-configured-model-algorithm-association --membership-identifier ${membership_id} --configured-model-algorithm-association-arn ${configured_model_algorithm_association_arn} --region ${region}Check
privacyConfiguration.policiesfor:trainedModels.containerLogswithallowedAccountIds(for training)trainedModelInferenceJobs.containerLogswithallowedAccountIds(for inference)
You MUST verify the customer's account ID is included in
allowedAccountIdsIf
containerLogsis empty/missing, flag this as a likely root cause — but you MUST continue through all remaining steps before generating the diagnosis, as multiple issues may exist simultaneouslyExplain that logging is configured in CreateConfiguredModelAlgorithmAssociation, NOT CreateTrainedModel
4. Check ML Configuration
aws cleanroomsml get-ml-configuration --membership-identifier ${membership_id} --region ${region}Extract
defaultOutputLocation.roleArn— this role publishes logsIf no ML Configuration exists (ResourceNotFoundException), flag this as a root cause — the user must create one via PutMLConfiguration. Skip Step 5 (role permissions cannot be checked without a role ARN) and continue to Step 6, as multiple issues may exist simultaneously.
5. Check ML Configuration Role CloudWatch Permissions
aws iam get-role --role-name ${role_name}aws iam list-role-policies --role-name ${role_name}aws iam list-attached-role-policies --role-name ${role_name}For each inline policy:
aws iam get-role-policy --role-name ${role_name} --policy-name ${policy_name}For each attached managed policy:
aws iam get-policy --policy-arn ${policy_arn}thenaws iam get-policy-version --policy-arn ${policy_arn} --version-id ${version_id}Required permissions:
logs:CreateLogGroup,logs:CreateLogStream,logs:PutLogEventsonarn:aws:logs:*:*:log-group:/aws/cleanroomsml/*Also check
cloudwatch:PutMetricData(requires"Resource": "*") for training metricsTrust policy must allow
cleanrooms-ml.amazonaws.com
6. Check CloudWatch Log Groups
aws logs describe-log-groups --log-group-name-prefix /aws/cleanroomsml/TrainedModels --region ${region}aws logs describe-log-groups --log-group-name-prefix /aws/cleanroomsml/TrainedModelInferenceJobs --region ${region}If groups exist, check streams using the discovered log group name:
aws logs describe-log-streams --log-group-name ${log_group_name} --order-by LastEventTime --descending --max-items 5 --region ${region}
If groups don't exist, this may indicate missing
logs:CreateLogGrouppermission. Cross-reference with logsStatus and privacy config.
7. Log Publishing Status Interpretation
Only if logsStatus is PUBLISH_FAILED:
Each member sees their own logsStatus based on their account's log publishing
Do NOT suggest checking other accounts
Accounts without an ML Configuration role show "Failed to publish logs as no ML Config role is set"
Direct customer to check their ML Configuration role permissions (Step 5)
8. Generate Diagnosis
Identify root cause (typically: missing privacy config, missing CloudWatch permissions, missing ML Configuration, or missing trust policy). Provide exact fix with CLI commands. Reference ML roles docs and LogsConfigurationPolicy API. Note that a new job must be run after fixing — existing failed jobs won't retroactively publish logs.
Expected output format:
## Current Status
- Resource: [name] ([status])
- Logs status: [PUBLISH_FAILED/PUBLISH_SUCCEEDED]
## Diagnostic Results
1. [PASS/FAIL] Privacy Config (containerLogs)
2. [PASS/FAIL] ML Configuration exists
3. [N/A/PASS/FAIL] ML Config Role Permissions
4. [PASS/FAIL] Log Groups
## Root Cause
[One-paragraph explanation]
## Fix
[Exact policy statement + CLI command]Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- AWS
- Publisher
- AWS (Official)
- Source
- aws/agent-toolkit-for-aws · skills/specialized-skills/analytics-skills/aws-cleanrooms · commit 0a218f8
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- NOTICE (added by AutoGineer from NOTICE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by AWS.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download aws-cleanrooms.zip