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 :
- Région que l'utilisateur a explicitement nommée dans cette conversation
- Variable d'env
AWS_REGION - Variable d'env
AWS_DEFAULT_REGION - Champ
regiondu profil actif dans~/.aws/config - 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-profileineu-west-1, account123456789012. 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.