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の使用を開始する」を参照してください。
- okta-aws-cliは、GitHubまたはHomebrewやChocolateyなどのパッケージマネージャーから取得できます。
手順
このセットアップは次の3つのタスクで構成されます。
OIDCアプリをAWSアカウントフェデレーションアプリに接続する
OIDCネイティブアプリを構成する
-
Admin Consoleで、に移動します。
- アプリ統合を作成(Create App Integration) をクリックします。
- サインイン方法([Sign-in method)]としてOIDC - OpenID Connectを選択します。
- アプリケーションタイプとしてネイティブアプリケーション(Native Application)を選択します。
- 次へ(Next)をクリックします。新しいネイティブアプリ統合(New Native App Integration)ページが表示されます。
- このページでアプリ統合名(App integration name)とロゴ(任意)を指定します。
- 次の付与タイプを選択します。
- 認可コード
- デバイス認可
- トークンの交換( 詳細設定(Advanced)オプションにあります)
- サインインリダイレクトURI(Sign-in redirect URIs)とサインアウトリダイレクトURI(Sign-out redirect URIs)はスキップします。
- で、今はグループの割り当てをスキップ(Skip group assignment for now)を選択します。
- 保存(Save)をクリックします。アプリが作成され、追加のオプションを編集または構成するための一般(General)タブが開きます。変更は必要ありません。
- 一般(General)タブのクライアントの認証情報(Client Credentials)でクライアントIDをコピーします。
- 割り当て(Assignments)タブで、AWS CLIを使用するグループまたは個人にアプリを割り当てます。ユーザー管理(User management)を参照してください。
OIDCアプリをAWSアカウントフェデレーションアプリに接続する
-
Admin Consoleで、に移動します。
- 構成済みのAWSアカウントフェデレーションアプリの1つを選択します。
- サインオン(Sign On)タブで編集(Edit)をクリックします。
- 高度なサインオン設定(Advanced Sign-On Settings)(Advanced Sign-on Settings)で許可されたウェブSSOクライアント(Allowed Web SSO Client)までスクロールします。
- 前のタスクでコピーした、OIDCアプリのクライアントID(Client 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. https://your-org.asqula.com/activate?user_code=<usercode> - このURLをWebブラウザーで開き、プロンプトに従います。
- AWS CLIでIDプロバイダーを選択します。
? Choose an IdP: arn:aws:iam::123456789012:saml-provider/My_IdPユーザーが利用できるSAML IdPのリストからIdPを選択します。
- IAMロールを選択します。
? Choose a Role: 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アカウントに正常にサインインしたことを示します。