はじめに
IBM Security VerifyとAWS Identity and Access Management(IAM)とSAML連携させて、AWSマネジメントコンソールにログインする際にIdPであるISVを経由してログインさせます。
記事の内容は2023年12月1日時点のものになります。
連携手順
AWS側の設定
AWS IAM ユーザ作成
AWSマネジメントコンソールへログインし、ひだり上の検索ボックスに「IAM」と入力しIAMダッシュボードを開きます。
アクセス管理>ユーザー へ移動して「ユーザの作成」をクリックし、ユーザを追加する。
ユーザ名はこの後ISVで登録するユーザ名と値を揃えておきます(メールアドレス等)。
ユーザへのポリシーは手っ取り早く検証したかったため「ReadOnlyAccess」をアタッチしました。
AWS IAM Idプロバイダの作成
アクセス管理 > IDプロバイダ へ移動し、「プロバイダを追加」をクリック。
プロバイダのタイプ→SAML
プロバイダ名→任意の名前
メタデータドキュメント→ISVから予めダウンロードしたメタデータファイルをアップロード
「プロバイダを追加」をクリック。
AWS IAM ロールの作成
アクセス管理 > ロール 「ロールを作成」をクリック
信頼されたエンティティは、「SAML2.0フェデレーション」を選択。
SAML2.0ベースのプロバイダーは、前ステップで作成したIdプロバイダを選択。
ロールに対する許可ポリシーを追加します。ユーザへ与える権限と同じものを選択。
ロール名に任意の名前を入れて、ロールを作成します。
ロールが作成されました。
IBM Security Verify側の設定
ISV アプリケーション追加
ISVのトップ画面のアプリケーション > アプリケーションの追加を選択。
検索窓に「amazon」で検索すると「Amazon Web Services(IAM)」が出てきますので、これを選択します。
※以前は「Amazon Web Services(AWS)」でしたが変わったようです。
「aws」で検索すると下画面のように「AWS IAM Identity Center」がヒットします。今回こちらは使いませんのでご注意ください。
サインオンタブを編集します。赤枠で示した、SAMLサブジェクトと属性マッピングの2つ目の箇所はソースを合わせておきます。
青枠の部分は属性値をカスタムする必要があります。いったん今の状態で保存し、後ほど編集します。
ISVに設定するAWS向け属性値マッピングについて
属性名 | 属性ソース |
---|---|
https://aws.amazon.com/SAML/Attributes/Role | 自分で作成したカスタム属性名 |
https://aws.amazon.com/SAML/Attributes/RoleSessionName | Prefferd_username |
ISV アプリケーション追加後の編集
ディレクトリー > 属性 へ移動して、「属性の追加」をクリック。
型と可用性では、「固定値」を選択。
属性名は任意で名前をつけます。
ソースおよび値には、属性値に以下の文字列を入力します。
arn:aws:iam::<AWSのアカウントID>:role/<作成したロールの名前>,arn:aws:iam::<AWSのアカウントID>:saml-provider/<作成したIdプロバイダ名>
データ型はストリング。
アプリケーションの設定を編集します。
先程の青枠の箇所で指定していた属性ソースを、追加で作成した属性ソースに置き換えます。
ISV側の設定で、アプリケーション毎にアクセス権限を割り当てている場合は今回作成したユーザの追加を忘れずに行います。
SAML認証でログインできるかテスト
ISVのログインを突破すると・・・
AWSマネジメントコンソール画面へ遷移できました。
トップ画面の右上部に「ロール名/ユーザー名@アカウントID」が表記されています。