Questo è più un controllo di integrità perché ho risolto il problema, ma non sono convinto di averlo fatto in modo intelligente.AWS: si supponga che IAM utilizzi PowerShell su un'istanza
Il problema
devo alcuni casi che è stato assegnato un ruolo IAM che permettono loro di accedere un secchio di S3. Devo quindi eseguire alcuni script PowerShell che accederanno al bucket S3 per scaricare alcuni oggetti.
La soluzione
Per ricevere/impostare le credenziali da utilizzare che ho scritto questa funzione 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
}
Poi, quando ho bisogno di eseguire un cmdlet di PowerShell dal modulo AWS ho appena chiama prima questa funzione
Tuttavia non riesco a scuotere la sensazione che mi sia sfuggito qualcosa dal modulo AWS PowerShell che si sta già occupando di questo per me.