0
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?

Azure AD 連携された AWS アカウントで aws-cli を利用する

Last updated at Posted at 2025-03-14

はじめに

AWS への認証が Azure AD で SSO 行われている環境で aws-cli を利用するため aws-azure-login というツールを試してみました。

事前準備

aws-azure-loginnode.js のパッケージとしてインストールを行うため nvm をインストールしておきます。

nvm インストール

ここでは curl を使って nvm のインストールスクリプトをダウンロードし、そのまま bash で実行しています。

インストール
% curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

有効化

nvm のインストールディレクトリを NVM_DIR という環境変数に設定します。

環境変数設定
% export NVM_DIR="$HOME/.nvm"

nvm のスクリプト (nvm.sh) が存在していれば、それを読み込んで nvm を有効化します。

有効化
% [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

nvm の Bash 保管機能 (bash_completion) を読み込みます。

保管機能設定
% [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

nvm とは?

  • Node.js のバージョン管理ツール(Node Version Manager)です。
  • 複数の Node.js のバージョンを簡単に切り替えられます。
  • 例えば、以下のように nvm を使って Node.js のバージョンを変更できます:
sh
nvm install 18   # Node.js 18 をインストール
nvm use 18       # Node.js 18 を使用

node 最新化

以下のコマンドを実行し node のバージョンを最新化しておきます。

最新化
% nvm install --lts
% nvm --version

node のバージョンは最新化されますが nvm コマンドのバージョンが最新化されるわけではないです。

nvm の最新化を行いたい場合は以下のリポジトリを確認し、最新のバージョンで nvm インストール を行います。

aws-azure-login の設定

事前準備ができたらここから aws-azure-login をインストールして設定をしていきます。

インストール

npm を使って aws-azure-login パッケージをインストールします。

インストール
% npm install -g aws-azure-login

npm とは?

  • Node.js のパッケージマネージャ (Node Package Manager)。
  • JavaScript のライブラリやツールを管理するためのツール。
  • Node.js をインストールすると自動的に npm もインストールされる。

aws 環境設定

aws へログインするための環境設定を行います。
修正するファイルは普段 aws-cli で利用する config ファイルです。

aws config設定
% vim ~/.aws/config
config
[default]
azure_tenant_id="************************""
azure_app_id_uri="************************" 
azure_default_username="test@example.com"
azure_default_role_arn=arn:aws:iam::***********:role/AzureLoginRole
azure_default_duration_hours=8

項目について

項目 説明
azure_tenant_id Azure AD のテナント ID
azure_app_id_uri Azure AD で AWS SSO に関連づけられたアプリケーション ID URI
azure_default_username AWS にログインする際の Azure AD のデフォルトユーザー名
azure_default_role_arn AWS にログインする際のデフォルト IAM ロール ARN
azure_default_duration_hours AWS SSO ログインのデフォルト有効時間(セッション持続時間)

設定を行ったら先ほどインストールしたコマンドを実行します。

認証
% aws-azure-login --mode=gui
Logging in with profile 'default'...
Using AWS SAML endpoint https://signin.aws.amazon.com/saml
Please complete the login in the opened window

するとブラウザが立ち上がり、ログイン画面が表示されるため メールアドレス を入力して [Next] をクリックします。
azure01.png

次に パスワード を入力し [Sign in] をクリックします。
azure02.png

[Yes] をクリックします。
azure03.png

先ほどのコンソールの続きで以下のような表示が出力されたら成功です。

ログイン
Assuming role arn:aws:iam::***********:role/AzureLoginRole in region ap-northeast-1...

確認

S3 のバケット一覧表示など、ログインロールに付与されている権限を実行してみてください。

% aws s3 ls

おわりに

Azure AD 連携 でコマンドを利用するのはハードルが高そうだなと思っていましたが、いざ試してみるとすごく簡単でした。
また、Node について改めて整理することができてよかったです。

0
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
0
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?