エンジニアの皆さん、こんにちは。現場で泥臭く、かつエレガントなCI/CDパイプラインを構築し続けているシニアエンジニアです。
今日は「Bitbucket」のセキュリティ設定についてお話しします。多くのチームが「とりあえずリポジトリを作ってコードをプッシュする」ところから始めますが、プロフェッショナルな現場では、入り口の鍵管理こそが全てです。
なぜなら、たった一度の認証漏れやIP制限の甘さが、チームの数ヶ月分の開発成果を台無しにするからです。今回は、Bitbucketを「鉄壁の要塞」に変えるための、現場で必須となる基礎セットアップを伝授します。
—
1. なぜ「権限管理」が重要なのか?
Bitbucketにおいて、アクセス権限は「リポジトリ単位」で管理しがちですが、実はこれでは甘いのです。チームが拡大すればするほど、管理コストが爆発します。
「ワークスペース > プロジェクト > リポジトリ」の階層構造を意識してください。
- ワークスペース: 会社全体(ここにIP制限をかけるのがベスト)
- プロジェクト: チームやプロダクト単位(ここで権限を絞る)
- リポジトリ: 個々の機能やサービス(必要最小限のアクセス権のみ付与)
この階層を理解するだけで、誰がどのコードに触れるべきかが見えてきます。
—
2. 最初のステップ:2FA(二段階認証)の強制
パスワードは「漏れるもの」として設計してください。Bitbucketのワークスペース設定で「2FAの強制」をONにするのは、現代の開発チームにおける最低限のマナーです。
1. ワークスペース設定を開く。
2. セキュリティメニューを選択。
3. 「二段階認証の必須化」を有効にする。
これをやっておかないと、どれほど強力なファイアウォールを敷いても、一人のメンバーの端末が乗っ取られただけで終わりです。
—
3. IPホワイトリストによる「ネットワークの結界」
ここが本題です。特定のIPからしかBitbucketにアクセスさせない設定は、攻撃者にとって最も高い壁になります。
設定手順:
1. Bitbucketのワークスペース設定から「IPアクセス制限」を探します。
2. 「IPホワイトリスト」に、会社の固定IPアドレス(またはVPNゲートウェイのIP)を入力します。
【現場の知見】なぜこれが「HelloWorld」なのか?
単に設定して終わりではありません。以下のスクリプトで、自分の現在のグローバルIPが正しくホワイトリストに含まれているか、自動テストする習慣をつけましょう。
現在のグローバルIPを取得し、ホワイトリストと照合する簡易チェック
現場で「繋がらない!」と騒ぐ前に、まずこれを叩くのが作法です
CURRENT_IP=$(curl -s https://ifconfig.me)
echo “あなたの現在のIPアドレス: $CURRENT_IP”
実際の設定値はBitbucketの管理画面で確認してください
ホワイトリスト内にこのIPがあるか確認するロジックを組むのが理想です
—
4. チームを守るための「権限設定の黄金律」
初心者がやりがちなミスは、全員に「管理者(Admin)」権限を与えてしまうことです。これは「鍵のかかっていない家の玄関に、全員分の合鍵を配る」のと同じです。
- Read-only: コードをレビューするだけの人(PMやQA)にはこれ。
- Write: 開発者。ただし、mainブランチへの直接プッシュは「ブランチ制限(Branch Permissions)」で禁止する。
- Admin: リポジトリの設定変更ができるのは、チームリーダーのみに限定。
ブランチ制限の設定(最も重要):
- `main` や `production` ブランチには、「マージの許可」のみを与える。
- 「プッシュの許可」はオフにする。
- 「マージにはプルリクエストとレビューが必須」にする。
—
最後に:セキュリティは「面倒」ではなく「守り」
最初は設定が面倒に感じるかもしれません。しかし、一度この環境を構築してしまえば、あなたは「セキュリティを気にせず、開発に没頭できる極上の環境」を手に入れたことになります。
「面倒くさい」と感じた瞬間こそが、自動化のチャンスです。BitbucketのAPIを使って、権限設定をInfrastructure as Code(IaC)のように管理することも可能ですが、まずは今日紹介した管理画面からの設定をマスターしてください。
これをマスターすれば、あなたのチームのコードベースは、今日から一段階上の堅牢さを手に入れます。自信を持って開発を進めていきましょう!
何か詰まったら、いつでも聞いてください。現場の知見で回答しますよ。