Il s'agit plus d'une vérification d'intégrité car j'ai résolu le problème mais je ne suis pas convaincu que je l'ai fait de manière intelligente.AWS - Supposons que IAM utilise PowerShell sur une instance
Le problème
J'ai quelques cas qui ont été attribués un rôle IAM qui leur permettent d'accéder à un seau à S3. Je dois ensuite exécuter des scripts PowerShell qui accèderont à ce seau S3 pour télécharger certains objets.
La solution
Pour obtenir/définir les informations d'identification à utiliser que j'ai écrit cette fonction PowerShell:
function Set-MyInstanceProfileCredentials {
param(
[parameter()]
[string]
$StoredCredentialsName = "MyInstanceProfileCredentials"
)
$Uri = "http://169.254.169.254/latest/meta-data/iam/security-credentials/"
Write-Verbose "Retrieving instance profile from $($Uri)"
$Uri = "$Uri$(Invoke-RestMethod -Uri $Uri)"
Write-Verbose "Retrieving security credentials from $($Uri)"
$Response = Invoke-RestMethod -Uri $Uri
Set-AWSCredentials -AccessKey $Response.AccessKey -SecretKey $Response.SecretAccessKey -StoreAs $StoredCredentialsName
Get-AWSCredentials -StoredCredentials $StoredCredentialsName
}
Puis, quand je dois exécuter une applet de commande PowerShell à partir du module AWS Je viens appelez cette fonction en premier.
Cependant, je ne peux pas oublier que j'ai oublié quelque chose du module AWS PowerShell qui s'occupe déjà de cela pour moi.