5

這更像是一種完整性檢查,因爲我已經解決了這個問題,但我並不確信我已經做到了這一點。AWS - 假設在實例上使用PowerShell的IAM

的問題

我已分配的IAM的角色,使他們能夠訪問的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 
} 

然後,當我需要從AWS模塊我只是運行PowerShell命令首先調用這個函數。

但是我無法擺脫這種感覺,我錯過了已經爲我照顧的AWS PowerShell模塊。

回答

3

但是我不能動搖我已經錯過了已經爲我照顧這個的AWS PowerShell模塊的東西的感覺。

:) - 你會很高興地聽到,這只是工作開箱的確,即AWS Tools for Windows PowerShell是建立在AWS SDK for .NET,這是自動處理這一點,也Credentials Search Order看到:

運行命令時,PowerShell工具按以下順序搜索憑據並使用第一個可用集。

[...]

6)如果您使用的是運行上已經配置了IAM角色的Amazon EC2實例的命令,使用存儲在一個實例簡介EC2實例憑據。

有關爲Amazon EC2實例使用IAM角色的更多信息,請轉至AWS Developer Guide for .NET

相關問題