💮

【受験レポ】GitHub Administrationに合格しました

2024/10/17に公開

GitHubの管理者を目指したい方に

GitHubの資格試験、GitHub Administrationを受験してきてギリ合格してきました。
GitHubが提供している資格試験は、2024/10/17時点で以下がGAされています。

  • GitHub Foundation
  • GitHub Administration
  • GitHub Advanced Security
  • GitHub Actions

※GitHub Copilotの試験も10月にGAされるようです
https://resources.github.com/learn/certifications/

表題のGitHub AdministrationはGitHubの管理者向けの資格試験で、以下のような知識が問われます

  • ユーザーと主要ステークホルダーに対するGitHub Enterpriseのサポート
  • ユーザーIDとGitHub認証の管理
  • GitHubのデプロイ、デリバリー、ライセンスについて
  • メンバーシップに基づくアクセスと権限の管理
  • 安全なソフトウェア開発とコンプライアンスの確保
  • GitHub Actionsの管理
  • GitHub Packagesの管理

ちなみに、GitHubの試験はMSのMCPみたいにAZ-○○とAZ-○○のセットでこの資格が取れる!みたいな感じではなく、各試験を取得したらその資格が取れます。
各試験の受験料は99 USDです。

GitHubが提供する資格試験については、こちらをcheck
https://docs.github.com/ja/get-started/showcase-your-expertise-with-github-certifications/about-github-certifications

試験を受けるためには

GitHubの試験を受験するためには、以下のページで受験したい試験を選択して受験登録をします。
https://examregistration.github.com/overview

ちなみに、現状GitHubの試験はオール英語です。受験登録時にSpecial Accomodationsのセクションの'Do you require any special accomodation?'をYesにすると、辞書の使用や試験時間の延長をリクエストすることができます。

受験方法は、オンライン、テストセンターでの受験が選べます。
当日の持ち物として、本人確認書類が必要なので忘れないようにしましょう。

試験対策

試験対策はこんな感じでした

試験受験前のスペック

試験受験前の今回の試験範囲に関わる知識レベルはこんな感じ。

  • GitHub Enterprise Cloudの導入&MS Entraを介したSSOの構成、ユーザー管理はやったことある
  • Enterprise/Organization/Repositoryの構成の経験あり
  • Repositoryでのブランチ保護、ポリシーの整備はやったことある
  • GitHub-hosted runnerでのGitHub Actionsを使ったCI workflowを構成したことはある。そのタイミングでGitHub Packagesでのパッケージ管理や認証も一通り調べた

学習ガイドを確認

まず最初にやったのは、以下の学習ガイドを確認して、なるほどーこういうのが出るんだねえって確認しました。結構細かくどういうことを知ってる必要があるのかが書いてあるので、絶対に絶対に見た方がいいです
https://assets.ctfassets.net/wfutmusr1t3h/5zTfUfFWQknwoUVA1SAw0o/16e2f7904ae2f5cdeb7d91ad32d4547e/github-administration-exam-preparation-study-guide__2_.pdf

MS Learnのラーニングパスをやる

このMS LeanにGitHub Administrationの試験で問われるような内容がまとまっています。これを一周しました。これを全部やって各知識チェックも全部OKだったら合格できるか?というとそれだけじゃ厳しいと思います。が、試験で出題される各ドメインを理解するためにやっといた方がいいと思います。
https://learn.microsoft.com/en-us/collections/mom7u1gzjdxw03

各ラーニングパスのモジュールで更に参考用のGitHub Docsが提示されているので、自信がない箇所は本家GitHubのDocsを確認しておくことをおすすめします。

github-certification-preparation-guideでの理解度チェック

以下のGitHub Reposで、学習ガイドで示されている各ドメインごとに練習問題的なものがあります。
https://github.com/12zamu/github-certification-preparation-guide/blob/main/content/exams/github-administration.md

Practice Testをやる

有志の方がGitHubの各試験の模擬試験を作ってくれています。とても素晴らしいサイトです。
https://ghcertified.com/practice_tests/

GitHum Administrationの問題は本日時点で96問提供されています。ここで各問題を瞬殺で全問正解できるまでやりました。

ここのサイトの何が素晴らしいかというと、各Practice Testでこんな感じでヒントになるGitHub公式のドキュメントへのリンクがあることです。

自信がない問題はぜひリンクから本家ドキュメントを確認することをマジでオススメします。

各ドメイン、こういうのは答えられるようになってた方がいい

学習ガイドで提示されている各ドメインに関して、試験受験後にマジでこれは勉強しててよかった!これがわからなかったら多分ダメだった!逆にこれをもっと勉強していればもっとハイスコアで合格できたたかも。。。。°(°´ω`°)°。
みたいなのを記憶が新しいうちに各ドメインごとに振り返っておきます

ユーザーと主要ステークホルダーに対するGitHub Enterpriseのサポート

  • GitHubのサポートの種類、GitHub Enterprise SupprtとPremium. Premium Plusの違いは?GitHubサポートが対応できることは?
  • サポートバンドルはどうやって取得する?
  • GitHub Marketplaceでアセットを取得することのメリットとリスク、GitHubにValidateされている安全なアセットの見分け方は?
  • GitHub Appはなんのために使う?
  • GitHub Mobileでできることは?

ユーザーIDとGitHub認証の管理

  • GitHub公式がサポートしているIdPは?
  • チーム同期をすると何が起きる?チーム同期のために必要な前提条件は?
  • OrganizationでSSOを構成する場合とエンタープライズでSSO構成することの違いは?
  • 権限の継承
  • SCIMとは何か?認証プロセスとして何が起きるのか? GitHubがサポートしているSCIMは?
  • Enterprise Manged Userについての理解はマスト。EMUでプロビされたユーザーは何ができて何ができないのか、どのように構成するのか。
  • GitHubで使用できる認証の種類は全部言える?
  • 二要素認証にはなにが使える?
  • 「あなたはこのユーザーにはXXをさせたいけどYYはしてほしくないです、適切な権限は?」系の適切な権限付与系問題。Enterprise, Organization, Team, Repositoryすべてのレイヤのロールを理解して要件に応じた適切な権限付与ができるように。

GitHubのデプロイ、デリバリー、ライセンスについて

ぱっと見GitHubを使ってどういう風にCDできるか的なのに見えるけど、問われるのはGitHubの各種ライセンスの違いとそれに基づいてどのように管理の手段が変わるのか

  • GitHub Enterprise Cloud/Serverの違い、各種GitHubのプランの違い(何が違うのか、どのプランでは何が使えるのか)を理解しておくのはマスト
  • 特にGitHub Enterprise Cloud/Serverの違いは、前者はGitHub.com上でソースをホストする、後者はオンプレ/他のクラウドサービスでホストする、こういう要件の時はこっちを選択する、ぐらいの理解だと爆死する(←自分がこれ。Enterprise Cloudは導入や構成の経験があるから大丈夫だったけど、Enterprise Serverは触ったことがないのでほとんど想像で解いた)。
  • Cloud/ServerでのGitHub Actionsの管理はどうなるか、ワークフローの管理はどうなるか、
  • ServerでできることとCloudでできることの違い
  • Serverの時にGitHub Connectはどういう役割を果たすか などなどは割とちゃんと理解しておいた方がよかった。

安全なソフトウェア開発とコンプライアンスの確保

  • シークレット情報はどこに格納してどうやってワークフローの.yamlで参照できるか
  • 使用中のGitHubのセキュリティ状況はどこでどうすれば確認できるか
  • 監査ログはどうすれば見れるのか、ログで確認できる情報は?
  • ブランチ保護について
  • セキュリティ的なリスクがあるデータやファイルがコミットされないようにどうすればいいか
  • 万が一、コミットされてしまったらどうすればいいか
  • セキュリティ的なリスクや脆弱性をレポートさせるための仕組みはどう構成すべきか
  • GitHub Advanced Securityを使用することのセキュリティ上のメリットは? GitHub Advanced Security使用時に管理者がコントロールできるのはなにか?
  • 安全にリポジトリのデータにアクセスするための手段は?
  • deploy key、SSHキーはどういうときに使用する?
  • dependabot, dependency graphはなにか?どこでどうすれば確認できる?

GitHub Actionsの管理

  • GitHub-hosted runnerがサポートしているOSは?OSごとの金額等の違いは?
  • Self-hosted runnerのアクセスはどのように制御する?特定のOrganizationやリポジトリに使用を制限する場合にはどうする?
  • どういうときにSelf-hosted runnerを選択すべきか
  • Runner groupはどうやって作る?
  • GitHub Enterprise Cloud/ServerでのGitHub Actionsの管理方法の違い
  • GitHub Actionsのワークフローで実行する処理を複数のリポジトリで再利用するためにはどうすればいい?
  • GitHub Actions使用の際のお値段
  • CI/CDをすることのソフトウェア開発上のメリット

GitHub Packagesの管理

  • GitHub Packagesでサポートされているパッケージの種類は全部言える?
  • GitHub Packagesにアクセスするための手段は?
  • リリースとGitHub Packagesの違いと両者のユースケースは?

今回はやらなかったけどこれもやればよかったかも

体感、(1)ラーニングパス全コンプ、(2)模擬試験を瞬殺できるレベルまで全問正解まで仕上げる+関連ドキュメントをいくつか読んで臨みましたが、割とギリ合格だったので、こういうのもやっとけばよかったかなと。

  • 学習ガイドでちょっとでも自信ない内容はMS EdgeのCopilotに投げて引っかかった関連ドキュメントを全部読む(これでどのdocsを読めばいいか提示されるので)

特に個人的にはGitHub Enterprise ServerとかSelf-hosted runnerとかの自分がやったことない系が軒並みわかんなくてもうちょっとドキュメント読んどけばよかったと後悔しました。

前にbeta版のGitHub Copilotの試験を受けたときは超ビビッて↑までやって学習ガイドの内容全部大体説明できる、ぐらいまでやって9割近く取れたので。やはり学習ガイドを制するのが一番安全な道だなぁと思いました。

やっぱり試験が英語だから難しいってのもあったんじゃないの?というのに関しては、英語はそんな難しくもなく、強いて言うとどこが主語?みたいな所で結構しっかり読まないといけないというのはありましたが、試験が英語だから難しく感じたというのはなかったです。

皆さまの試験合格をお祈りしております!

Discussion