Skip to content
Cloud & Infrastructure
Skill

/managing-data-asset-access

Grants, requests, audits and removes access to data assets in an AWS data catalog (the Amazon SageMaker Catalog supported by Amazon DataZone) through catalog subscriptions over published listings. Covers requesting a subscription, approving or rejecting requests with a recorded

BOOST
From plugin
agent-toolkit-for-aws
3k152 skills7 agents10 commands3 MCP
Install
$ npx -y skills add aws/agent-toolkit-for-aws --skill managing-data-asset-access --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/managing-data-asset-access

Context preview

The summary Claude sees to decide when to auto-load this skill.

Grants, requests, audits and removes access to data assets in an AWS data catalog (the Amazon SageMaker Catalog supported by Amazon DataZone) through catalog subscriptions over published listings. Covers requesting a subscription, approving or rejecting requests with a recorded

SKILL.md

managing-data-asset-access.SKILL.md
name: managing-data-asset-access
description: >
  Grants, requests, audits and removes access to data assets in an AWS data
  catalog (the Amazon SageMaker Catalog supported by Amazon DataZone) through
  catalog subscriptions over published listings. Covers requesting a
  subscription, approving or rejecting requests with a recorded decision,
  sharing a listing with a project, revoking one or many subscriptions, and
  confirming grant settlement. Triggers on: give another team access to a table,
  request access to a dataset, approve or reject an access request, share a
  listing with a project, who has access to this table, revoke access, bulk
  revoke, is the access actually gone, subscription grant status. Not for:
  IAM roles, policies or STS (use aws-iam), S3 bucket policies (use
  securing-s3-buckets), Clean Rooms permissions (use aws-cleanrooms), or writing
  catalog metadata, glossaries and forms, publishing listings, or retiring or
  deleting an asset that other teams are subscribed to and the order of
  operations that needs (use managing-data-catalog)
metadata:
  version: "1"

Manage Data Asset Access

Access to a catalog data asset is a **subscription over a published listing**. Request it, decide on it, share it, audit it, remove it. And prove each of those actually took effect.

Overview

You SHOULD execute commands through AWS MCP server tools when connected: they give validation, sandboxed execution and audit logging, which matter more than usual in a skill whose failures are security misstatements. Fall back to the AWS CLI when the MCP server is unavailable; every step here is expressed as CLI calls, so it runs either way. You MUST explain each grant or revoke before executing it, and you MUST report what you verified afterwards.

**Runtime requirements**, stated before the first command block:

  • The **AWS CLI v2** and credentials for the target account and region.
  • A **POSIX shell** for the multi-step wait blocks in the references. Nothing

here needs `jq`; every block reads fields with `--query`.

Check both before running a block, and say so if either is missing rather than improvising around it.

Guardrail: where this skill's own files live (MCP vs local install)

This skill can be loaded two ways, and they resolve the skill's own bundled files from different places. Determine how the skill was loaded before reading a reference:

  • **Loaded through a skill tool over MCP:** the skill is not installed on the

local filesystem, so `file_read` on these paths will fail. Fetch each reference with whatever skill-file tool your runtime exposes, passing the reference path in that tool's own file parameter (e.g. `references/auditing-and-revoking.md`). Tool names differ between runtimes, so use the one you actually have rather than one you expect to be there. If the only skill tool available takes a skill name and has no file parameter, it cannot fetch a reference at all: do not put a path in its name field, and read the file from the skill's own directory instead.

  • **Installed locally** (e.g. `.kiro/skills/managing-data-asset-access/` or

`~/.claude/skills/managing-data-asset-access/`): Read files from the local skill directory using relative paths.

This distinction applies only to the skill's own packaged files. User data and session artifacts are always read from and written to the user's working directory. Never fetch or write customer data through a skill tool.

`references/` is a sibling of this `SKILL.md`, so resolve reference paths against that directory rather than your working directory. If a skill tool returns this overview instead of the file you asked for, it did not fetch it. Read it from that directory, and do not write API calls from memory because a reference read failed.

Three rules that outrank every chapter

Read these before any chapter. Each one caused failures across several different operations, so no single chapter is where you would meet it in time.

1. The grant is the access. The request is only the decision

Two objects, two stages, and only the second one is access:

| Object | `--query` path | Reads | What it means | |---|---|---|---| | subscription **request** | `status` | `PENDING` → `ACCEPTED` / `REJECTED` | somebody asked, and somebody decided. **Not access** | | **subscription** | `status` | `APPROVED` / `REVOKED` | the decision, recorded on the listing. **Not access** | | subscription **grant** | `items[].status` | `PENDING` → `IN_PROGRESS` → **`COMPLETED`** | the fulfilment. **This is the access** | | each asset in the grant | `items[].assets[].status` | `GRANT_*` → **`GRANTED`**, or `REVOKE_*` → **`REVOKED`** | which way it went, per asset |

So:

  • You MUST NOT report access as live, or as removed, from a request's or a

subscription's status. Read the grant.

  • **`COMPLETED` is the grant's terminal status, and `GRANTED` is not a value the

grant's own status ever takes**: it lives one level down, per asset. Polling `items[].status` for `GRANTED` waits for a state that never arrives.

  • `RevokeSubscription` returns `REVOKED` **immediately** while the grant is

still being torn down in the background. The revoke's own response proves nothing.

  • A grant that has **vanished** counts as settled. A grant still present must

read `COMPLETED`, and on a teardown its assets must read `REVOKED`, because a grant that finished *granting* also reads `COMPLETED`.

  • The grant's own `PENDING` and `IN_PROGRESS` are the same two statuses in both

directions, so they do not tell you whether access is arriving or leaving. The per-asset status does, and so does the subscription's own status.

Telling a user access is gone when it is not is a **security misstatement**, not a cosmetic one. `references/auditing-and-revoking.md` is the procedure.

2. This vocabulary is the SageMaker Catalog's. Establish that by probe

"Listing", "subscription", "consumer project" and "grant" are also AWS Marketplace,

Read more
Ships withagent-toolkit-for-aws

Help AI coding agents build, deploy, and manage applications on AWS. The Agent Toolkit for AWS gives AI coding agents the tools, knowledge, and guardrails they need to work with AWS services.

Get the whole plugin

Other skills on agent-toolkit-for-aws.