OktaのAWSアカウントフェデレーションをやってみる
こんにちは、ゲームソリューション部/業務効率化ソリューション部の新屋です。
本ブログはClassmethod ゲーソル・ギョーソル Advent Calendar 2024の18日目のブログとなります。
本日は、Okta WICとAWSアカウントを連携させる方法の1つである、AWSアカウントフェデレーションについて試していきます。
前提
OktaとAWS IAM Identity Centerを統合してシングルサインオンする設定を理解している
モチベーション
OktaからIAM Identity Centerの統合を設定しようとアプリカタログを眺めていると、「AWSアカウントフェデレーション」というアプリケーションが見当たります。
AWS…アカウント…フェデレーション…?
何やらシングルサインオンが出来そうな名称なんですが、同じくシングルサインオンの機能を提供してくれるIAM Identity Center統合と何が違うのでしょうか?
↓
Oktaを経由してAWSアカウントにシングルサインオンするのは同じです。
このアカウントフェデレーションは、割り当てたIAMロールでAWSアカウントにサインオンすることができる機能です。
IAM Identity Center統合とどっちを使うかの判断は、主にAWS Organizationsで組織のAWSアカウントを統制するかどうか、がポイントになると思います。IAM Identity Center統合は、Oktaで作成するアプリケーション1つに対してIAM Identity Centerを中継して、複数のAWSアカウントを紐づけることが出来ます。
一方で、アカウントフェデレーションはOktaで作成するアプリケーションに紐づけられるAWSアカウントは1つまでです。
OktaのIAM Identity Center統合とアカウントフェデレーションのイメージ
Organizationsを使うほどAWSアカウントが多くない場合は、右側のアカウントフェデレーションのを使うと良さそうです。
設定手順
(Okta)アプリ統合カタログからAWSアカウントフェデレーションを作成する
Okta管理者ダッシュボードからアプリケーション > アプリカタログを参照からAWSと検索して、アカウントフェデレーションを選択します。
(Okta)設定を行う
一般設定はそのままでOKです。
サインオンオプションはSAML2.0を選択します。
そして、メタデータURLをコピーして別タブで開いてください。
(Okta)メタデータを保存する
URLを開くとメタデータが表示されますので、これをxml形式で保存してください。名称は適当で大丈夫です。
(AWS)IAMからIDプロバイダを作成する
IAM > IDプロバイダと移動して、プロバイダの追加を選択してください。
(AWS)メタデータのアップロード
先ほど保存したxmlファイルをアップロードしてください。プロバイダの名称は適当で大丈夫です。
作成したらこのIDプロバイダのARNをコピーします。
(Okta)IDプロバイダのARNをセットする
Oktaの設定画面に戻って、IDプロバイダのARNを入力し、完了または設定を保存します。
(AWS)シングルサインオンするときに引き受けるIAMロールを作成する
SAML2.0フェデレーションから、さっき作成したIDプロバイダーを選択します。
今回は、EC2ReadOnlyAccessの権限でロールを作成します。
ここは特になにもしなくてOK
(AWS)さっき作成したIAMロールをOkta側で参照するために、Okta APIが利用するIAMユーザーを作成する
作成をはじめます。
ポリシーを作成します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:ListRoles",
"iam:ListAccountAliases"
],
"Resource": "*"
}
]
}
ポリシーをユーザーにアタッチして、作成を押下します。
このユーザーのAccessKeyとAccessSecretを取得します。
取得したらコピーします。
(Okta)プロビジョニングの有効化とAPI統合を構成
AccessKeyとAccessSecretを入力したら、テストしましょう。OKがでたら、保存してください。
アプリへのプロビジョニングで、ユーザー作成と更新を有効化しておきましょう。
(Okta)ユーザーをアプリケーションに割り当てる
割り当てタブから、ユーザー割り当てを選択します。
割り当てたいユーザーを選択します。
さっき作成したIAMロールが表示されているはずです。
ユーザーにロールを割り当てたら動作確認をします。
動作確認
割り当てたユーザーでOktaダッシュボードにサインインすると、さっき作成したアカウントフェデレーションのアプリが表示されています。
アプリを選択すると対象のAWSアカウントのコンソールにリダイレクトします。