生成AIで情報漏えいが増える本当の理由 — 「検索者がAIになった」時代の脅威モデルと3層防御

name: security-check description: Claude Code 利用における情報漏えいリスクをチェックする。 Auto Memory や CLAUDE.md への機密混入、.env の gitignore 漏れ、機密ファイルの存在などを検査する。 Claude Code の利用に関する情報漏えいリスクをチェックしてください。 チェック対象 以下の 4 カテゴリを順番に検査する。 1. Auto Memory の機密スキャン ~/.claude/ 配下の memory ファイルを検査する: 以下のパスを Glob で列挙する: ~/.claude/projects/*/memory/*.md ~/.claude/projects/*/memory/**/*.md 各ファイルを Read で読み込み、以下のパターンを Grep で検出する: API キー・トークン: (?i)(api[_-]?key|secret[_-]?key|access[_-]?token|bearer)\s*[:=]\s*\S+ パスワード: (?i)(password|passwd|pwd)\s*[:=]\s*\S+ AWS 認証情報: (?i)(AKIA[0-9A-Z]{16}|aws[_-]?secret) 接続文字列: (?i)(mysql|postgres|redis|mongodb):\/\/\S+ 個人情報パターン: メールアドレス、電話番号、マイナンバーらしき数字列 金額・契約情報: (?i)(契約金額|単価|請求|売上)\s*[::]\s*[\d,¥¥$]+ 顧客 ID の具体値: (?i)(顧客id|customer[_-]?id|ユーザーid|user[_-]?id)\s*[:=:]\s*\d+ 検出があれば、ファイルパス・行番号・該当箇所を報告する 2. CLAUDE.md の機密スキャン プロジェクトの CLAUDE.md およびグローバルの ~/.claude/CLAUDE.md を検査する: 両ファイルを Read で読み込む チェック 1 と同じパターンで Grep 検査する 加えて、以下も確認する: URL にトークンやキーが含まれていないか(?token=, ?key=, ?secret=) 内部 IP アドレスやホスト名が含まれていないか CLAUDE.md はリポジトリにコミットされるため、検出時は即時対応を推奨として強調する 3. 機密ファイルの gitignore チェック プロジェクトルートで以下を確認する: ...

2026年3月2日 · 1 分

Agent Plugins for AWS — AI コーディングエージェントに AWS の専門知識を装着する

Agent Plugins for AWS — AI コーディングエージェントに AWS の専門知識を装着する 紹介ポスト: moritalous 公式ブログ: Introducing Agent Plugins for AWS | AWS Developer Tools Blog リポジトリ: awslabs/agent-plugins はじめに 2026年2月、AWS は Agent Plugins for AWS をオープンソースで公開した。Claude Code や Cursor といった AI コーディングエージェントに AWS の専門知識を「スキル」として装着するプラグインライブラリである。 これは単なる CLI ラッパーではない。AI エージェントがアーキテクチャ設計 → コスト見積もり → IaC 生成 → デプロイまでを一貫して実行できる「AWS ドメイン能力層」を追加するもの。 従来: 開発者が AWS ドキュメントを読み → 設計を考え → CDK/CFn を書き → デプロイ 今後: 「deploy to AWS」と言うだけ → AI が全工程を実行(人間は確認・承認のみ) Agent Plugin とは何か プラグインの構成要素 Agent Plugin は4つの部品を1つのパッケージにまとめたもの。 ...

2026年2月27日 · 3 分

# CloudFront → ALB → Django 構成で API レスポンスの URL スキームが http:// になる問題と解決策

CloudFront → ALB → Django 構成で API レスポンスの URL スキームが http:// になる問題と解決策 はじめに AWS の CloudFront + ALB + ECS Fargate で Django REST Framework (DRF) の API サーバーを運用していたところ、API レスポンスに含まれる URL が http:// で返されるという問題に遭遇しました。本記事では原因の調査過程と、最終的な解決策を紹介します。 構成 Client (HTTPS) ↓ CloudFront (SSL終端, us-east-1) ↓ HTTP ALB (HTTP:80のみ受付, ap-northeast-1) ↓ HTTP ECS Fargate (Gunicorn + Uvicorn, port 9000) ↓ Django REST Framework CloudFront がSSLを終端し、ALB へは HTTP で転送する構成です。 問題 DRF の API ルート (/api/rest/) にアクセスすると、レスポンスに含まれる URL がすべて http:// になっていました。 ...

2026年2月24日 · 2 分

AWS RedShift

CDC AWS環境で実現するには、主に以下の2つの方法が主流です。 AWS DMS (Database Migration Service) の利用 (実績が豊富で柔軟性が高い) Amazon RDS ゼロ ETL 統合 (最もシンプルで最新の選択肢) それぞれの構成と特徴を詳しく解説します。 1. AWS DMS (Database Migration Service) を利用した構成 AWS DMSは、データベース間のデータ移行や継続的なレプリケーション(CDC)を行うための専用サービスです。 構成の概要 RDS for MySQLの設定: MySQLの**バイナリログ(Binlog)**を有効にし、フォーマットをROWに設定します。DMSはこれを読み取って変更を追跡します。(CDCの必須設定) AWS DMS コンポーネント: レプリケーションインスタンス: データ移行(レプリケーション)を実行する専用のEC2インスタンスです。ソースとターゲットの間でデータを読み書きし、マッピングや変換を行います。 ソースエンドポイント: RDS for MySQLへの接続情報を定義します。 ターゲットエンドポイント: Amazon Redshiftへの接続情報を定義します。 移行タスク: CDC(継続的レプリケーション)を定義するコア設定です。どのテーブルを移行するか、フルロード後にCDCを継続するかなどを指定します。 データフロー: RDS for MySQLで変更(UPDATE/INSERT/DELETE)が発生すると、その変更がBinlogに記録されます。 DMSのレプリケーションインスタンスがBinlogを継続的に読み取ります。 DMSは変更データをRedshiftに適した形式に変換し、Redshiftクラスターに書き込みます(通常はS3経由でCOPYコマンドを使用)。 メリット・デメリット 項目 メリット デメリット 柔軟性 非常に高く、多種多様なデータベースに対応。テーブルやスキーマのフィルタリング、データ変換(トランスフォーメーション)も可能。 コスト レプリケーションインスタンスの料金が継続的に発生する。 運用 インスタンスの管理(サイズ選定、冗長性など)や、Binlogの保持期間の管理が必要。 安定性 実績が豊富で安定しているが、タスク設定やインスタンスサイズによってはチューニングが必要になる場合がある。 2. Amazon RDS ゼロ ETL 統合 (推奨) これは、2023年以降に登場した新しい機能で、最もシンプルかつ管理負担の少ないCDCの方法です。現時点ではAurora MySQLからRedshiftへの統合が中心ですが、RDS for MySQLへの対応も進んでいます。 ...

2025年1月28日 · 1 分

AWS: Device Farm

AWS Device Farm AWS Device Farmとは?利点と利用方法も紹介します! AWS Device Farmとは?実機を使ったモバイルアプリのテストについて解説 AWS Device Farmは、実際のモバイルデバイスやデスクトップブラウザを使用してアプリケーションをテストするサービスです。以下のような仕組みで動作しています: 実機デバイスの使用: AWS Device Farmは、エミュレーターやシミュレーターではなく、実際のスマートフォンやタブレットを使用します。 これにより、メモリ使用量、CPU負荷、位置情報、メーカーやキャリアによるファームウェアの違いなど、実際の使用環境に近い条件でテストが可能です 1 2。 リモートアクセス: 開発者はAWSのクラウド上にあるこれらの実機デバイスにリモートでアクセスし、アプリケーションをインストールしてテストを実行します。 これにより、物理的なデバイスを手元に用意する必要がなくなります 1 2。 自動化と手動テスト: Device Farmは、AppiumやEspressoなどのオープンソースのテストフレームワークを使用して自動テストを実行できます。 また、リモートアクセスを利用して手動でのテストも可能です 1 2。 テスト結果の収集と分析: テストの実行中に、動画、ログ、パフォーマンスデータなどが収集され、これらのデータを分析することで、アプリケーションの問題点を迅速に特定し、修正することができます 1 2。 スケーラビリティ: 複数のデバイスやブラウザで同時にテストを実行できるため、テストスイートの実行時間を短縮し、効率的にテストを進めることができます 1 2。 このように、AWS Device Farmは実際のデバイスを使用して、より現実に即したテスト環境を提供し、アプリケーションの品質向上を支援しています。

2024年12月9日 · 1 分

Grafana

Grafana Grafanaでかっけぇダッシュボード作るよ!(構築・設定編) ネットワークメトリクスを視覚化してみた(collectd + Graphite + Grafana) 収集:collectd - SNMPでルータからメトリクスを収集する 蓄積:Graphite - 収集したメトリクスを保存する 描画:Grafana - メトリクスを時系列で表示する AWS AWSの利用料金をGraphina(Grafana)を使って可視化する事例について、いくつかの方法があります。以下はその一例です。 事例: GrafanaでAWSのコストを可視化 請求メトリクスの取得: まず、AWS側で請求額のメトリクスを取得します。AWS Cost ExplorerやCloudWatchを使用して、必要なデータを収集します。 認証情報の作成: Grafanaで使用するためのIAMユーザーを作成し、必要なポリシー(例: CloudWatchReadOnlyAccess)をアタッチします。アクセスキーとシークレットキーを取得します。 データソースの設定: GrafanaのデータソースとしてCloudWatchを設定します。取得したアクセスキーとシークレットキーを使用して認証を行います。 ダッシュボードのインポート: Grafanaのダッシュボードテンプレートを使用して、AWSのコストを可視化するダッシュボードをインポートします。例えば、「AWS Billing Dashboard」というテンプレートを使用することができます¹。 カスタマイズ: インポートしたダッシュボードを自分のニーズに合わせてカスタマイズします。不要なデータを削除したり、必要な情報を追加したりします。 具体的な手順 IAMユーザーの作成: 1 2 3 aws iam create-user --user-name <username> aws iam attach-user-policy --user-name <username> --policy-arn arn:aws:iam::aws:policy/CloudWatchReadOnlyAccess aws iam create-access-key --user-name <username> Grafanaでの設定: Grafanaのメニューから「Connections > Data sources > Add new data source」を選択し、CloudWatchをデータソースとして追加します。 IAMユーザーのアクセスキーとシークレットキーを入力し、リージョンを us-east-1 に設定します。 ダッシュボードのインポート: ...

2024年10月1日 · 2 分

AWS: ECS: Fargate: pidMode

AWS ECS Fargate: pidMode AWS FargateのpidModeは、タスク内のコンテナ間でプロセスID(PID)名前空間を共有するための設定です。これにより、同じタスク内のコンテナが互いのプロセス情報にアクセスできるようになります¹²。 例えば、モニタリング用のサイドカーコンテナが、他のコンテナのプロセス情報を取得して監視することが可能になります。FargateではpidMode=taskのみがサポートされており、これを有効にすると、タスク内のすべてのコンテナが同じPID名前空間を共有します²。 この機能は、特にセキュリティや監視の観点から便利で、プロセスの監視やシステムコールのトラッキングが容易になります¹。 ソース: Copilot との会話、 2024/9/2 (1) 【アップデート】ECS on Fargateでサイドカーからプロセス …. https://dev.classmethod.jp/articles/ecs-on-fargate-support-shared-pid-namespace/. (2) AWS Fargate がプロセス ID 名前空間の共有とカーネルパラメータ …. https://aws.amazon.com/jp/about-aws/whats-new/2023/08/aws-fargate-pid-namespace-sharing-kernel-configuration/. (3) [ECS/Fargate] [request]: Support pidMode: task on Fargate #676. https://github.com/aws/containers-roadmap/issues/676. (4) 【アップデート】ECS on FargateがsystemControlsをサポートし …. https://dev.classmethod.jp/articles/ecs-on-fargate-support-systemcontrols/. (5) Amazon ECS on AWS Fargate - Datadog Infrastructure and …. https://docs.datadoghq.com/integrations/ecs_fargate/. pidModeを指定しなくてもサイドカー構成を取ることは可能です。pidModeは、特定のユースケースでプロセスID名前空間を共有するためのオプションですが、サイドカーコンテナ自体は他の方法で連携できます。 例えば、サイドカーコンテナは以下のような方法で他のコンテナと連携します: ネットワーク共有: 同じタスク内のコンテナはデフォルトで同じネットワーク名前空間を共有するため、互いに通信できます。 ボリューム共有: データを共有するために、同じボリュームをマウントすることができます。 環境変数や設定ファイル: コンテナ間で設定情報を共有するために使用できます。 これらの方法を組み合わせることで、pidModeを使用しなくても効果的なサイドカー構成を実現できます。 記事 AWS Fargate がプロセス ID 名前空間の共有とカーネルパラメータ構成のサポートを開始 Terraformを使ってAWSのECS Fargate(Django+Nginx)を構築しよう!

2024年9月2日 · 1 分

メモ

メモ Rye 【Python】Rye で始める Python プロジェクト Python パッケージ管理ツール比較: Poetry vs Pipenv vs Rye https://rye.astral.sh/ Contentful : Organization は削除できない 管理者の最後のアカウントが削除されたら削除できる AWS Secret Manager: 再作成 このエラーは、Secrets Manager がシークレットを直ちに削除せず、復旧期間(通常 7 日間)を設けているために発生します。この期間中は同じ名前のシークレットを再作成することができません ¹。 ただし、AWS CLI を使用して、復旧期間を設けずにシークレットを完全に削除することが可能です。以下の手順を試してみてください: 削除予定のシークレット ID を取得: AWS Secrets Manager コンソールを開きます。 ナビゲーションペインで「Secrets」を選択します。 「設定」アイコンを選択し、「詳細設定」で「削除予定のシークレットを表示」を選択します。 「Secrets」ペインで、削除予定のシークレットの ID を確認します。 AWS CLI を使用してシークレットを完全に削除: 以下のコマンドを実行します(your-secret-nameをシークレット ID または ARN に、your-regionを AWS リージョンに置き換えてください): 1 aws secretsmanager delete-secret --secret-id your-secret-name --force-delete-without-recovery --region your-region 削除が完了したことを確認: 以下のコマンドを実行して、シークレットが完全に削除されたことを確認します: 1 aws secretsmanager describe-secret --secret-id your-secret-name --region your-region 「Secrets Manager can’t find the specified secret」というエラーが表示されれば、シークレットは正常に削除されています。 これで、同じ名前のシークレットを再作成できるようになります ¹。 ...

2024年8月1日 · 6 分

JWT in AWS Lambda

JWT in AWS Lambda API Gateway- https://gist.github.com/bendog/44f21a921f3e4282c631a96051718619 Controlling access to HTTP APIs with JWT authorizers JWT オーソライザーを使用した HTTP API へのアクセスの制御 API Gateway の JWT オーソライザーで Google ID トークンを検証してみた API Gateway JWT Authorizer メモ API Gateway + Lambda で REST API 開発を体験しよう [10 分で完成編] 【生成 AI】AWS Lambda(Python) と LangChain(LCEL) を使ってストリーミング出力したい https://github.com/aws-samples/bedrock-claude-chat slack と AWS で LLM Chatbot を Serverless で運用する Lambda コンテナ Lambda のコンテナイメージを使用する Lambda コンテナイメージをローカルでテストする コンテナイメージで Python Lambda 関数をデプロイする コンテナイメージを使用して AWS Lambda 関数を作成する

2024年6月18日 · 1 分

Sorry Page

Sorry Page 運用 ALB で Sorry ページを実装する方法と運用上の考慮点 AWS Sorry Page 定番パターン整理(ソーリーページ/メンテナンスページ) CloudFront オリジンフェイルオーバー CloudFront のオリジンフェイルオーバーでオリジンとの接続タイムアウトやオリジン側で発生したエラーコード(5XX 系)をセカンダリのオリジン(ソーリーページ)へ自動的に遷移させます。 CloudFront でオリジン障害時に Sorry ページを表示したい エラーページ作成(SSG) Peclican で ファイル名をスラグ化させない: pelicanconf.py: 1 2 PATH_METADATA = r"(?P<path_no_ext>.*)\..*" ARTICLE_URL = ARTICLE_SAVE_AS = PAGE_URL = PAGE_SAVE_AS = "{path_no_ext}.html"

2024年6月11日 · 1 分