OktaをAWS CLIのIdPとして構成する
AWSコマンドラインインターフェイス(AWS CLI)は、ユーザーがコマンドラインシェルを使ってAWSサービスと対話するためのオープンソースツールです。Oktaは、CLIのIDプロバイダー(IdP)として統合することができます。これにより、開発者がシングルサインオンにOktaを利用できるようにすることで、AWS環境のセキュリティが強化されます。
仕組み
OIDCネイティブアプリをSAMLベースのAWS Account Federationアプリに接続することで、Admin ConsoleでOkta AWS CLI統合を統合します。CLIは、Oktaを介して認証を処理します。Oktaは、AWS Security Token Service(STS)と対話し、AWS CLIを使って開発者向けの適切なロールを収集します。
前提条件
-
OktaをAWSアカウントと統合します。「Amazon Web Servicesアカウントフェデレーション」を参照してください。
-
統合をテストするためにAWS CLIをインストールします。「AWS CLIの使用を開始する」を参照してください。
手順
このセットアップは次の3つのタスクで構成されます。
OIDCアプリをAWSアカウントフェデレーションアプリに接続する
OIDCネイティブアプリを構成する
-
Admin Consoleで に移動します。
-
[Create App Integration(アプリ統合を作成)] をクリックします。
-
サインイン方法として[OIDC - OpenID Connect]を選択します。
-
アプリケーションタイプとして[Native Application(ネイティブアプリケーション)]を選択します。
-
[Next(次へ)]をクリックします。[新しいネイティブアプリ統合]ページが表示されます。
-
このページで[App integration name(アプリ統合名)]とロゴ(任意)を指定します。
-
次の付与タイプを選択します。
-
承認コード
-
デバイス承認
-
トークンの交換
-
-
[Sign-in redirect URIs(サインインリダイレクトURI)]と[Sign-out redirect URIs(サインアウトリダイレクトURI)]はスキップします。
AWS CLIアプリはこれらを使用しません。
-
[Skip group assignment for now(今はグループの割り当てをスキップ)]を選択します。
で -
[Save(保存)]をクリックします。アプリが作成され、追加のオプションを編集または構成するための[General(一般)]タブが開きます。変更は必要ありません。
-
[General(一般)]タブの[Client Credentials(クライアントの認証情報)]でクライアントIDをコピーします。
-
[Assignments(割り当て)]タブで、AWS CLIを使用するグループまたは個人にアプリを割り当てます。「ユーザー管理」を参照してください。
OIDCアプリをAWSアカウントフェデレーションアプリに接続する
-
Admin Consoleで に移動します。
-
構成済みのAWSアカウントフェデレーションアプリの1つを選択します。
-
[Sign On(サインオン)]タブで[Edit(編集)]をクリックします。
-
[Advanced Sign-On Settings(高度なサインオン設定)]で[Allowed Web SSO Client(許可されたウェブSSOクライアント)]までスクロールします。
-
前のタスクでコピーした、OIDCアプリの[Client ID(クライアントID)]を入力します。
-
[Save(保存)]をクリックします。
-
OIDCネイティブアプリに接続する他のすべてのAWSアカウントフェデレーションアプリについて、この手順を繰り返します。
-
任意。アプリをカスタム認証ポリシーに割り当てます。「認証ポリシーにアプリを追加する」を参照してください。
Okta AWS CLI統合をテストする
AWS CLIで統合をテストすることで、統合が機能していることを確認します。
-
AWS CLIに次のコマンドを入力します。
$ okta-aws-cli
次のプロンプトが表示されます。
Open the following URL to begin Okta device authorization for the AWS CLI.(次のURLを開いてAWS CLIのOktaデバイス承認を開始します)
https://your-org.okta.com/activate?user_code=<usercode>
-
このURLをWebブラウザーで開き、プロンプトに従います。
-
AWS CLIでIDプロバイダーを選択します。
? IdPの選択: arn:aws:iam::123456789012:saml-provider/My_IdP
ユーザーが利用できるSAML IdPのリストからIdPを選択します。
-
IAMロールを選択します。
? ロールの選択: arn:aws:iam::456789012345:role/My_Role
選択したIdPに関連付けられているAWS IAMロールのリストからIAMロールを選択します。
次のAWS資格情報が読み込まれます(例)。
export AWS_ACCESS_KEY_ID=<key-id>
export AWS_SECRET_ACCESS_KEY=<key-code>
export AWS_SESSION_TOKEN=<token-id>
これは、AWSアカウントに正常にサインインしたことを示します。