Install
openclaw skills install alibabacloud-dsc-auditQuery and handle security risk events from Alibaba Cloud Data Security Center. Supports viewing the list of unprocessed risk events and performing manual handling operations on risk events. Trigger words: "Data Security Center", "security risk events", "DSC", "risk handling", "DescribeRiskRules", "PreHandleAuditRisk"
openclaw skills install alibabacloud-dsc-auditThis skill uses Alibaba Cloud Python Common SDK (generic invocation) to query security risk events from the Data Security Center and handle them.
User → Python Common SDK → Data Security Center (Sddp) API
├── DescribeRiskRules (Query risk events)
└── PreHandleAuditRisk (Handle risk events)
pip3 install -r scripts/requirements.txt
Or install packages individually:
pip3 install alibabacloud_tea_openapi==0.4.3 alibabacloud_credentials==1.0.8 alibabacloud_tea_util==0.3.14 alibabacloud_openapi_util==0.2.4
[MUST] CLI User-Agent — Every aliyun CLI command invocation must include:
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-dsc-audit
Pre-check: Aliyun CLI >= 3.3.3 required Run
aliyun versionto verify >= 3.3.3. If not installed or version too low, runcurl -fsSL https://aliyuncli.alicdn.com/setup.sh | bashto update, or seereferences/cli-installation-guide.mdfor installation instructions.
Pre-check: Aliyun CLI plugin update required [MUST] run
aliyun configure set --auto-plugin-install trueto enable automatic plugin installation. [MUST] runaliyun plugin updateto ensure that any existing plugins are always up-to-date.
At the start of the Core Workflow (before any CLI invocation): [MUST] Enable AI-Mode — AI-mode is required for Agent Skill execution. Run the following commands before any CLI invocation:
aliyun configure ai-mode enable
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-dsc-audit"
[MUST] Disable AI-Mode at EVERY exit point — Before delivering the final response for ANY reason, always disable AI-mode first. This applies to ALL exit paths: workflow success, workflow failure, error/exception, user cancellation, session end, or any other scenario where no further CLI commands will be executed. AI-mode is only used for Agent Skill invocation scenarios and MUST NOT remain enabled after the skill stops running.
aliyun configure ai-mode disable
Pre-check: Alibaba Cloud Credentials Required
Security Rules:
- NEVER read, echo, or print AK/SK values (e.g.,
echo $ALIBABA_CLOUD_ACCESS_KEY_IDis FORBIDDEN)- NEVER ask the user to input AK/SK directly in the conversation or command line
- NEVER use
aliyun configure setwith literal credential values- ONLY use
aliyun configure listto check credential statusaliyun configure listCheck the output for a valid profile (AK, STS, or OAuth identity).
If no valid profile exists, STOP here.
- Obtain credentials from Alibaba Cloud Console
- Configure credentials outside of this session (via
aliyun configurein terminal or environment variables in shell profile)- Return and re-run after
aliyun configure listshows a valid profile
Before using this skill, ensure the current user has the required RAM permissions. For detailed permission lists and policy configurations, refer to references/ram-policies.md
IMPORTANT: Parameter Confirmation — Before executing any command or API call, ALL user-customizable parameters (e.g., RegionId, instance names, CIDR blocks, passwords, domain names, resource specifications, etc.) MUST be confirmed with the user. Do NOT assume or use default values without explicit user approval.
| Parameter | Required/Optional | Description | Default |
|---|---|---|---|
CurrentPage | Optional | Current page number | 1 |
PageSize | Optional | Records per page | 10 |
HandleStatus | Optional | Processing status, PROCESSED means handled, UNPROCESSED means not handled | UNPROCESSED |
RiskId | Required for handling | Risk event ID | - |
HandleDetail | Required for handling | Handling details description | - |
Use the scripts/query_risk.py script to query unprocessed security risk events. This is a paginated API that returns the first 20 records by default.
python3 scripts/query_risk.py
Example output:
Found 31 unprocessed security risk events
================================================================================
Risk ID: 75110196
Rule Name: jiangyu_test_mysqldump
Risk Level: High Risk
Product Type: RDS
Alert Count: 20
Asset Count: 2
Rule Category: Database Dump Attack
--------------------------------------------------------------------------------
The query results return the following key fields. Risk Event ID (RiskId) is a required parameter for handling:
| Field | Description |
|---|---|
| RiskId | Risk event ID, required for handling |
| RuleName | Rule name |
| WarnLevelName | Risk level (High Risk/Medium Risk/Low Risk) |
| ProductCode | Product type (RDS/OSS, etc.) |
| AlarmCount | Alert count |
| InstanceCount | Number of affected assets |
| FirstAlarmTime | First discovery time |
| LastAlarmTime | Last discovery time |
Use the scripts/handle_risk.py script to handle specified risk events.
python3 scripts/handle_risk.py <RiskID> <HandleDetail>
Example:
python3 scripts/handle_risk.py 75110196 "Confirmed as false positive, closing this alert"
Example output:
Handling risk event...
Risk ID: 75110196
Handle Detail: Confirmed as false positive, closing this alert
--------------------------------------------------
✅ Handling successful!
RequestId: C34D813F-A234-5D66-842D-504D84D5C680
| Parameter | Description |
|---|---|
RiskId | Risk event ID, obtained from DescribeRiskRules API |
HandleType | Handling type, fixed as Manual (manual handling) |
HandleMethod | Handling method, fixed as 0 |
HandleDetail | Handling details, requires user to input specific handling description |
statusCode is 200body contains the Items listTotalCount matches the actual number of returned recordsstatusCode is 200DescribeRiskRules again to query the RiskId and confirm the status has changedThis skill is primarily used for query and handling operations, does not involve resource creation, and requires no cleanup.
| Product | API Action | Script | Description |
|---|---|---|---|
| Sddp | DescribeRiskRules | scripts/query_risk.py | Query security risk events |
| Sddp | PreHandleAuditRisk | scripts/handle_risk.py | Handle security risk events |
| Script | Usage | Description |
|---|---|---|
query_risk.py | python3 scripts/query_risk.py | Execute directly, no parameters required |
handle_risk.py | python3 scripts/handle_risk.py <RiskID> <HandleDetail> | Requires Risk ID and handling description |
For detailed API information, refer to references/related-apis.md
CurrentPage parameter until all records are retrievedRiskId in query results is a required parameter for handling operations, make sure to record itHandleDetail description when handling for subsequent auditingThrottlingCredentialClient to manage credentials, do not hardcode AK/SK| Reference Document | Description |
|---|---|
| references/related-apis.md | API detailed documentation |
| references/ram-policies.md | RAM permission configuration |
| references/cli-installation-guide.md | CLI installation guide |
| references/acceptance-criteria.md | Acceptance criteria |
| Generic Invocation Documentation | Alibaba Cloud Python SDK generic invocation documentation |
Warning: This skill only uses the Data Security Center's
DescribeRiskRulesandPreHandleAuditRiskAPIs. If these two APIs cannot be found, report an error. Do NOT call other OpenAPIs without authorization. Do not use Alibaba Cloud CLI tools to call APIs.