サーバレスアーキテクチャ

Gitlab pagesでサイトへのアクセス制限をする・解除する

Gitlab pagesでサイトへのアクセス制限を設定する方法、逆にアクセス制限を解除する方法をまとめました。

Gitlab pagesでのアクセス制限

Gitlab pagesでは、Apacheの.htaccessやNginxの設定を使ったBasic認証やDigest認証はできません。しかし、他のサーバーレスサービスでは出来なかったり、有料だったりする、メンバーでのアクセス制限が出来ます。

アクセス制限の設定

Gitlab pagesのアクセス制限は、Gitlabのプロジェクト設定から設定が出来ます。

プロジェクトページの「Settings」から「Visibility, project features, permissions」のブロックを開くと、「Pages」という設定があり、ここでアクセス制限や公開設定が出来ます。

Gitlab 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のプロジェクトメンバー設定ページ。ユーザーの招待が出来るがGitlabアカウントは必須

ドメインごとの設定はできない

これは、アクセス制限に限らず、Gitlab pages全体で言えることもでもありますが、Gitlab pagesでは複数のドメインを設定することはできますが、ドメインごとに設定を変えることはできません。

つまり、

  • www.example.com
  • dev.example.com

という2つのドメインをGitlab pagesで公開していて、「devの方をアクセス制限して、wwwの方は公開する」ということはできません。

同じように、「devの方はdevブランチで公開して、wwwの方はmasterブランチで公開する」ということもできません。


ここまで、Gitlab pagesでのアクセス制限について見てきました。

色々とできないこともありますが、他のサーバーレスサービスではアクセス制限が有料だったりするので、Gitlabメンバー縛りがあるとはいえ、手軽にアクセス制限が出来るのは嬉しいですね。


価格は記載がある場合を除き、すべて税抜きです。

この記事の関連キーワード

サーバレスアーキテクチャの記事