mcpField
H
hf-cloud-aws-context-discovery

hf-cloud-aws-context-discovery

github.com/huggingfaceクラウド・DevOps11.2k548 回インストール5 日前に更新
リポジトリ

hf-cloud-aws-context-discovery について

クラウド操作の前にローカルの AWS コンテキストを調べるスキルです。AWS 利用者向けに、アクティブなプロファイルとリージョンを解決し、認証情報を検証して SSO やロールの身元を確認します。

主な機能

  1. 01アクティブな AWS プロファイルの解決
  2. 02優先順位に基づくリージョンの決定
  3. 03認証情報の検証とアカウント情報の取得
  4. 04SSO と引き受けロールの識別
  5. 05設定や認証情報のエラー通知

活用シーン

  1. 01AWS 作業前のプロファイルとリージョン確認
  2. 02AWS の身元とアカウント情報の検証
  3. 03IAM リソースを書き込めるかの判断

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/huggingface/skills --skill hf-cloud-aws-context-discovery

インストール後、Claude Code で/hf-cloud-aws-context-discoveryを入力して読み込まれたか確認します。

詳細

AWS コンテキストの確認

AWS の作業を始める前に、ユーザーのローカル AWS 設定を読み取ってください。リージョンを推測したり、設定から分かる情報をユーザーに尋ねたりしないでください。

確認する内容

AWS の作業を始める際に以下を実行し、セッションの残りの間、結果を記憶しておいてください。

1. アクティブなプロファイル

AWS_PROFILE 環境変数を使用し、設定されていない場合は default を使用します。ユーザーがプロンプトでプロファイルを指定した場合は、そちらを優先します。指定されたプロファイルが ~/.aws/config に存在しない場合は、そのことを明確に伝えてください。

2. リージョン

以下の順序で確認し、値が見つかった時点で終了します。

  1. この会話でユーザーが明示したリージョン
  2. AWS_REGION 環境変数
  3. AWS_DEFAULT_REGION 環境変数
  4. ~/.aws/config のアクティブなプロファイルにある region フィールド
  5. ユーザーに尋ねる。ただし、最初の4つで見つからなかった場合に限ります

us-east-1 など、ハードコードされたデフォルト値を使用しないでください。

3. 認証情報、アカウント ID、呼び出し元 ARN
aws sts get-caller-identity --profile <profile> --region <region>

このコマンドを1回実行することで、3つの目的を果たします。認証情報が有効であることを確認し(無効なら停止します)、ARN の構築に必要な Account ID を取得し、呼び出し元の Arn を取得します。

4. SSO/ロール引き受けプリンシパルの識別

Arn フィールドからプリンシパルの種類を判別できます。パターンは、呼び出し元が実行できる IAM 操作を決定するため重要です。

ARN パターン種類IAM の書き込み権限
arn:aws:iam::<acct>:user/<name>IAM ユーザーアタッチされたポリシーによります
arn:aws:sts::<acct>:assumed-role/AWSReservedSSO_<...>/<email>SSO のロール引き受け通常はありません。IAM ロールを作成・変更できません
arn:aws:sts::<acct>:assumed-role/<role>/<session>通常のロール引き受けロールによります

呼び出し元が SSO の場合、後続のスキルが iam:CreateRole を実行して失敗する前に、すぐにそのことを伝えてください。

ご注意ください。現在、SSO(AWSReservedSSO_<PermissionSet>_...)で認証されています。SSO プリンシパルには通常、IAM ロールを直接作成する権限がありません。SageMaker 実行ロールが必要な場合は、まず既存のロールを探します。既存のロールがなければ、AWS アクセスを管理する担当者に作成を依頼する必要があります。

このスキルで最も効果の大きい作業です。ここで伝えておけば、デプロイの途中で分かりにくいエラーが発生する代わりに、5秒で状況を説明できます。

実行するコマンド

# Effective profile and region (faster than parsing config files)
aws configure list

# Validate credentials and get identity
aws sts get-caller-identity
aws sts get-caller-identity --profile <profile-name>  # if a profile was named

aws configure list は環境変数による上書きを処理し、解決済みの有効な値を表示します。~/.aws/config を自分で解析するより、こちらを優先してください。プロファイル一覧の取得などで生の設定ファイルを読む必要がある場合は、~/.aws/config と ~/.aws/credentials は通常の INI ファイルです。読み取り専用で扱ってください。

報告する内容

長々と説明せず、1~2行にまとめます。

プロファイル my-profile、リージョン eu-west-1、アカウント 123456789012 で作業します。SSO で認証されているため、IAM ロールを新規作成するのではなく、既存のロールを使用する必要があります。

設定から読み取ったリージョンについて、ユーザーに確認を求めないでください。ユーザー自身が設定した値が確認結果です。

問題がある場合(認証情報の有効期限切れ、プロファイルが存在しない、どこにもリージョンが設定されていない)は、続行する前に停止し、具体的なエラーを伝えてください。

コメント