前置き
社内から認証プロキシ経由でPowerShellコマンドレットを実行したいこと、
あると思います。
需要がニッチな上にPowerShell使いも少なく、情報も少ないのでメモとして残します。
環境
Microsoft Windows 7 Professional(64bit)
PSVersion 5.0.10586.117
AWS Tools for Windows PowerShell Version 3.3.53.1
認証プロキシによって弾かれた際はこのエラーが発生する。
PS C:\Windows\SysWOW64\WindowsPowerShell\v1.0> Get-IAMUser
Get-IAMUser : A WebException with status ProtocolError was thrown.At line:1 char:1
+ Get-IAMUser
+ ~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Amazon.PowerShe...etIAMUserCmdlet:GetIAMUserCmdlet) [Get-IAMUser], InvalidOpe
rationException
+ FullyQualifiedErrorId : Amazon.Runtime.AmazonServiceException,Amazon.PowerShell.Cmdlets.IAM.GetIAMUserCmdlet
認証プロキシに認証情報を入れる。
このあとから実行するコマンドレットは認証プロキシを超えてくれる。
毎回認証情報を入力させる場合
OneLiner.ps1
Set-AWSProxy -Credential (Get-Credential) -Hostname "example.org" -Port 10080
認証情報を固定してスクリプトなどで使用する場合
OneLiner.ps1
Set-AWSProxy -Hostname "example.org" -Port 10080 -Username "xxxx" -Password "pppp"
もしもEC2から使用する場合
こちらのユーザーガイドに記載のとおり、
BypassListパラメータでインスタンスメタデータ用IPアドレスは除外しましょう。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-proxy.html
OneLiner.ps1
Set-AWSProxy -Hostname "example.org" -Port 10080 -Username "xxxx" -Password "pppp" -BypassList "169.254.169.254"