Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ShieldNet-360/secure-vibe --skill iam-best-practicesgit clone --depth 1 https://github.com/ShieldNet-360/secure-vibeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/shieldnet-360/secure-vibe/iam-best-practices)<a href="https://agentmods.dev/skills/shieldnet-360/secure-vibe/iam-best-practices"><img src="https://agentmods.dev/badge/skills/shieldnet-360/secure-vibe/iam-best-practices/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/shieldnet-360/secure-vibe/iam-best-practices"><img src="https://agentmods.dev/badge/skills/shieldnet-360/secure-vibe/iam-best-practices.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00072 | $0.02071 |
| Opus 5 | $0.00036 | $0.01035 |
| Sonnet 5 | $0.00014 | $0.00414 |
| Haiku 4.5 | $0.00007 | $0.00207 |
Grade A, and why
iam-best-practices scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 149 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Identity & Access Management Best Practices
Rules (for AI agents)
ALWAYS
- Grant the minimum permissions the workload's stated job requires: deny by default,
then add concrete actions against concrete resources. A wildcard action on a
wildcard resource — in a custom policy, in
AdministratorAccess, or iniam:*attached to something that runs continuously — is the same finding wearing three different names. - Read a policy for the privileges it can reach, not only the ones it names. A
principal that can write policy (
iam:PutRolePolicy,iam:AttachRolePolicy,iam:CreatePolicyVersion) can grant itself anything, and a principal that can pass a role into a compute service it may also create (iam:PassRolewithlambda:CreateFunction,ec2:RunInstances,glue:CreateJob) inherits that role's privileges. These read as narrow grants and are administrative ones.references/escalation-paths.mdlists the combinations worth failing a review over. - Bound delegated permissions with a permissions boundary or an organization-level policy (SCP, GCP org policy, Azure management-group policy) when teams may create their own roles. The boundary caps what any role they create can do, which is what makes self-service role creation safe rather than a privilege-escalation primitive.
- Prefer workload identity — IRSA on EKS, GKE Workload Identity, Azure Managed Identity, OIDC federation from CI — over a static key. The goal is that no long-lived credential exists to leak. Where one is genuinely unavoidable, give it a documented rotation cadence and automatic disablement on inactivity, and treat that as a temporary state rather than the steady state.
- Enforce MFA for human principals through a policy condition
(
aws:MultiFactorAuthPresent), not only a directory setting, so a credential that bypasses the directory still cannot act. - Separate the deploy identity from the runtime identity. The pipeline gets
permission to create and change infrastructure; the running service gets permission
to do its job and nothing that mutates IAM.
cicd-securityowns hardening the pipeline that holds the deploy role. - Scope cross-account trust to the actual counterparty. Inside your own organization
that means a specific principal ARN or
aws:PrincipalOrgID; for a third party acting on your behalf it additionally means anExternalId— a per-consumer value the third party supplies, which defeats the confused-deputy case where another of their customers can name your account. TreatExternalIdas an identifier, not a secret: it is not one, and relying on its confidentiality is a false assurance. - Keep sessions short and make the length a deliberate choice. Human and CI roles should use the shortest session the workflow tolerates. A longer window on a break-glass role is a defensible operational trade — an incident should not expire mid-response — but it has to be stated as a decision, paired with alerting, and not copied onto ordinary roles.
- For Kubernetes RBAC, scope
RoleandRoleBindingto one namespace and reserveClusterRolefor genuinely cluster-wide objects. Review everycluster-adminbinding at pull-request time, and remember that permission to create workloads in a namespace is permission to use every service account in it. - Log IAM-mutating calls to a tamper-evident sink and alert on them: policy changes,
iam:PassRole, access-key creation, and role assumption from an unexpected principal.logging-securityowns the shape of the record. - Require out-of-band approval for break-glass use (root, organization owner,
cluster-admin) and alert on every invocation, not on a sample.
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 149 lines · 72 tokens per session scan A 5bd1e6578c3e
iam-best-practices is a skill published in the GitHub repository ShieldNet-360/secure-vibe (22 stars, last pushed 26d ago), licensed MIT. It adds 72 tokens to every session and 2,071 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
offensive-container-escape
Container escape and breakout techniques targeting Docker, containerd, and Podman runtimes. Covers privileged container breakout via host filesystem mount and nsenter, Docker socket abuse through /var/run/docker.sock, Linux capability exploitation including CAPSYSADMIN, CAPSYSPTRACE, and CAPNETADMIN, cgroup v1…
offensive-cloud
Cloud security attack methodology covering AWS, Azure, and GCP. Includes credential harvesting (IMDS, /.aws, env vars, leaked CI secrets, instance roles), enumeration with cloud-specific tools (pacu, ScoutSuite, Prowler, ROADtools, gcpenum), privilege escalation paths (IAM PassRole, AssumeRole chains, Lambda/Functions…
coolify-operator
Master Coolify operator for self-hosted deployment platform. Use when the user mentions 'coolify', 'deploy on coolify', 'list/restart/redeploy applications', 'view coolify logs', 'coolify API/CLI', 'manage coolify servers/databases/apps', or 'coolify context'. Automates deployments and management via REST API or…
pier-cloud
This skill should be used when the user needs to consume the Pier Cloud (Lighthouse) API for cloud cost management — including JWT authentication, listing contexts, workspaces, and FinOps data views. Trigger whenever there is a need to integrate, automate, or debug calls to the Pier Cloud platform via Python, Node.js…
deno-deploy
Use when deploying Deno apps to production, asking about Deno Deploy, or working with deno deploy CLI commands. Covers deployment workflows, environment variables, KV database access, custom domains, the --tunnel flag for local development, and the deno deploy command reference.
datarobot-workload-api
Use when the user wants to create, configure, scale, debug, observe, or roll out container workloads on DataRobot's Workload API. Triggers include: deploying a container as a managed service, listing/starting/stopping workloads, changing replica counts or autoscaling, picking CPU/GPU compute bundles, injecting…