2015-12-07 23 views
0

我正在使用打包器供應Windows機器。我使用Powershell腳本來完成大部分配置。打包器和AWS憑據:CryptProtectData失敗

重要的供應步驟是從私有S3存儲桶下載一些軟件。在嘗試第一次設置AWS憑據我運行這個SNIPPIT:

echo "Configure AWS" 
echo "AWS_ACCESS_KEY_ID: ${env:AWS_ACCESS_KEY_ID}" 
echo "AWS_SECRET_ACCESS_KEY: ${env:AWS_SECRET_ACCESS_KEY}" 
echo "AWS_DEFAULT_REGION: ${env:AWS_DEFAULT_REGION}" 

Set-AWSCredentials -AccessKey ${env:AWS_ACCESS_KEY_ID} -SecretKey ${env:AWS_SECRET_ACCESS_KEY} -StoreAs default 

而當帕克運行它的計算機上總是得到一個錯誤:

amazon-ebs: Set-AWSCredentials : CryptProtectData failed. 
amazon-ebs: At C:\Windows\Temp\script.ps1:15 char:1 
amazon-ebs: + Set-AWSCredentials -AccessKey ${env:AWS_ACCESS_KEY_ID} -SecretKey 
amazon-ebs: ${env:AWS_SECR ... 

如果我直接在Windows實例它運行此命令工作正常。

感謝, 傑文

回答

0

PowerShell doc

PowerShell的工具可以使用以下兩種憑據店。

  • AWS開發工具包商店,加密您的憑據並將它們存儲在您的主文件夾中。適用於.NET的AWS開發工具包和適用於Visual的AWS工具包 Studio也可以使用AWS開發工具包商店。
  • 憑證文件,也位於您的主文件夾中,但將憑證存儲爲純文本。默認情況下,憑證文件是 存儲在這裏:`C:\ Users \ username.aws。 AWS開發工具包和AWS命令行界面也可以使用憑證文件。如果在AWS用戶上下文外部運行 腳本,請確保 包含您的憑證的文件被複制到所有用戶帳戶(本地系統和用戶)都可以訪問您的憑證的位置。

從谷歌搜索,似乎人們轉向使用BasicAWSCredentials

我不知道這是你可以做(​​取決於如果您使用的SDK或沒有),如果不是你可以使用在doc中描述的第二種方法並將變量存儲在C:\Users\username\.aws中,並使用S3命令和從此文件中存儲的憑證

+0

這有效。使用AWS憑證配置文件簡單創建一個'C:\ Users \ username \ .aws \ credentials'文件。 –