Skip to content
Agentmart
Submit a tool

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…

Skill by awsOfficial

IndexedApache-2.0★ 3,049
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/aws-managing-data-asset-access

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

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)

Use cases: cloud, data, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/managing-data-asset-access

What's inside

Skill 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)
License
Apache-2.0
Metadata
version: 1
Instructions
241 lines in SKILL.md · view on GitHub

Files (8)

  • SKILL.md
  • access-model-detection.md · references/
  • access-safety.md · references/
  • approving-access.md · references/
  • auditing-and-revoking.md · references/
  • bulk-revocation.md · references/
  • requesting-access.md · references/
  • troubleshooting.md · references/

SKILL.md (first lines)

# 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, AWS Data Exchange, AWS RAM and non-AWS data-exchange words. Reading
the request as one of those, and then reporting a missing permission for that
other service, is the single most common way to answer this task wrongly.

```bash
aws sts get-caller-identity                    # who am I
aws datazone list-domains --region <region>    # is this a SageMaker Catalog account?
```

- If `list-domains` returns a domain, the request is about **that** domain. Work
  there, and do not ask the user which product they meant.
- An `AccessDenied` is *this caller cannot see it*, not *it is not there*. Say
  what you probed and what it answered.
- **Substitute a real region.** A denial on a call that named no region is not an
  answer about the domain; `references/access-model-detection.md` says why and
  what to do instead.
- You MUST NOT name a permission as the blocker unless the call you were denied
  is the call this task needs. A Marketplace or Data Exchange permission is
  never the blocker for a catalog subscription.
- If the account genuinely has no domain, there is no subscription workflow
  here. Say so and read `references/access-model-detection.md` for what to
  offer instead. Do not substitute an IAM, S3 or Lake Formation grant and
  describe it in the user's words.

### 3. Every access decision is recorded, or it did not happen properly

The worst failure in this skill is over-granting production data. The measured

From aws/agent-toolkit-for-aws, Apache-2.0.

More from aws/agent-toolkit-for-aws

Signals

Stars
3,049
Forks
394
Open issues
40
Last commit (this folder)
Oct 23, 2026 (6 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
1
License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Same skill elsewhere

Copies of this SKILL.md published by others; search shows only one of them.

More from aws

Cite this page

managing-data-asset-access skill. Agent Mart. https://agentmart.dev/skills/aws-managing-data-asset-access (last updated 2026-10-24)