AWSのIAMユーザー一覧をAWS Tools for PowerShell Coreで取得

メモとして。

# AWS Tools for PowerShell Core環境の構築

Windows 10にPowerShell Core for Windowsをインストール。

* [Installing PowerShell Core on Windows - PowerShell | Microsoft Docs](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-windows?view=powershell-6)
    * Linuxの場合は[Installing PowerShell Core on Linux - PowerShell | Microsoft Docs](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-6)参照。
    * MacOSの場合は[Installing PowerShell Core on macOS - PowerShell | Microsoft Docs](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-macos?view=powershell-6)参照。

PowerShell Core 6を起動し、AWS Tools for PowerShell Coreをインストール。

```
PS> Install-Module -Name AWSPowerShell.NetCore -AllowClobber
```

# AWS Tools for PowerShell Core環境の確認

ExecutionPolicyが`RemoteSigned`になっていることを確認。

```
PS> Get-ExecutionPolicy
RemoteSigned
```

`AWSPowerShell.NetCore`が読み込み可能になっていることを確認。

```
PS> Get-Module -ListAvailable

    Directory: C:\Users\tsuka\OneDrive\ドキュメント\PowerShell\Modules

ModuleType Version    Name                                PSEdition ExportedCommands
---------- -------    ----                                --------- ----------------
Binary     3.3.590.0  AWSPowerShell.NetCore               Desk
```

# IAMユーザーの取得

モジュールの読み込みと確認。AWS Toolsは自動的には読み込まれない。

```
PS> Import-Module AWSPowerShell.NetCore
PS> Get-Module                                                                                           
ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Binary     3.3.590.0  AWSPowerShell.NetCore               {Add-AASScalableTarget, Add-ACMCertificateTag, Add-ADSConfig…
```

認証情報の登録と確認。一度やればいい（アクセスキーやシークレットキーを新しくしたときはやり直す）。

```
PS> Set-AWSCredential -AccessKey XXXXXXXXXXXXXXXXXXXX -SecretKey XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -StoreAs MyAwsCred
PS C:\Users\tsuka> Get-AWSCredential -ListProfileDetail                                                                 
ProfileName StoreTypeName         ProfileLocation
----------- -------------         ---------------
MyAwsCred   NetSDKCredentialsFile
```

認証情報の読み込み。

```
PS> Set-AWSCredential -ProfileName MyAwsCred
```

IAMユーザーの取得。`UserName`と`CreateDate`フィールドの表にして表示している。

```
PS> Get-IAMUsers | Select-Object -Property UserName,CreateDate | Format-Table                           
UserName                      CreateDate
--------                      ----------
AWS-SecretManager-User        2019/05/14 16:52:26
CircleCI                      2019/04/19 18:06:15
tsukamoto                     2019/06/04 15:16:40
```

# 参考

* [Installing PowerShell Core on Windows - PowerShell | Microsoft Docs](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-windows?view=powershell-6)
* [Installing PowerShell Core on Linux - PowerShell | Microsoft Docs](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-6)
* [Installing PowerShell Core on macOS - PowerShell | Microsoft Docs](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-macos?view=powershell-6)
* [Windows ベースのコンピュータでの AWS Tools for PowerShell のセットアップ - AWS Tools for PowerShell](https://docs.aws.amazon.com/ja_jp/powershell/latest/userguide/pstools-getting-set-up-windows.html)
* [AWS 認証情報の使用 - AWS Tools for PowerShell](https://docs.aws.amazon.com/ja_jp/powershell/latest/userguide/specifying-your-aws-credentials.html)