📝

[小ネタ] Amplify Hosting のアクセスコントロールを AWS CLI で設定してみた

2025/03/03に公開

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