Gitlab pagesでサイトへのアクセス制限をする・解除する
Gitlab pagesでサイトへのアクセス制限を設定する方法、逆にアクセス制限を解除する方法をまとめました。
Gitlab pagesでのアクセス制限
Gitlab pagesでは、Apacheの.htaccessやNginxの設定を使ったBasic認証やDigest認証はできません。しかし、他のサーバーレスサービスでは出来なかったり、有料だったりする、メンバーでのアクセス制限が出来ます。
アクセス制限の設定
Gitlab pagesのアクセス制限は、Gitlabのプロジェクト設定から設定が出来ます。
プロジェクトページの「Settings」から「Visibility, project features, permissions」のブロックを開くと、「Pages」という設定があり、ここでアクセス制限や公開設定が出来ます。
設定項目は少ないですが、
- Everyone(一般公開)
- Everyone with access (Gitlabにログインしている全てのメンバー / プロジェクトがpublicの時のみ)
- Only Project Member (当該プロジェクトのメンバーのみ)
の3種類から選ぶことが出来ます。
Gitlab pagesで公開する内容が、一般公開向けだったら「Everyone」に、開発バージョンなど「外部向けには公開しないけれど、サーバー上でチェックしたい」という場合には「Only Project Member」を選ぶのが良いでしょう。
Gitlab pagesでGitlabのログイン画面にリダイレクトされたら
Gitlab pagesでサイトを公開したのに、アクセスするとGitlabのログインページにリダイレクトされることがあります。
これは、多くのケースでGitlab pagesの設定が「Only Project Member」になっているからで、先ほどの設定から「Everyone」にすれば、きちんと公開されます。(設定の反映に時間がかかることもあります)
Gitlab pagesのページ確認をする際に、Gitlabにログインしたブラウザからアクセスすることが多く、制限がかかっていることに気がつかないこともあるので(ログインしているから「Only Project Member」の条件に適用されてしまうため)、Gitlab pagesでページ公開する際には、きちんとプロジェクト設定を確認するようにしましょう。
できること・出来ないこと
さて、メンバー縛りでのアクセス制限ができるGitlab pagesですが、出来ることと出来ないことがあります。
ページ単位でのアクセス制限は出来ない
Apacheなどの設定が出来る環境なら、ディレクトリやファイルごとにアクセス制限が設定できますが、Gitlab pagesで出来る制限は、「サイト全体の一括制限だけ」です。
ファイルやディレクトリごとの制限が必要な場合は、自身でプログラムを組んで対応するか、別のサーバー・サービスを使うようにしましょう。
メンバーの紐付けはGitlabアカウントのみ
Gitlab pagesの制限は、「Only Project Member」という名称の通り、プロジェクトメンバーのみで、このメンバーとは、Gitlabアカウントを持っているメンバーに限ります。
Projectメンバーの招待は、Gitlabアカウントかメールアドレスで行うことができますが、メールアドレスで招待したユーザーもGitlabアカウントを持っていない場合は作成する必要があるので、実質的にメンバーの紐付けはGitlabアカウントオンリーです。
ドメインごとの設定はできない
これは、アクセス制限に限らず、Gitlab pages全体で言えることもでもありますが、Gitlab pagesでは複数のドメインを設定することはできますが、ドメインごとに設定を変えることはできません。
つまり、
- www.example.com
- dev.example.com
という2つのドメインをGitlab pagesで公開していて、「devの方をアクセス制限して、wwwの方は公開する」ということはできません。
同じように、「devの方はdevブランチで公開して、wwwの方はmasterブランチで公開する」ということもできません。
ここまで、Gitlab pagesでのアクセス制限について見てきました。
色々とできないこともありますが、他のサーバーレスサービスではアクセス制限が有料だったりするので、Gitlabメンバー縛りがあるとはいえ、手軽にアクセス制限が出来るのは嬉しいですね。
価格は記載がある場合を除き、すべて税込みです。
関連キーワード
サーバレスの新着記事
- サーバレスCloudflare R2の料金体系・無料枠まとめ 2024.8.21
- サーバレスCloudflare R2をCyberduckで使う方法 2024.7.31
- サーバレスAIの学習ボット・クローラーからサイトを守るメリットとブロックする方法 2024.7.19
- サーバレスCloudFlare Pagesのビルド環境の違い 2024.5.9
- サーバレスCloudflare D1の料金体系・無料枠まとめ 2024.3.25
- サーバレスCloudflare PagesでNuxt3のビルド時に「ENOENT: no such file or directory」エラーの対象方法 2024.3.21
- サーバレスGitlab CLIでpush時に「glab auth not found」となった際の対処方法 2024.3.19
- サーバレスCloudFlare Workers AIの料金体系・無料枠まとめ 2024.2.2