Help us understand the problem. What is going on with this article?

Azure ADでSAML認証してAWSCLIを実行する方法

概要

  • セキュリティポリシーでIAM Userの作成/使用が原則禁止されている現場ってありますよね?
  • AWSのAPIKey流出事故は何度も見聞きしているので、IAMUser作成を禁止するのは理解できます。
  • IAMUserを使わずにログインする方法の一つとして、AzureAD経由でSAML認証する方法があります。
  • AzureAD側でMFAログインを必須化することもできて、とてもセキュアな設計なのですが、AWS CLIを使うのにひと手間かかります。
  • 今回はその手間を省くツールaws-azure-loginを見つけたので、使い方をメモしておきます。

インストール方法

$ npm install -g aws-azure-login
  • インストールは簡単ですね。

初期設定の手順

$ aws-azure-login --configure --profile <profile_name>
  • READMEに書いてある通り設定していきます。
Configuring profile '<profile_name>'
? Azure Tenant ID:
  1. いきなりつまずきます。 Azure Tenant ID とはなんぞや?
  2. トラブルシューティングのためにブラウザで SAML レスポンスを表示する方法を参考にSAMLレスポンスを抜き出してみました。

  3. レスポンスの中にそれらしき値を発見
    <Attribute Name="http://schemas.microsoft.com/identity/claims/tenantid"><AttributeValue>xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx</AttributeValue>

  4. ↑のAttributeValueを入力します。

? Azure App ID URI:
  1. 今度は Azure App ID URI を聞かれます。Azure側のなにかのURLかと思いましたが、MSが提供しているドキュメントによると、https://signin.aws.amazon.com/saml を設定すべしと書いてあります。なんだAWSのサインインURLのことだったのですね。ということで↑のURLを入力します。
? Default Username:
  1. AzureADにログインするユーザ名を入力します。
? Default Role ARN (if multiple):
  1. Role ARNを聞かれます。SAML認証用のIAMRoleのARNを入力します。例: arn:aws:sts::<account_id>:assumed-role/<role_name>
? Default Session Duration Hours (up to 12): (1)
  1. セッションの有効期間を聞かれますので、入力します。

ログイン手順

$ aws-azure-login --profile <profile_name>
  • PassWord, MFA-token等を聞かれるので、よしなに入力してください。
  • 先の手順でUserName等にはデフォルト値が登録されていると思います。

AWSCLI実行

$ aws s3 ls --profile <profile_name>
  • これでAWSCLIを実行できるはずです:tada:

参考資料

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away