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

aws-cli-expert

AWS CLIの専門家スキル。EC2, S3, IAM, Lambda, RDS, ECS等の主要サービスのCLI操作を支援。IAMポリシー設計、クロスアカウント運用、セキュリティ設定、コスト最適化のベストプラクティスを提供。

Use when working with AWS services via CLI, designing IAM policies, managing infrastructure, or automating cloud operations.

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

연동 도구AWS
설치 방법 보기

포함된 파일(6)

  • SKILL.md15.5 KB
  • assets/.gitkeep0 B
  • references/aws_cli_essentials.md7.1 KB
  • references/iam_guide.md8.2 KB
  • references/security_best_practices.md10.5 KB
  • scripts/.gitkeep0 B

SKILL.md(원문)

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

AWS CLI Expert

Overview

AWS CLIは、Amazon Web Servicesの200以上のサービスをコマンドラインから操作するための公式ツールです。このスキルは、企業環境で頻出するサービスのCLI操作、IAMポリシー設計、セキュリティベストプラクティスを提供します。

When to Use This Skill

このスキルを使用するタイミング:

  • AWS CLIコマンドの構文を知りたい
  • IAMポリシーやロールを設計・確認したい
  • EC2、S3、Lambdaなどのリソースを管理したい
  • クロスアカウントアクセスを設定したい
  • セキュリティ設定を確認・強化したい
  • AWS操作を自動化したい

Example triggers:

  • "EC2インスタンスの一覧を取得するコマンドは?"
  • "S3バケットのパブリックアクセスを確認したい"
  • "IAMロールでクロスアカウントアクセスを設定したい"
  • "Lambda関数のログを確認したい"
  • "セキュリティグループのインバウンドルールを確認したい"

Output

このスキルは会話形式のガイダンスを提供します。ファイル生成は行いません。

  • AWS CLIコマンドの構文と使用例
  • IAMポリシー/ロールの設計アドバイス
  • セキュリティ設定の推奨事項
  • トラブルシューティングの手順

Workflow

  1. 要件の確認: ユーザーが実行したい操作を特定
  2. 認証状態の確認: 必要に応じて aws sts get-caller-identity で確認を推奨
  3. コマンド提供: 目的に応じたCLIコマンドを提示
  4. オプション説明: --query, --output, --profile などのオプションを解説
  5. セキュリティ考慮: 必要に応じてセキュリティベストプラクティスを提示

Prerequisites

Installation

# macOS (Homebrew)
brew install awscli

# pip
pip install awscli

# バージョン確認
aws --version

Authentication Setup

# 対話式設定
aws configure

# プロファイル指定で設定
aws configure --profile <profile-name>

# 設定ファイルの場所
# ~/.aws/credentials - 認証情報
# ~/.aws/config - 設定

Profile Management

# デフォルトプロファイルを使用
aws s3 ls

# 特定プロファイルを使用
aws s3 ls --profile production

# 環境変数でプロファイル指定
export AWS_PROFILE=production
aws s3 ls

Core Services

1. IAM (Identity and Access Management)

ユーザー管理:

# ユーザー一覧
aws iam list-users

# ユーザー詳細
aws iam get-user --user-name <username>

# ユーザー作成
aws iam create-user --user-name <username>

# アクセスキー作成
aws iam create-access-key --user-name <username>

# アクセスキー一覧
aws iam list-access-keys --user-name <username>

# MFAデバイス一覧
aws iam list-mfa-devices --user-name <username>

ロール管理:

# ロール一覧
aws iam list-roles

# ロール詳細
aws iam get-role --role-name <role-name>

# ロールの信頼ポリシー確認
aws iam get-role --role-name <role-name> --query 'Role.AssumeRolePolicyDocument'

# ロールにアタッチされたポリシー一覧
aws iam list-attached-role-policies --role-name <role-name>

ポリシー管理:

# 管理ポリシー一覧
aws iam list-policies --scope Local

# ポリシー詳細(バージョン指定)
aws iam get-policy-version --policy-arn <arn> --version-id v1

# ユーザーにポリシーをアタッチ
aws iam attach-user-policy --user-name <user> --policy-arn <arn>

# ロールにポリシーをアタッチ
aws iam attach-role-policy --role-name <role> --policy-arn <arn>

AssumeRole (クロスアカウント/ロール切り替え):

# ロールを引き受ける
aws sts assume-role \
  --role-arn arn:aws:iam::123456789012:role/RoleName \
  --role-session-name MySession

# MFA付きAssumeRole
aws sts assume-role \
  --role-arn arn:aws:iam::123456789012:role/RoleName \
  --role-session-name MySession \
  --serial-number arn:aws:iam::111111111111:mfa/user \
  --token-code 123456

# 一時認証情報を環境変数に設定
eval $(aws sts assume-role \
  --role-arn arn:aws:iam::123456789012:role/RoleName \
  --role-session-name MySession \
  --query 'Credentials.[AccessKeyId,SecretAccessKey,SessionToken]' \
  --output text | \
  awk '{print "export AWS_ACCESS_KEY_ID="$1" AWS_SECRET_ACCESS_KEY="$2" AWS_SESSION_TOKEN="$3}')

2. EC2 (Elastic Compute Cloud)

インスタンス管理:

# インスタンス一覧(テーブル形式)
aws ec2 describe-instances \
  --query 'Reservations[].Instances[].[InstanceId,State.Name,InstanceType,Tags[?Key==`Name`].Value|[0]]' \
  --output table

# 実行中のインスタンスのみ
aws ec2 describe-instances \
  --filters "Name=instance-state-name,Values=running" \
  --query 'Reservations[].Instances[].[InstanceId,PrivateIpAddress,Tags[?Key==`Name`].Value|[0]]' \
  --output table

# インスタンス起動
aws ec2 start-instances --instance-ids i-1234567890abcdef0

# インスタンス停止
aws ec2 stop-instances --instance-ids i-1234567890abcdef0

# インスタンス終了(削除)
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0

セキュリティグループ:

# セキュリティグループ一覧
aws ec2 describe-security-groups \
  --query 'SecurityGroups[].[GroupId,GroupName,Description]' \
  --output table

# 特定SGの詳細(インバウンドルール)
aws ec2 describe-security-groups \
  --group-ids sg-12345678 \
  --query 'SecurityGroups[].IpPermissions'

# 0.0.0.0/0 からのアクセスを許可しているSG(セキュリティ監査)
aws ec2 describe-security-groups \
  --query 'SecurityGroups[?IpPermissions[?IpRanges[?CidrIp==`0.0.0.0/0`]]].[GroupId,GroupName]' \
  --output table

# インバウンドルール追加
aws ec2 authorize-security-group-ingress \
  --group-id sg-12345678 \
  --protocol tcp \
  --port 443 \
  --cidr 10.0.0.0/8

VPC:

# VPC一覧
aws ec2 describe-vpcs \
  --query 'Vpcs[].[VpcId,CidrBlock,Tags[?Key==`Name`].Value|[0]]' \
  --output table

# サブネット一覧
aws ec2 describe-subnets \
  --query 'Subnets[].[SubnetId,VpcId,CidrBlock,AvailabilityZone]' \
  --output table

3. S3 (Simple Storage Service)

基本操作:

# バケット一覧
aws s3 ls

# バケット内オブジェクト一覧
aws s3 ls s3://bucket-name/

# 再帰的にリスト(サイズ付き)
aws s3 ls s3://bucket-name/ --recursive --human-readable --summarize

# ファイルコピー
aws s3 cp file.txt s3://bucket-name/

# ディレクトリ同期
aws s3 sync ./local-dir s3://bucket-name/prefix/

# ファイル削除
aws s3 rm s3://bucket-name/file.txt

# バケット内全削除
aws s3 rm s3://bucket-name/ --recursive

バケットポリシー・セキュリティ:

# バケットポリシー確認
aws s3api get-bucket-policy --bucket <bucket-name>

# パブリックアクセスブロック確認
aws s3api get-public-access-block --bucket <bucket-name>

# バケットACL確認
aws s3api get-bucket-acl --bucket <bucket-name>

# 暗号化設定確認
aws s3api get-bucket-encryption --bucket <bucket-name>

# バージョニング状態確認
aws s3api get-bucket-versioning --bucket <bucket-name>

# パブリックアクセスブロック設定
aws s3api put-public-access-block \
  --bucket <bucket-name> \
  --public-access-block-configuration \
  "BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"

4. Lambda

関数管理:

# 関数一覧
aws lambda list-functions \
  --query 'Functions[].[FunctionName,Runtime,LastModified]' \
  --output table

# 関数詳細
aws lambda get-function --function-name <function-name>

# 関数設定確認
aws lambda get-function-configuration --function-name <function-name>

# 関数呼び出し(同期)
aws lambda invoke \
  --function-name <function-name> \
  --payload '{"key": "value"}' \
  output.json

# 関数呼び出し(非同期)
aws lambda invoke \
  --function-name <function-name> \
  --invocation-type Event \
  --payload '{"key": "value"}' \
  output.json

ログ確認:

# ロググループ一覧
aws logs describe-log-groups \
  --query 'logGroups[].[logGroupName,storedBytes]' \
  --output table

# Lambda関数のログをtail
aws logs tail /aws/lambda/<function-name> --follow

# 最新ログを取得
aws logs tail /aws/lambda/<function-name> --since 1h

# ログフィルタ
aws logs filter-log-events \
  --log-group-name /aws/lambda/<function-name> \
  --filter-pattern "ERROR"

5. RDS (Relational Database Service)

# DBインスタンス一覧
aws rds describe-db-instances \
  --query 'DBInstances[].[DBInstanceIdentifier,DBInstanceClass,Engine,DBInstanceStatus]' \
  --output table

# DBインスタンス詳細
aws rds describe-db-instances --db-instance-identifier <instance-id>

# スナップショット一覧
aws rds describe-db-snapshots \
  --query 'DBSnapshots[].[DBSnapshotIdentifier,DBInstanceIdentifier,SnapshotCreateTime]' \
  --output table

# スナップショット作成
aws rds create-db-snapshot \
  --db-instance-identifier <instance-id> \
  --db-snapshot-identifier <snapshot-name>

6. ECS (Elastic Container Service)

# クラスター一覧
aws ecs list-clusters

# サービス一覧
aws ecs list-services --cluster <cluster-name>

# タスク一覧
aws ecs list-tasks --cluster <cluster-name>

# サービス詳細
aws ecs describe-services \
  --cluster <cluster-name> \
  --services <service-name>

# タスク定義一覧
aws ecs list-task-definitions

# サービス更新(新しいデプロイ)
aws ecs update-service \
  --cluster <cluster-name> \
  --service <service-name> \
  --force-new-deployment

7. CloudWatch

メトリクス:

# 利用可能なメトリクス一覧
aws cloudwatch list-metrics --namespace AWS/EC2

# メトリクス取得
aws cloudwatch get-metric-statistics \
  --namespace AWS/EC2 \
  --metric-name CPUUtilization \
  --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-02T00:00:00Z \
  --period 3600 \
  --statistics Average

アラーム:

# アラーム一覧
aws cloudwatch describe-alarms \
  --query 'MetricAlarms[].[AlarmName,StateValue,MetricName]' \
  --output table

# ALARM状態のアラーム
aws cloudwatch describe-alarms --state-value ALARM

8. CloudFormation

# スタック一覧
aws cloudformation list-stacks \
  --query 'StackSummaries[?StackStatus!=`DELETE_COMPLETE`].[StackName,StackStatus,CreationTime]' \
  --output table

# スタック詳細
aws cloudformation describe-stacks --stack-name <stack-name>

# スタックイベント(デプロイ進捗)
aws cloudformation describe-stack-events \
  --stack-name <stack-name> \
  --query 'StackEvents[].[Timestamp,ResourceStatus,ResourceType,LogicalResourceId]' \
  --output table

# スタック作成
aws cloudformation create-stack \
  --stack-name <stack-name> \
  --template-body file://template.yaml \
  --capabilities CAPABILITY_IAM

# スタック更新
aws cloudformation update-stack \
  --stack-name <stack-name> \
  --template-body file://template.yaml \
  --capabilities CAPABILITY_IAM

# スタック削除
aws cloudformation delete-stack --stack-name <stack-name>

Authentication Patterns

1. Profile-based (開発環境)

# ~/.aws/credentials
[default]
aws_access_key_id = AKIAXXXXXXXXXXXXXXXX
aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

[production]
aws_access_key_id = AKIAYYYYYYYYYYYYYYYY
aws_secret_access_key = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
# ~/.aws/config
[default]
region = ap-northeast-1
output = json

[profile production]
region = us-east-1
output = json

2. SSO / IAM Identity Center

# SSO設定
aws configure sso

# SSOログイン
aws sso login --profile <sso-profile>
# ~/.aws/config
[profile sso-dev]
sso_start_url = https://my-company.awsapps.com/start
sso_region = us-east-1
sso_account_id = 123456789012
sso_role_name = DeveloperAccess
region = ap-northeast-1

3. AssumeRole (クロスアカウント)

# ~/.aws/config
[profile cross-account]
role_arn = arn:aws:iam::123456789012:role/CrossAccountRole
source_profile = default
region = ap-northeast-1

# MFA必須の場合
[profile cross-account-mfa]
role_arn = arn:aws:iam::123456789012:role/CrossAccountRole
source_profile = default
mfa_serial = arn:aws:iam::111111111111:mfa/username
region = ap-northeast-1

4. 環境変数

export AWS_ACCESS_KEY_ID=AKIAXXXXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export AWS_DEFAULT_REGION=ap-northeast-1

# 一時認証情報
export AWS_SESSION_TOKEN=xxxxxxxx

Common Patterns

JSON Output with jq

# 特定フィールドを抽出
aws ec2 describe-instances --output json | jq '.Reservations[].Instances[].InstanceId'

# フィルタリング
aws iam list-users --output json | jq '.Users[] | select(.UserName | startswith("admin"))'

# 整形して出力
aws lambda list-functions --output json | jq '.Functions[] | {name: .FunctionName, runtime: .Runtime}'

Batch Operations

# 複数インスタンスを停止
aws ec2 stop-instances --instance-ids i-111 i-222 i-333

# タグでフィルタして操作
aws ec2 describe-instances \
  --filters "Name=tag:Environment,Values=development" \
  --query 'Reservations[].Instances[].InstanceId' \
  --output text | xargs aws ec2 stop-instances --instance-ids

Pagination

# 自動ページネーション(デフォルト)
aws s3api list-objects-v2 --bucket <bucket>

# 手動ページネーション
aws s3api list-objects-v2 --bucket <bucket> --max-items 100 --starting-token <token>

Troubleshooting

認証エラー

# 現在の認証情報を確認
aws sts get-caller-identity

# プロファイル一覧
aws configure list-profiles

# 認証情報の優先順位確認
aws configure list

アクセス拒否

# IAMポリシーシミュレーター
aws iam simulate-principal-policy \
  --policy-source-arn arn:aws:iam::123456789012:user/username \
  --action-names s3:GetObject \
  --resource-arns arn:aws:s3:::bucket-name/*

デバッグ

# 詳細出力
aws s3 ls --debug

# リクエスト/レスポンス確認
aws s3 ls --debug 2>&1 | grep -A 5 "Response body"

Resources

詳細なガイドは以下のリファレンスを参照:

  • references/aws_cli_essentials.md - CLIの基本操作とベストプラクティス
  • references/iam_guide.md - IAMの詳細ガイド
  • references/security_best_practices.md - セキュリティベストプラクティス

Tips

  1. --query を活用: JMESPathで必要なフィールドだけ抽出
  2. --output table: 人間が読むときはtable形式が見やすい
  3. --dry-run: EC2操作は --dry-run で事前確認
  4. プロファイル分離: 本番/開発環境はプロファイルで分離
  5. MFA必須: 本番環境へのアクセスはMFA必須に
  6. CloudTrail確認: 操作ログはCloudTrailで監査可能

리뷰

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

댓글

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

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

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

0 / 1,000자

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

같은 저장소의 스킬

Track and update action item status from natural language updates like 'Seanのメールには返信しておいた' or 'Lu対応予定'. Integrates with daily-comms-ops workflow. Use when managing action items across communication channels.

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

takusaotome/claude-skills-library102026년 10월 5일 업데이트

AI活用提案の専門コンサルタントスキル。LLM・AIエージェントの活用事例知識を基に、業界別、部門別、シーン別に最適なAI導入提案を行います。システム化、業務改善、効率化を得意とし、具体的な活用事例、期待効果、導入ステップを含む実践的な提案を提供します。Use when proposing AI/LLM adoption strategies for specific industries, departments, or business scenarios.

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

takusaotome/claude-skills-library102026년 10월 5일 업데이트

Generate AI-powered BPO service proposals for Japanese companies in the US market. Use when creating outsourcing proposals with AI service menus, ROI estimation, implementation roadmaps, and bilingual (JA/EN) proposal documents for 在米日系企業向けAI実装.

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

takusaotome/claude-skills-library102026년 10월 5일 업데이트

AI(LLM)が生成した日本語テキストの「AI臭」を検出・診断し、人間らしい文章にリライトするスキル。 Use when: 「AIっぽい文章を直して」「人間らしくリライトして」「AI臭を消して」「この文章をもっと自然にして」 「テキストのAI感を減らして」「機械っぽさを取りたい」 "make this sound more human", "remove AI tone", "humanize this text", "detect if this is AI-generated". 6つのAI特有パターン(視覚的マーカー、単調なリズム、マニュアル的構成、非コミット姿勢、抽象語の濫用、 定型メタファー)を正規表現ベースで検出し、0-100のAI臭スコアを算出。3つの人間化技法 (バランスを崩す・客観を崩す・論理を崩す)でリライトを実行する。 Note: 検出スクリプトは日本語テキスト専用。英語テキストの場合はClaude自身がreferences/を参照して分析・リライトする。

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

takusaotome/claude-skills-library102026년 10월 5일 업데이트

Generate audit-ready internal control design documents from As-Is business process inventories. Produces control IDs, assertion mappings, procedures, SoD analysis, KPIs, materiality thresholds, and implementation roadmaps. Use when building internal controls for new audit engagements, SOX/J-SOX compliance, or process improvement initiatives.

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

takusaotome/claude-skills-library102026년 10월 5일 업데이트

Review audit-related documents (control design documents, bottleneck analyses, requirements definitions, etc.) for quality, scoring them 0-100 with a severity-rated findings list. Use when reviewing audit documents, checking control design quality, or verifying cross-document consistency. Supports documents governed by US GAAP, IFRS, or J-GAAP.

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

takusaotome/claude-skills-library102026년 10월 5일 업데이트

takusaotome의 스킬 모두 보기

이 스킬의 문제 신고