📝
[小ネタ] Amplify Hosting のアクセスコントロールを AWS CLI で設定してみた
Restricting access to an Amplify app's branches - AWS Amplify Hosting
- ブランチレベルで設定する場合:
update-branch
コマンド - アプリレベルで設定する場合:
update-app
コマンド
前提
- CodeCommit リポジトリに main と dev というブランチを作成済み
- CodeCommit リポジトリをソースとした Amplify アプリを作成済み
- AWS CLI の実行環境は CloudShell
ブランチレベルでの設定
設定前の状態をコンソールで確認しておきます。
いずれのブランチも「パブリックに表示可能」な状態であり、アクセスコントロールは無効です。
認証情報は base64 でエンコードされた "username:password" という形式にする必要があるため、要件を満たす認証情報文字列を生成します。
$ echo -n "username:password" | base64
dXNlcm5hbWU6cGFzc3dvcmQ=
上記の場合、ユーザー名は username, パスワードは password という認証情報となります。
続いて、上記認証情報を使用して main ブランチのみにアクセスコントロールを設定します。
$ aws amplify update-branch \
--app-id your-app-id \
--branch-name main \
--basic-auth-credentials dXNlcm5hbWU6cGFzc3dvcmQ= \
--enable-basic-auth
上記コマンド実行後にコンソールを確認すると、main ブランチにのみアクセス制限がかかったことを確認できます。
アクセス制限を解除する場合は以下のコマンドを実行します。
$ aws amplify update-branch \
--app-id your-app-id \
--branch-name main \
--no-enable-basic-auth
アプリレベルでの設定
設定前の状態をコンソールで確認しておきます。
いずれのブランチも「パブリックに表示可能」な状態であり、アクセスコントロールは無効です。
認証情報生成後、以下のコマンドを実行します。
$ aws amplify update-app \
--app-id your-app-id \
--basic-auth-credentials dXNlcm5hbWU6cGFzc3dvcmQ= \
--enable-basic-auth
上記コマンド実行後にコンソールを確認すると、すべてのブランチにアクセス制限がかかったことを確認できます。
アクセス制限を解除する場合は以下のコマンドを実行します。
$ aws amplify update-app \
--app-id your-app-id \
--no-enable-basic-auth
まとめ
今回は Amplify Hosting のアクセスコントロールを AWS CLI で設定してみました。
どなたかの参考になれば幸いです。
Discussion