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