Das ist mehr eine Plausibilitätsprüfung, weil ich das Problem gelöst habe, aber ich bin nicht überzeugt, dass ich es auf die clevere Art und Weise gemacht habe.AWS - Angenommen, IAM verwendet PowerShell für eine Instanz
Das Problem
Ich habe einige Instanzen, die eine IAM-Rollen zugewiesen wurden, die es ihnen ermöglichen, einen S3 Eimer zuzugreifen. Ich muss dann einige PowerShell-Skripts ausführen, die auf den S3-Bucket zugreifen, um einige Objekte herunterzuladen.
Die Lösung
zu erhalten/die Anmeldeinformationen festgelegt ich verwenden habe diese Powershell-Funktion geschrieben:
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
}
Dann, wenn ich ein Powershell-Cmdlets aus der AWS-Modul ausführen muß ich nur Rufen Sie diese Funktion zuerst auf.
Allerdings kann ich das Gefühl nicht abschütteln, dass ich etwas aus dem AWS PowerShell-Modul verpasst habe, das sich bereits darum kümmert.