본문으로 건너뛰기
cccskills
무료GitHub에 공개

aws-cloudformation-iam

Provides AWS CloudFormation patterns for IAM roles, policies, managed policies, permission boundaries, and trust relationships. Use when modeling least-privilege access, cross-account assumptions, service roles, or reusable IAM stacks that other CloudFormation templates consume.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구AWS
설치 방법 보기

포함된 파일(3)

  • SKILL.md5.7 KB
  • references/examples.md57.8 KB
  • references/reference.md30.1 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

AWS CloudFormation IAM Security

Overview

Use this skill to model IAM with CloudFormation in a way that stays secure, auditable, and maintainable.

The most important design concerns are:

  • separating trust policies from permission policies
  • preferring roles over long-lived users wherever possible
  • keeping least-privilege boundaries readable and reusable

Do not treat SKILL.md as a full IAM encyclopedia. Use the bundled references for larger policy examples and service-specific variants.

When to Use

  • Creating IAM roles for Lambda, ECS, EC2, Step Functions, or other AWS services
  • Defining inline policies, managed policies, and permission boundaries in CloudFormation
  • Modeling cross-account assume-role access with constrained trust policies
  • Exporting IAM role ARNs or managed policy ARNs to downstream stacks
  • Reviewing wildcard permissions, boundary drift, or role replacement risk
  • Creating reusable IAM stacks for platform or application teams

Instructions

1. Define the trust boundary first

Identify who or what assumes the role (service principal, cross-account principal, or federated identity), then write the trust policy with explicit principals and conditions before adding permissions.

2. Grant the minimum permission set

Use inline policies for role-specific access; use managed policies for shared patterns across principals. Scope actions and resources tightly, and use conditions where possible.

3. Apply permission boundaries for delegated role creation

Use permission boundaries when teams create or extend roles in their own stacks, when guardrails are needed around privileged services (IAM, KMS, Organizations), or to separate maximum allowed permissions from application-specific policies.

Name roles and policies consistently so stack outputs and audits remain easy to trace.

4. Model cross-account access

For cross-account roles: trust only the exact source account or principal, add sts:ExternalId conditions when appropriate, keep permission and trust policies separate, and export only the ARNs that consuming accounts need.

5. Validate the template and policy behavior

Before rollout, use these commands to verify the template and IAM behavior:

# Validate CloudFormation template syntax
aws cloudformation validate-template --template-body file://template.yaml

# Preview changes before applying
aws cloudformation create-change-set \
  --stack-name <stack-name> \
  --template-body file://template.yaml \
  --change-set-type CREATE

# Simulate whether a principal can perform specific actions
aws iam simulate-principal-policy \
  --policy-source-arn arn:aws:iam::123456789012:role/LambdaExecutionRole \
  --action-names dynamodb:GetItem dynamodb:PutItem

# Check for wildcards in IAM policies within the template
aws cloudformation list-stack-resources --stack-name <stack-name>

After deployment, confirm policy attachments and stack outputs match the intended security model.

Examples

Example 1: Service role for Lambda with tightly scoped permissions

Resources:
  LambdaExecutionRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service: lambda.amazonaws.com
            Action: sts:AssumeRole
      Policies:
        - PolicyName: DynamoDbWritePolicy
          PolicyDocument:
            Version: "2012-10-17"
            Statement:
              - Effect: Allow
                Action:
                  - dynamodb:GetItem
                  - dynamodb:PutItem
                Resource: !GetAtt OrdersTable.Arn

Example 2: Cross-account role with an external ID condition

Resources:
  PartnerReadRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              AWS: arn:aws:iam::123456789012:role/partner-reader
            Action: sts:AssumeRole
            Condition:
              StringEquals:
                sts:ExternalId: partner-contract-001

Keep the trust relationship narrow and pair it with a separate read-only permission policy.

Best Practices

  • Prefer IAM roles over long-lived IAM users for application and automation access.
  • Separate trust policies from permission policies when reviewing or refactoring templates.
  • Use permission boundaries when delegating role creation to other teams.
  • Scope resources, actions, and conditions as tightly as the workload allows.
  • Export stable ARNs and names only when another stack truly consumes them.
  • Keep expanded policy libraries and edge cases in references/ instead of bloating the root skill.

Constraints and Warnings

  • Overly broad wildcards in IAM are easy to deploy and hard to notice later.
  • Named IAM resources can be hard to replace safely once other systems depend on them.
  • IAM changes may appear successful in CloudFormation before eventual consistency settles across AWS services.
  • Some Identity Center or organization-wide access patterns need complementary tooling outside a single CloudFormation stack.
  • Misconfigured trust policies are often a bigger risk than missing permissions.

References

  • references/examples.md
  • references/reference.md

Related Skills

  • aws-cloudformation-security
  • aws-cloudformation-ec2
  • aws-cloudformation-ecs
  • aws-cloudformation-lambda

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Creates new Architecture Decision Record (ADR) documents for significant architectural changes using a consistent template and repository-aware naming and storage guidance. Use when a user or agent decides on an architectural change, needs to document technical rationale, or wants to add a new ADR to the project history.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

giuseppe-trisciuoglio/developer-kit3602026년 9월 10일 업데이트

aws-cdk

무료

Provides AWS CDK TypeScript patterns for defining, validating, and deploying AWS infrastructure as code. Use when creating CDK apps, stacks, and reusable constructs, modeling serverless or VPC-based architectures, applying IAM and encryption defaults, or testing and reviewing `cdk synth`, `cdk diff`, and `cdk deploy` changes. Triggers include "aws cdk typescript", "create cdk app", "cdk stack", "cdk construct", "cdk deploy", and "cdk test".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

giuseppe-trisciuoglio/developer-kit3602026년 9월 10일 업데이트

Provides advanced AWS CLI patterns for managing EC2, Lambda, S3, DynamoDB, RDS, VPC, IAM, and CloudWatch. Generates bulk operation scripts, automates cross-service workflows, validates security configurations, and executes JMESPath queries for complex filtering. Triggers on "aws cli help", "aws command line", "aws scripting", "aws automation", "aws batch operations", "aws bulk operations", "aws cli pagination", "aws multi-region", "aws profiles", "aws cli troubleshooting".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

giuseppe-trisciuoglio/developer-kit3602026년 9월 10일 업데이트

Provides AWS CloudFormation patterns for Auto Scaling including EC2, ECS, and Lambda. Use when creating Auto Scaling groups, launch configurations, launch templates, scaling policies, lifecycle hooks, and predictive scaling. Covers template structure with Parameters, Outputs, Mappings, Conditions, cross-stack references, and best practices for high availability and cost optimization.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

giuseppe-trisciuoglio/developer-kit3602026년 9월 10일 업데이트

Provides AWS CloudFormation patterns for Amazon Bedrock resources including agents, knowledge bases, data sources, guardrails, prompts, flows, and inference profiles. Use when creating Bedrock agents with action groups, implementing RAG with knowledge bases, configuring vector stores, setting up content moderation guardrails, managing prompts, orchestrating workflows with flows, and configuring inference profiles for model optimization.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

giuseppe-trisciuoglio/developer-kit3602026년 9월 10일 업데이트

Provides AWS CloudFormation patterns for CloudFront distributions, origins (ALB, S3, Lambda@Edge, VPC Origins), CacheBehaviors, Functions, SecurityHeaders, parameters, Outputs and cross-stack references. Use when creating CloudFront distributions with CloudFormation, configuring multiple origins, implementing caching strategies, managing custom domains with ACM, configuring WAF, and optimizing performance.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

giuseppe-trisciuoglio/developer-kit3602026년 9월 10일 업데이트

giuseppe-trisciuoglio의 스킬 모두 보기

이 스킬의 문제 신고