All skills
aws avatar

/amazon-aurora-postgresql

@a9d1c70

Amazon Aurora PostgreSQL — creates, modifies, and advises on Aurora PostgreSQL clusters specifically (PostgreSQL-compatible engine, Aurora serverless, express configuration, pgvector, Babelfish). Trigger for Aurora PostgreSQL cluster operations, express-configuration quick-start, ACU sizing, I/O-Optimized storage, commitment pricing, or PostgreSQL upgrade planning. For Aurora MySQL, use amazon-aurora-mysql instead. Contains safety guardrails, express-first routing, and response templates that override defaults.

Use this Skill: https://skilld.dev/gh/aws/agent-toolkit-for-aws/amazon-aurora-postgresql

This session only. Nothing lands on disk.

referencesshared-foundation-security-considerations.md

≈1.4k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Security Considerations

The amazon-aurora skill creates and modifies Aurora resources when the user requests it, but blocks destructive operations (deletes, major upgrades, purchases). The agent MUST enforce the practices below.

Table of Contents

  1. IAM Principles
  2. Credential Hygiene
  3. RDS Data API Warning
  4. Secure Defaults in Examples
  5. Output Handling

IAM Principles

The caller's IAM principal needs read and write permissions for RDS to create and modify clusters. Scope permissions to the minimum required actions.

Required permissions (by service):

Service Required actions
RDS rds:DescribeDBClusters, rds:DescribeDBInstances, rds:DescribeDBEngineVersions, rds:DescribeReservedDBInstancesOfferings
CloudWatch cloudwatch:GetMetricStatistics, cloudwatch:ListMetrics
Pricing pricing:GetProducts, pricing:DescribeServices
Savings Plans savingsplans:DescribeSavingsPlansOfferings, savingsplans:DescribeSavingsPlansOfferingRates

Managed policies AmazonRDSReadOnlyAccess and CloudWatchReadOnlyAccess cover most of this; add Pricing and Savings Plans read actions via a scoped custom policy.

Do NOT use AdministratorAccess or *:FullAccess managed policies. Scope write permissions to the specific actions the skill uses: rds:CreateDBCluster, rds:CreateDBInstance, rds:ModifyDBCluster, rds:ModifyDBInstance, rds:AddTagsToResource, rds:RemoveTagsFromResource. For reads: rds:Describe*, rds:List*.

Credential Hygiene

  • Prefer short-lived credentials (IAM roles, ada credentials update, SSO) over long-lived IAM user keys.
  • Do NOT create or store long-lived DB passwords from within the skill. If the user's Isengard credentials are expired, prompt them to refresh outside the skill.
  • IAM auth tokens are approved. Calling aws rds generate-db-auth-token or rds_client.generate_db_auth_token() is explicitly safe — these produce short-lived (15-minute) tokens derived from the caller's IAM identity. They are not stored credentials. This is the required connection method for express clusters.
  • Do NOT log or echo DB passwords or raw secret values. For RDS Data API precheck runs, reference secrets by their secretArn and let the service resolve them.
  • For SSM Run Command prechecks, pass DB credentials via inline JSON parameters attached to the Run Command invocation — never via positional filesystem arguments.

RDS Data API Warning

Enabling RDS Data API solely to run upgrade prechecks widens the cluster's connectivity surface. The Data API endpoint is HTTPS-reachable over the public AWS plane (authenticated with IAM), so it's safer than opening a new SG ingress rule, but it's still an additional attack surface.

  • Warn the user before recommending they enable Data API for a one-off precheck run
  • If the cluster is production and Data API is not already enabled, prefer the user-runs-script precheck method instead
  • If Data API is enabled for the workflow, remind the user to disable it after prechecks if it wasn't previously in use

Secure Defaults in Examples

Any CloudFormation, CDK, or AWS CLI snippet produced by this skill MUST use secure defaults:

  • Cluster configuration: StorageEncrypted: true (and KmsKeyId if the user has a customer-managed key)
  • TLS: cluster parameter group enables rds.force_ssl=1
  • Security groups: scoped CIDR ranges or security-group references — NEVER 0.0.0.0/0 or ::/0
  • Public accessibility: NEVER use --publicly-accessible. If the user needs connectivity from outside the VPC, use express configuration (internet-accessible via IAM), RDS Data API, or an EC2 bastion with SSH tunnel.
  • Parameter groups: do NOT disable log_statement, log_min_duration_statement, or audit logging parameters "for convenience"
  • Logging & monitoring: recommend enabling CloudTrail so Aurora control-plane API activity (create / modify / delete / failover) is recorded, and CloudWatch alarms on security-relevant metrics such as LoginFailures and DatabaseConnections. CloudWatch log exports (postgresql) give query-level visibility but do not cover API-level activity — CloudTrail does.
  • Resource names: no prod, production, or PROD as example/default values — those get copy-pasted into production accidentally

Output Handling

  • Cost numbers, instance types, and cluster IDs are not sensitive on their own, but combined with account ID they reveal environment topology. When presenting results, don't unnecessarily include the account ID.
  • If a workflow surfaces a secret ARN, show only the ARN, never attempt to resolve it.
  • Upgrade precheck findings may include schema names, table names, or query text from the user's database. If the output is going to be shared (posted to a ticket, shared in chat), warn the user to review for sensitive identifiers before sharing.

References

Source: SKILL.md on GitHub

No alerts3mo3 checks · Risk SAFE
  • Gen Agent Trust Hub3mo

    This skill provides a modular and secure toolkit for managing Amazon Aurora PostgreSQL. It features robust safety guardrails, including multi-tier confirmation models and explicit refusal of destructive operations. The integrated analysis scripts utilize official AWS data sources and adhere to the principle of least privilege, emphasizing short-lived IAM authentication for database connectivity.

  • Socket3mo

    No alerts

  • Snyk3mo

    Risk: LOW · No issues

Signed by skilld at a9d1c70. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 4 months ago
version
1

README badge

README badge for aws/agent-toolkit-for-aws/amazon-aurora-postgresql