5

To jest bardziej sprawdzian poczytalności, ponieważ rozwiązałem problem, ale nie jestem przekonany, że zrobiłem to w inteligentny sposób.AWS - Załóżmy, że IAM używa PowerShell na instancji

Problem

Mam kilka wystąpień, które zostały przypisane IAM role, które pozwalają im uzyskać dostęp do wiadra S3. Następnie należy uruchomić niektóre skrypty PowerShell, które będą miały dostęp do tego zasobnika S3, aby pobrać niektóre obiekty.

Rozwiązanie

get/set poświadczenia używać Pisałem tę funkcję 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 
} 

Wtedy kiedy trzeba uruchomić apletu polecenia PowerShell z modułu AWS Właśnie najpierw wywołaj tę funkcję.

Jednak nie mogę otrząsnąć się z poczucia, że ​​coś przeoczyłem z modułu AWS PowerShell, który już się o to troszczy.

Odpowiedz

3

jednak nie mogę oprzeć się wrażeniu, że tęskniłem za coś z modułem AWS PowerShell, który jest już dbanie o to dla mnie.

:) - będziesz zachwycony, aby usłyszeć, że to po prostu działa po wyjęciu z pudełka rzeczywiście, czyli AWS Tools for Windows PowerShell jest budować na AWS SDK for .NET, która jest operowania tym automatycznie, patrz również Credentials Search Order:

Po uruchomieniu polecenia PowerShell Tools wyszukuje poświadczenia w następującej kolejności i używa pierwszego dostępnego zestawu.

[...]

6) Jeżeli używasz uruchamiając komendę na wystąpienie Amazon EC2, który jest skonfigurowany dla IAM roli, należy użyć instancji EC2 poświadczeń przechowywanych w profilu instancji.

Aby uzyskać więcej informacji o używaniu ról IAM w przypadku Amazon EC2 Instances, przejdź do AWS Developer Guide for .NET.