AWSアカウントIDは秘密にしておく必要がありますか? AWSアカウントIDだけを使用して何かを行うことはできますか?
AWSドキュメント から:
AWSアカウントIDは、Amazonリソースネーム(ARN)を作成するために使用する123456789012などの12桁の番号です。 IAMユーザーやAmazon Glacierボールトなどのリソースを参照する場合、アカウントIDによってリソースが他のAWSアカウントのリソースと区別されます。
AWSアカウントIDは、必要に応じて共有できます。
ドキュメントにあるように、誰でもAWSアカウント番号を使用できる主なものは、ARNを構築することです。たとえば、AWS Lambda関数を保持するAWSアカウントがあり、明示的にアクセス許可を付与した別のアカウントの誰かがそれを操作したい場合、ARNのアカウント番号で使用します。
arn:aws:lambda:us-east-1:123456789012:function:ProcessKinesisRecords
繰り返しますが、これはアカウントに適用される権限によって完全に制限されます。完全なARNがあったとしても、AWSアカウントにアクセス権を与えない限り、それを使って何もすることはできません。
APIキーは、物事のリモートコントロールを許可するものであり、危険です。
AWSアカウントIDを知っていても、それ自体は攻撃にさらされることはありませんが、攻撃者が他の危険な情報を簡単に入手できるようにする可能性があります。
Rhino Security Labsは、IAMロールの設定ミスによる潜在的な妥協手段を示しています こちらのブログ投稿 :
AWSアカウントIDはすべてのAWSアカウントを一意に識別し、想像以上に機密性が高くなります。 IDを漏らしてもアカウントは直接侵害されませんが、攻撃者はこの情報を他の攻撃に利用できます。 AWSアカウントIDを非公開に保つために合理的な努力をする必要がありますが、実際には、意図せずに公開されることがよくあります。
[...]
この投稿と、私たちがリリースした付随するスクリプトは、既存のロールを識別するためにAWSアカウントIDを使用して対処しています。この概念の拡張として、攻撃者はさらに一歩進んで、誤って構成されたIAMの役割を引き受け、不正なアクセスを取得できます。
これは、ユーザーが*または非常に広範囲のリソースからの役割の引き受けを許可する場合にのみ有効ですが、私の経験では、IAM権限は複雑であり、適切に監査することがかなり難しく、このような攻撃を検出することは困難です。
このブルートフォーシング手法とスクリプトは、列挙に使用しているアカウントに大量の「iam:AssumeRole」CloudTrailログを生成します。ターゲットとするアカウントは、正しく構成されていないロールを引き受けるまでCloudTrailログに何も表示されません。つまり、ターゲットアカウントでは列挙が完全にログフリーになります。
言い換えれば、これは本質的にリスクではありませんが、IDを一般の人の目に触れさせないようにすることで、アカウントの攻撃面を大幅に減らします。