取得するためのCmdletが見つからなかったので、やり方を模索してみました。
PS>(Invoke-WebRequest "http://169.254.169.254/latest/meta-data/iam/info").Content -match "arn:.*:.*:.*:[0-9]{12}:.*" | %{$matches[0] -split ":"| select -index 4} 012345678912
メタデータのIAM情報から取得してみる。JSONを読み取ってARN変換。ARNの5個目の項目を取得。
PS>((Invoke-WebRequest "http://169.254.169.254/latest/meta-data/iam/info").Content | ConvertFrom-Json).InstanceProfileArn -split ":" | select -Index 4 012345678912
ARNを取ればよいという事なら他の取り方もありますね。
PS>(Get-IAMUsers)[0].Arn -split ":" | select -Index 4 012345678912
ARN以外だとリソースのOwnerもアカウントID。
PS>(Get-EC2SecurityGroup -GroupName "Default").OwnerId
012345678912
実行しているEC2インスタンスのOwnerを取得してみたり。
PS>(Get-EC2Instance -Instance (Invoke-WebRequest "http://169.254.169.254/latest/meta-data/instance-id").Content).OwnerId
012345678912
今のところ一番マシ。
PS>((Invoke-WebRequest "http://169.254.169.254/latest/dynamic/instance-identity/document").Content | ConvertFrom-Json).accountId
012345678912
どれも微妙ですね。もっと良い方法見つけたら追記します。