AWS Powershell 检索 AWS 账号

AWS Powershell to retrieve AWS account number

有谁知道如何使用 AWS Powershell 获取 AWS 帐号?看起来没有可用的 API。

不直接。但是,您的帐户 ID 是您创建的 Arn 资源的一部分……以及自动为您创建的资源。一些资源还会将您列为 OwnerId。

Default Security Group是每个地区自动为您创建的,无法删除。这使它成为检索我们帐户 ID 的可靠候选者。

示例:

PS C:/> $accountId = @(get-ec2securitygroup -GroupNames "default")[0].OwnerId

PS C:/> $accountId
000011112222

我无法对其他提供的答案发表评论,因此我必须提供自己的解决方案作为轻微修改。

我相信所有组的 OwnerId 都是帐户 ID。但是,您可能没有 "default" 组。我建议省略 -GroupNames "default"。此外,我正在使用 SAML 令牌展示我的示例,因为这是我们使用 AD 授权的情况。

$awsAccountNumber = (get-ec2securitygroup -ProfileName saml -Region us-west-2)[0].OwnerId

希望这会有一些用处。

我使用 Get-STSCallerIdentity。

这是我使用的代码片段:

    foreach ($ProfileName in $Profiles){
    if ($ProfileName -match 'gov') { 
        Initialize-AWSDefaultConfiguration -ProfileName $ProfileName -Region us-gov-east-1
        $STSCallerIdentity = Get-STSCallerIdentity
    }
    else { 
        Initialize-AWSDefaultConfiguration -ProfileName $ProfileName -Region us-east-1 
        $STSCallerIdentity = Get-STSCallerIdentity
    }

漂亮又简单

(Get-STSCallerIdentity).Account

...或

(Get-STSCallerIdentity -Region [your_aws_region]).Account