hf-cloud-aws-context-discovery

Par huggingface · skills

Découvrez le contexte AWS local de l'utilisateur (profil actif, région, ID de compte, identité de l'appelant) au début de toute tâche AWS. Utilisez ce skill avant tout autre travail AWS — déploiement sur SageMaker, création de ressources, appels aux API AWS, ou toute opération touchant un compte AWS. Utilisez-le en particulier lorsque l'utilisateur n'a pas spécifié de région ou de profil explicitement, lorsqu'il dit des choses comme « utilise mon compte AWS », « déploie sur AWS », « utilise mon profil », ou lorsque vous êtes sur le point d'effectuer un appel AWS CLI ou SDK. Ne devinez jamais la région ou l'ID de compte — utilisez toujours ce skill pour les lire depuis la configuration locale en premier.

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

Découverte de contexte AWS

Avant de faire du travail AWS, lisez la configuration AWS locale de l'utilisateur. Ne devinez pas la région et ne demandez pas à l'utilisateur des choses que sa configuration répond déjà.

Ce qu'il faut découvrir

Exécutez ces commandes au début du travail AWS et mémorisez les résultats pour le reste de la session.

1. Profil actif

Variable d'env AWS_PROFILE, sinon default. Si l'utilisateur a mentionné un profil dans son prompt, cela prévaut. Si le profil nommé n'existe pas dans ~/.aws/config, signalez-le clairement.

2. Région

Ordre de résolution — arrêtez-vous au premier qui produit une valeur :

  1. Région que l'utilisateur a explicitement nommée dans cette conversation
  2. Variable d'env AWS_REGION
  3. Variable d'env AWS_DEFAULT_REGION
  4. Champ region du profil actif dans ~/.aws/config
  5. Demander à l'utilisateur — mais seulement après que les quatre premiers aient échoué

Ne recourez pas à us-east-1 ou à un autre défaut codé en dur.

3. Identifiants, ID de compte, ARN du demandeur

aws sts get-caller-identity --profile <profile> --region <region>

Trois objectifs en un appel : confirme que les identifiants sont valides (arrêtez si ce n'est pas le cas), retourne l'ID Account (nécessaire pour la construction d'ARN), retourne l'Arn du demandeur.

4. Identifier les principaux SSO / assumed-role

Le champ Arn vous indique quel type de principal c'est. Le modèle compte car il détermine les opérations IAM que le demandeur peut faire.

Modèle d'ARN Type Capacité d'écriture IAM
arn:aws:iam::<acct>:user/<name> Utilisateur IAM Dépend des politiques attachées
arn:aws:sts::<acct>:assumed-role/AWSReservedSSO_<...>/<email> Rôle assumed SSO Typiquement aucune — impossible de créer/modifier des rôles IAM
arn:aws:sts::<acct>:assumed-role/<role>/<session> Rôle assumed régulier Dépend du rôle

Si le demandeur utilise SSO, signalez ceci immédiatement avant que des skills ultérieurs frappent iam:CreateRole et échouent :

Heads up: you're authenticated via SSO (AWSReservedSSO_<PermissionSet>_...). SSO principals usually can't create IAM roles directly. If we need a SageMaker execution role, I'll look for an existing one first — if none exists, you'll need to ask whoever manages your AWS access to create one.

C'est la chose la plus impactante que cette skill fait. La signaler maintenant transforme une erreur de déploiement confuse en milieu de parcours en une conversation de cinq secondes.

Commandes à exécuter

# Profil et région effectifs (plus rapide que d'analyser les fichiers de config)
aws configure list

# Valider les identifiants et obtenir l'identité
aws sts get-caller-identity
aws sts get-caller-identity --profile <profile-name>  # si un profil a été nommé

aws configure list gère les surcharges de variables d'env et affiche les valeurs effectives résolues. Préférez-le à l'analyse vous-même de ~/.aws/config. Si vous devez lire la config brute (p. ex. pour lister les profils), ~/.aws/config et ~/.aws/credentials sont des fichiers INI simples — lecture seule.

Ce qu'il faut rapporter

Une ou deux lignes, pas un mur de texte :

Working with profile my-profile in eu-west-1, account 123456789012. You're authenticated via SSO, so we'll need to use an existing IAM role rather than create one.

Ne demandez pas à l'utilisateur de confirmer la région que vous venez de lire dans sa config — il l'a configurée ; c'est la confirmation.

Si quelque chose ne va pas (identifiants expirés, profil inexistant, pas de région nulle part), arrêtez-vous et signalez l'erreur spécifique avant de continuer.

Skills similaires