Skip to main content

aws-cloudformation-s3

Provides AWS CloudFormation patterns for Amazon S3. Use when creating S3 buckets, policies, versioning, lifecycle rules, and implementing template structure with Parameters, Outputs, Mappings, Conditions, and cross-stack references.

Quellinformationen

Repository
giuseppe-trisciuoglio/developer-kit
Letzte Quellaktivität
24. März 2026 um 08:27
Erkannte Sprache von SKILL.md
Englisch
Sterne
349
Forks
42

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
5 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
aws-cloudformation-s3
description
Provides AWS CloudFormation patterns for Amazon S3. Use when creating S3 buckets, policies, versioning, lifecycle rules, and implementing template structure with Parameters, Outputs, Mappings, Conditions, and cross-stack references.
allowed-tools
Read, Write, Bash
# AWS CloudFormation S3 Patterns Provides S3 bucket configurations, policies, versioning, lifecycle rules, and CloudFormation template structure best practices for production-ready infrastructure. ## When to Use - Creating S3 buckets with custom configurations - Implementing bucket policies for access control - Configuring S3 versioning for data protection - Setting up lifecycle rules for data management - Creating Outputs for cross-stack references - Using Parameters with AWS-specific types - Organizing templates with Mappings and Conditions ## Overview S3 bucket configurations, policies, versioning, lifecycle rules, and CloudFormation template structure for production-ready infrastructure. ## Instructions 1. **Define Bucket Resources**: Create `AWS::S3::Bucket` with versioning, encryption, PublicAccessBlock 2. **Configure Bucket Policy**: Set up IAM policies for access control 3. **Set Up Lifecycle Rules**: Define transitions and expiration policies 4. **Configure CORS**: Allow cross-origin requests if needed 5. **Add Outputs**: Export bucket names/ARNs for cross-stack references **Validate before deploy:** ```bash aws cloudformation validate-template --template-body file://template.yaml ``` **Deploy with rollback on failure:** ```bash aws cloudformation deploy \ --template-file template.yaml \ --stack-name my-s3-stack \ --capabilities CAPABILITY_IAM ``` If deployment fails, CloudFormation automatically rolls back. Check failures with: ```bash aws cloudformation describe-stack-events --stack-name my-s3-stack ``` ## Quick Reference | Resource Type | Purpose | |---------------|---------| | `AWS::S3::Bucket` | Create S3 bucket | | `AWS::S3::BucketPolicy` | Set bucket-level policies | | `AWS::S3::BucketReplication` | Cross-region replication | | Parameters | Input values for customization | | Mappings | Static configuration tables | | Conditions | Conditional resource creation | | Outputs | Return values for cross-stack references | ## Examples ### Basic S3 Bucket ```yaml Resources: DataBucket: Type: AWS::S3::Bucket Properties: BucketName: my-data-bucket ``` ### Bucket with Versioning and Encryption ```yaml DataBucket: Type: AWS::S3::Bucket Properties: BucketName: !Sub "${AWS::StackName}-data" VersioningConfiguration: Status: Enabled BucketEncryption: ServerSideEncryptionConfiguration: - ServerSideEncryptionByDefault: SSEAlgorithm: AES256 PublicAccessBlockConfiguration: BlockPublicAcls: true BlockPublicPolicy: true ``` ### Lifecycle Rule ```yaml DataBucket: Type: AWS::S3::Bucket Properties: LifecycleConfiguration: Rules: - Id: ArchiveOldData Status: Enabled Transitions: - StorageClass: GLACIER TransitionInDays: 365 ``` ### Bucket Policy ```yaml BucketPolicy: Type: AWS::S3::BucketPolicy Properties: Bucket: !Ref DataBucket PolicyDocument: Statement: - Effect: Allow Principal: AWS: !Ref RoleArn Action: - s3:GetObject Resource: !Sub "${DataBucket.Arn}/*" ``` See [references/complete-examples.md](references/complete-examples.md) for more complete examples including CORS, static websites, replication, and production-ready configurations. ## Template Structure ### Template Sections ```yaml AWSTemplateFormatVersion: 2010-09-09 Description: Template description Mappings: {} # Static configuration tables Metadata: {} # Additional information Parameters: {} # Input values Conditions: {} # Conditional creation Transform: {} # Macro processing Resources: {} # AWS resources (REQUIRED) Outputs: {} # Return values ``` ### Parameters ```yaml Parameters: BucketName: Type: String Description: S3 bucket name Default: my-bucket MinLength: 3 MaxLength: 63 AllowedPattern: '^[a-z0-9-]+$' ``` ### Conditions ```yaml Conditions: IsProduction: !Equals [!Ref Environment, prod] ShouldEnableVersioning: !Equals [!Ref EnableVersioning, 'true'] Resources: DataBucket: Type: AWS::S3::Bucket Properties: VersioningConfiguration: Status: !If [ShouldEnableVersioning, Enabled, Suspended] ``` ### Outputs ```yaml Outputs: BucketName: Description: Name of the S3 bucket Value: !Ref DataBucket Export: Name: !Sub '${AWS::StackName}-BucketName' ``` See [references/advanced-configuration.md](references/advanced-configuration.md) for detailed Mappings, Conditions, Parameters, and cross-stack references. ## Best Practices 1. **Public Access Block**: Always enable for non-static website buckets 2. **Versioning**: Enable for critical data to prevent accidental deletion 3. **Bucket Policies**: Use instead of ACLs for access control 4. **Lifecycle Rules**: Implement cost optimization with tiering 5. **Encryption**: Enable default encryption (SSE-KMS or AES256) 6. **Tags**: Tag all resources for organization and cost allocation 7. **Outputs**: Export bucket names/ARNs for cross-stack references 8. **Parameters**: Use parameters for reusability across environments ## Common Troubleshooting **Bucket already exists**: Use unique bucket names with CloudFormation stack name **Access denied**: Verify bucket policy and IAM permissions **Versioning conflicts**: Cannot suspend versioning once objects exist **Lifecycle not working**: Check rule status and prefix filters **Cross-stack references**: Ensure outputs are exported before importing ## Related Skills - [aws-cloudformation-security](../aws-cloudformation-security/) - Security best practices for S3 - [aws-cloudformation-lambda](../aws-cloudformation-lambda/) - Lambda triggers for S3 events - [aws-cloudformation-iam](../aws-cloudformation-iam/) - IAM roles for S3 access ## References ### Complete Examples - **[references/complete-examples.md](references/complete-examples.md)** - Basic buckets, versioning, lifecycle, CORS, policies, production stacks, event notifications, static websites, replication ### Advanced Configuration - **[references/advanced-configuration.md](references/advanced-configuration.md)** - Parameters, Mappings, Conditions, Outputs, Metadata, DeletionPolicy, DependsOn, Transform ## Constraints and Warnings - **Bucket names**: Must be globally unique (across all AWS accounts) - **Versioning**: Cannot be suspended once objects exist in bucket - **Lifecycle rules**: Minimum 1 day for expiration, 0 days for transitions - **Bucket policies**: Limited to 20 KB in size - **Public access**: Blocked by default; requires explicit configuration - **CORS**: Limited to 100 rules per bucket - **Replication**: Versioning must be enabled on both source and destination - **Encryption**: KMS keys must be in same region as bucket - **Tags**: Maximum 50 tags per resource - **Stack limits**: CloudFormation limits resources per stack (200 default)
Auf GitHub ansehen