hf-cloud-aws-context-discovery について
クラウド操作の前にローカルの AWS コンテキストを調べるスキルです。AWS 利用者向けに、アクティブなプロファイルとリージョンを解決し、認証情報を検証して SSO やロールの身元を確認します。
主な機能
- 01アクティブな AWS プロファイルの解決
- 02優先順位に基づくリージョンの決定
- 03認証情報の検証とアカウント情報の取得
- 04SSO と引き受けロールの識別
- 05設定や認証情報のエラー通知
活用シーン
- 01AWS 作業前のプロファイルとリージョン確認
- 02AWS の身元とアカウント情報の検証
- 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. リージョン
以下の順序で確認し、値が見つかった時点で終了します。
- この会話でユーザーが明示したリージョン
AWS_REGION環境変数AWS_DEFAULT_REGION環境変数~/.aws/configのアクティブなプロファイルにあるregionフィールド- ユーザーに尋ねる。ただし、最初の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 ロールを新規作成するのではなく、既存のロールを使用する必要があります。
設定から読み取ったリージョンについて、ユーザーに確認を求めないでください。ユーザー自身が設定した値が確認結果です。
問題がある場合(認証情報の有効期限切れ、プロファイルが存在しない、どこにもリージョンが設定されていない)は、続行する前に停止し、具体的なエラーを伝えてください。