1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS OrganizationsでメンバーアカウントにAWSアカウント名を取得させる

Posted at

やりたいこと

AWS Organizationsを運用している際、メンバーアカウント内の動的処理で自身の「AWSアカウント名」を取得したい。
(ユースケース:各アカウント内からアラートメールを送信する際に、メール件名にアカウント名を追加するときなど)

対応方法

アカウント名を動的取得するには基本的にorganizations:DescribeAccountのアクションが必要となります。
ただし、こちらはOrganizationsの管理アカウントでしか利用できませんでした。

そのため

  • 別途DynamoDBやS3にアカウント情報を定期保存するなど別の保存領域を使って取得する
  • メンバーアカウント毎のIAMロールを管理アカウントに用意して、AssumeRoleしてもらう

などあまり美しくない方法しかなかったのですが、「Organizations の委任管理者機能」のポリシー調整でシンプルに実現出来ました。
「Organizations の委任管理者機能」については以下クラスメソッドさんの記事が分かりやすいのでご参照ください。

Organizations の委任管理者機能に以下のポリシーを設定する事で各メンバーアカウントからorganizations:DescribeAccountのアクションが可能になります。

※[管理アカウントID][Organization ID]は要変更

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Statement",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "organizations:DescribeAccount",
      "Resource": "arn:aws:organizations::[管理アカウントID]:account/[Organization ID]/${aws:PrincipalAccount}"
    }
  ]
}

ポイント

グローバル条件コンテキストキーである${aws:PrincipalAccount}を使う事で、Organizations内のアカウント増に合わせてポリシーを調整する必要が無くなりました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?