aws-s3-eks

Create S3 buckets and configure EKS Pod Identity for credential-free pod access.

Updated Feb 23, 2026
One-click install
npx skills add https://github.com/deepparser/skills --skill aws-s3-eks-deepparser
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: aws-s3-eks
Source: https://github.com/deepparser/skills/tree/main/aws-s3-eks
Command: npx skills add https://github.com/deepparser/skills --skill aws-s3-eks-deepparser

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Setting up S3 access for workloads running on Amazon EKS normally requires juggling IAM roles, trust policies, ServiceAccounts, and credential management. This Skill automates the entire flow so pods can read and write S3 objects without static AWS credentials or IRSA OIDC configuration. ## Core Features & Use Cases - S3 Bucket Provisioning: Create buckets with AES-256 encryption, versioning, lifecycle expiration rules, CORS, and optional public-read policies via a single script. - EKS Pod Identity Setup: Create IAM roles with pods.eks.amazonaws.com trust policies, attach scoped S3 policies (read-only, read-write, prefix-restricted), and link them to Kubernetes ServiceAccounts through Pod Identity Associations. - Reference Templates: Includes IAM policy JSON templates, Kubernetes manifests (ServiceAccount, Deployment, ConfigMap, Kustomize overlay), and a full S3 OpenAPI 3.2.0 specification. - Use Case: You are deploying an API on EKS that stores user uploads in S3. Run one command to create the bucket, IAM role, ServiceAccount, and Pod Identity Association, then verify access from a test pod. ## Quick Start Ask the AI to create an S3 bucket named my-app-uploads in us-east-1 and configure EKS Pod Identity so the my-app-api ServiceAccount in the my-app namespace can access it without static credentials.

Frequently Asked Questions about aws-s3-eks

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I give EKS pods access to S3 without static credentials?

Use EKS Pod Identity: create an IAM role trusting pods.eks.amazonaws.com, attach an S3 access policy, and create a Pod Identity Association linking the role to a Kubernetes ServiceAccount. The Pod Identity Agent injects temporary credentials that AWS SDKs pick up automatically.

How to create an S3 bucket with encryption and versioning using the AWS CLI?

Run aws s3api create-bucket, then put-bucket-encryption with AES256, and put-bucket-versioning with Status=Enabled. The create-s3-bucket.sh script performs all of these steps plus optional lifecycle rules, CORS, and public access blocking in one command.

What is the difference between EKS Pod Identity and IRSA?

Pod Identity uses the EKS Pod Identity Agent DaemonSet and CreatePodIdentityAssociation, requiring no OIDC provider or ServiceAccount annotations. IRSA relies on an OIDC provider and role annotations. Pod Identity works on EKS 1.24+ and is simpler to configure.

Why do I get NoCredentialProviders or AccessDenied errors from my EKS pod?

NoCredentialProviders usually means the Pod Identity Agent addon is not installed; install it with eksctl or aws eks create-addon. AccessDenied typically indicates a missing or incorrect IAM policy, so verify the role policy and bucket ARN with aws iam get-role-policy.

Can I restrict S3 access to a specific prefix for a Kubernetes service?

Yes. Pass the --prefix option to setup-pod-identity.sh to generate an IAM policy that scopes s3:GetObject, PutObject, and DeleteObject to a key prefix like uploads/, with ListBucket conditioned on that prefix.