Это скорее проверка на работоспособность, потому что я решил проблему, но я не убежден. Я сделал это разумно.AWS - Предположим, что IAM с использованием PowerShell на экземпляре
Проблема
У меня есть несколько экземпляров, которые были назначены СИА роли, которые позволяют им получить доступ к S3 ведро. Затем мне нужно запустить несколько сценариев PowerShell, которые будут обращаться к этому ведру S3, чтобы загрузить некоторые объекты.
Решение
Чтобы получить/установить полномочия использовать Я написал эту функцию 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
}
Затем, когда мне нужно запустить PowerShell командлет из модуля AWS я просто сначала вызовите эту функцию.
Однако я не могу поколебать ощущение, что что-то пропустил из модуля AWS PowerShell, который уже заботится об этом для меня.