5

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.

Antwort

3

Allerdings kann ich das Gefühl nicht loswerden, dass ich etwas aus dem AWS PowerShell-Modul verpasst habe, das sich bereits darum kümmert.

:) - Sie werden begeistert sein zu hören, dass dies einfach aus der Box funktioniert in der Tat, das heißt die AWS Tools for Windows PowerShell basiert auf dem AWS SDK for .NET bauen, die dies automatisch zur Handhabung siehe auch Credentials Search Order:

Wenn Sie einen Befehl ausführen, sucht PowerShell Tools in der folgenden Reihenfolge nach Anmeldeinformationen und verwendet den ersten verfügbaren Satz.

[...]

6) Wenn Sie den Befehl auf einer Amazon EC2-Instanz verwenden, ausgeführt wird, die für eine IAM-Rolle konfiguriert ist, verwenden Sie EC2-Instanz Anmeldeinformationen in einem Instanzprofil gespeichert.

Weitere Informationen zum Verwenden von IAM-Rollen für Amazon EC2 Instances finden Sie unter AWS Developer Guide for .NET.

Verwandte Themen