securing-s3-buckets
アクセス制御・暗号化・モニタリング・設定ミスの修正など、AWSのベストプラクティスに従ってS3バケットの作成とセキュリティ強化を行います。新しいバケットのセキュリティ設定、既存バケットの監査、セキュリティ上の問題の修正、暗号化の構成、ログ記録やモニタリングの有効化を行いたい場合に使用してください。一般的なS3データ操作、S3 Tablesのセットアップ、既存データ資産の探索には使用しないでください。
description の原文を見る
> Create and secure S3 buckets following AWS best practices for access control, encryption, monitoring, and remediation of misconfigurations. Use when the user wants to secure a new bucket, audit an existing bucket, fix a security finding, configure encryption, or enable logging and monitoring. Do NOT use for general S3 data operations, S3 Tables setup, or discovering existing data assets.
SKILL.md 本文
Overview
アクセス制御、暗号化、監視、設定ミスの修復に関する5つのワークフローを通じて、階層化されたS3セキュリティコントロールを実装します。AWS Well-Architectedセキュリティベストプラクティスに従います。
AWS MCPサーバーが接続されている場合はそれを使用してコマンドを実行し(サンドボックス実行、監査ログ、可観測性)、接続されていない場合はAWS CLIまたはシェルにフォールバックします。
Common Tasks
0. 依存関係の検証
開始する前に必要なツールを確認してください。
Constraints:
- 必要なツールが不足している場合、ユーザーに通知する必要があります
aws sts get-caller-identityで認証情報を確認する必要があります
IAM権限の詳細についてはreferences/iam-permissions.mdを参照してください。
1. リクエストの分類
| ユーザーの意図 | ワークフロー |
|---|---|
| 新しいバケットをセキュアにする | A: 新しいバケットのセキュア化 |
| 既存のバケットを監査/レビューする | B: 既存バケットの監査 |
| 特定の検出結果を修正する | C: 問題の修復 |
| 暗号化を設定する | D: 暗号化の設定 |
| ロギング/監視を有効にする | E: 監視の有効化 |
Constraints:
- すべての必須パラメータを事前に確認する必要があります
- 書き込み操作を実行する前に、バケット名とリージョンを確認する必要があります
- ユーザーコンテキストから明確に述べられている場合、リージョンを推測することができます
- 書き込み操作前に
aws iam simulate-principal-policyを実行して権限を検証する必要があります - 書き込みコマンドを表示し、実行前に確認を待つ必要があります
put-bucket-policy セーフティルール
これらのルールは、put-bucket-policyを呼び出すすべてのワークフローに適用されます:
- 既存のポリシーを最初に取得する必要があります(
aws s3api get-bucket-policy) —put-bucket-policyはポリシー全体を置き換えます - ポリシーが存在する場合、修正前にバックアップを取得する必要があります:
aws s3api get-bucket-policy --bucket <name> --output text > backup-policy-$(date +%s).json NoSuchBucketPolicyが返される場合、新しいポリシーで進めます — バックアップは不要です- 新しいステートメントを既存のポリシーのStatement配列にマージする必要があります(存在する場合)
- マージされたJSON構文をを適用前に検証する必要があります(例:
echo '<policy>' | python3 -m json.tool) put-bucket-policyコマンド全体を表示し、実行前に確認を待つ必要があります
2. ワークフロー A — 新しいバケットのセキュア化
完全なCLI手順についてはreferences/workflows.mdを参照してください。
必須ステップ (順序通りに実行し、スキップしないこと):
--bucket-namespace account-regionalでバケットを作成- バージョニングを有効化
- 暗号化を有効化 (SSE-S3 + Bucket Keys + SSE-Cブロック)
- ロギングを有効化 (ユーザーにどのオプションを選択するか確認 — 条件付き)
DenyInsecureTransportバケットポリシーでHTTPSのみを強制- ABACを有効化
Constraints:
-
create-bucket呼び出しで--bucket-namespace account-regionalを渡す必要があります — これはオプションではなく必須です。例:aws s3api create-bucket --bucket <name> --bucket-namespace account-regional --region <region> -
Block Public Accessを変更してはいけません — S3は新しいバケットではデフォルトで有効にします
-
ACLの所有権コントロールを変更してはいけません — S3はデフォルトでACL(
BucketOwnerEnforced)を無効にします -
aws:SecureTransportがfalseの場合にs3:*を拒否するDenyInsecureTransportステートメントを持つバケットポリシーを適用する必要があります — これは必須です。例:aws s3api put-bucket-policy --bucket <name> --policy '{"Version":"2012-10-17","Statement":[{"Sid":"DenyInsecureTransport","Effect":"Deny","Principal":"*","Action":"s3:*","Resource":["arn:aws:s3:::<name>/*","arn:aws:s3:::<name>"],"Condition":{"Bool":{"aws:SecureTransport":"false"}}}]}' -
ステップ4の前に、ユーザーにどのロギングオプションを望むか確認する必要があります
-
ステップ4と5でput-bucket-policyセーフティルールに従う必要があります
-
各ステップが成功したことを確認してから進める必要があります
3. ワークフロー B — 既存バケットの監査
完全なチェックリストについてはreferences/audit-checklist.mdを参照してください。
Constraints:
- 検出結果を報告する前に、すべての読み取り専用監査コマンドを実行する必要があります
- 監査中に書き込みや変更コマンドを実行してはいけません
- 各コントロールをPASS/FAIL/NOT CONFIGUREDで重大度付きで報告する必要があります
- ロギングについて: S3サーバーアクセスロギングまたはCloudTrailデータイベントのいずれかが有効な場合はPASSを報告; 両方が無効な場合のみNOT CONFIGUREDを報告します
4. ワークフロー C — 問題の修復
問題タイプ別の修正コマンドについてはreferences/remediation.mdを参照してください。
Constraints:
- 修正を適用する前に問題タイプを特定する必要があります
- ポリシーを修正する際はput-bucket-policyセーフティルールに従う必要があります
- 修正を適用した後、関連する監査チェックを再実行して解決を確認する必要があります
5. ワークフロー D — 暗号化の設定
暗号化オプションとコマンドについてはreferences/encryption.mdを参照してください。
Constraints:
- ユーザーが明示的にKMSをリクエストしない限り、SSE-S3 with S3 Bucket Keys and SSE-Cブロックをデフォルトにする必要があります
- SSE-KMSを使用する場合、カスタマーマネージドキーを使用する必要があります — AWSマネージドキーである
aws/s3キーは決して使用してはいけません - カスタマーマネージドKMSキーはエイリアスではなく完全なARNで指定する必要があります
- すべての設定に
BucketKeyEnabled: trueとBlockedEncryptionTypes: [SSE-C]を含める必要があります - 注: S3 APIは
aws/s3とエイリアスをエラーなしで受け入れます — エージェント強制の制約です。適用後にget-bucket-encryptionで検証してください。
6. ワークフロー E — 監視の有効化
完全なCLI手順についてはreferences/workflows.mdを参照してください。
Constraints:
- GuardDutyディテクターを作成する前に、既に存在するかどうかを確認する必要があります
- CloudTrailコマンドではバケットのリージョンではなく、トレイルのホームリージョンを使用する必要があります
- 4つの推奨されるコアAWS Config ルールをすべて有効にする必要があります
トラブルシューティング
ObjectLockConfigurationNotFoundError — Object Lockは有効になっていません。失敗ではなく、NOT CONFIGUREDとして扱ってください。
監査コマンドのAccessDenied — IAMポリシー、バケットポリシー、Block Public Access、VPCエンドポイントポリシー、SCP/RCPを確認してください。aws iam simulate-principal-policyを使用して診断してください。
put-bucket-policyが既存のステートメントをサイレントに削除する — put-bucket-policyセーフティルールを参照してください。
GuardDutyのBadRequestException: detector already exists — 最初にaws guardduty list-detectorsを実行; リストが空の場合のみcreate-detectorを呼び出します。
CloudTrailの変更が反映されない — バケットのリージョンではなく--region <trail-home-region>を使用していることを確認してください。aws cloudtrail describe-trails --query 'trailList[*].[Name,HomeRegion]'で見つけてください。
その他のリソース
references/iam-permissions.md— ワークフロー別IAM権限references/audit-checklist.md— コントロール別チェックリスト(重大度とパス条件付き)references/encryption.md— 暗号化オプション、KMSガイダンス、SSE-Cブロックreferences/remediation.md— 一般的な検出結果の修正コマンドreferences/workflows.md— ワークフローAとEの完全なCLIコマンドシーケンス- AWS S3 Security Best Practices
- AWS Well-Architected Security Pillar
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- aws
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/aws/agent-toolkit-for-aws / ライセンス: Apache-2.0
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。