Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AssumePolicyの意外なハマりどころ

 AssumePolicyの意外なハマりどころ

22/3/14 JAWS-UG朝会 #31にて発表

Haruka Sakihara

March 15, 2022
Tweet

More Decks by Haruka Sakihara

Other Decks in Technology

Transcript

  1. AssumePolicyの意外なハマりどころ Monday, March 14. 2022 Haruka Sakihara JAWS-UG朝会 #31 JAWS-UG

    logo is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
  2. 自己紹介 Haruka Sakihara <取得資格> • ネットワークスペシャリスト試験(IPA) • AWS Certified Security等4資格

    • アクセンチュア株式会社 テクノロジーコンサルティング本部所属 • 普段はクラウドインフラ構築の支援をしておりま す • アプリケーション……プライベートだとGo, 仕事だ と少しPython • インフラ……ほとんどAWS This presentation makes reference to marks owned by third parties. Unless otherwise noted, all such third-party marks are the property of their respective owners. No sponsorship, endorsement or approval of this content by the owners of such marks is intended, expressed or implied.
  3. AssumePolicyのプリンシパルに指定できる要素 AWS公式ドキュメントより 出典: AWS公式ドキュメント - AWS JSON ポリシーの要素: Principal ポリシーでは、次のいずれかのプリンシパルを指定で

    きます。 • AWS アカウントおよびルートユーザー • IAM ロール • ロールセッション • IAM ユーザー • フェデレーティッドユーザーセッション • AWS のサービス • すべてのプリンシパル Error creating IAM Role role-A: MalformedPolicyDocument: Invalid principal in policy IAMグループは対象外! IAMグループを指定すると・・・ しかし、IAMユーザーグループをAssumePolicyのプリンシパルに指定することは できません。
  4. 解決策: TerraformのDataSourceを利用 出典: Terraform公式ドキュメント - provider/aws Data Source: aws_iam_group data.aws_iam_group.example.usersで所属ユー

    ザーの情報を取得できる! Terraformを利用している場合には、DataSource “aws_iam_group”を使ってある IAMグループを参照することで、そこに属するIAMユーザー情報をリストの形で得 ることができます。
  5. 解決策: TerraformのDataSourceを利用 2. DataSourceから取得したユーザー ARNをfor文で取り出す グループに属するユーザー全員 のARNが記載されたポリシード キュメントが生成される 1. IAMグループを参照する

    DataSourceの作成 IAMグループを参照するDataSourceから得た所属ユーザーARN一覧を、for文で取 り出してAssumePolicyのプリンシパルに指定します。