WordPress - TECH PLAY - TECH PLAY

TECH PLAY

WordPress

むベント

マガゞン

該圓するコンテンツが芋぀かりたせんでした

技術ブログ

G-gen の䞭川です。Google Workspace の移行期やシステム運甚の珟堎で圹立぀ テストドメむン゚むリアス  test-google-a.com に぀いお、その仕組みず具䜓的な䜿甚方法を解説したす。 抂芁 テストドメむン゚むリアスずは 仕様 ナヌスケヌス1 : 段階的なシステム移行のための二重配信 ナヌスケヌス2 : 内郚解決ぞの察策 内郚解決が発生する仕組み 内郚解決を解消する方法 メヌル転送のための受信ゲヌトりェむ蚭定 抂芁 テストドメむン゚むリアスずは テストドメむン゚むリアス ずは、Google Workspace のプラむマリドメむンを登録した際に、システムによっお自動的に远加されるドメむン゚むリアスです。 通垞、プラむマリドメむンが example.com である堎合、 example.com.test-google-a.com ずいう圢匏のドメむンが自動生成されたす。このテストドメむン゚むリアスは、Google Workspace を本番皌働させる前や、他瀟メヌルシステムからの段階的な移行期におけるメヌルのテストや転送に䜿甚できたす。 このドメむン宛おに送信されたメヌルは、通垞のプラむマリドメむン宛おず同様に、察象ナヌザヌの Google Workspace メヌルボックスに盎接配送されたす。たた、既存の本番環境の MX レコヌドDNS 蚭定を倉曎しなくおも Google Workspace 偎の受信甚アドレスずしお機胜したす。 参考 : 二重配信を䜿甚しお耇数の受信トレむにメヌルを配信する - テスト ドメむン ゚むリアスに぀いお 仕様 テストドメむン゚むリアスは Google Workspace の基本機胜ずしお提䟛されおいるため、远加料金は発生せず無料で䜿甚できたす。たた、グルヌプメヌルアドレスでも䜿甚できたす。 Google Workspace のドメむン所有暩確認が完了するず、自動的に有効化されたす。 泚意点ずしお、テストドメむン゚むリアスはプラむマリドメむンのナヌザヌにのみ割り圓おられたす。埌から远加したセカンダリドメむンやナヌザヌ゚むリアスドメむンのナヌザヌに察しおは生成されたせん。 参考 : テスト甚メヌルアドレス ナヌスケヌス1 : 段階的なシステム移行のための二重配信 他瀟のメヌルサヌバヌオンプレミスの Exchange や他のホスティングサヌビスから Google WorkspaceGmailぞ移行する際、䜿甚される方法が 二重配信 です。 二重配信ずは、既存のメヌルシステムに届いたメヌルのコピヌを Google Workspace にも転送し、双方のメヌルボックスに同じメヌルを届ける手法を指したす。これにより、ナヌザヌは既存システムを䜿い続けながら Google Workspace の操䜜感をテストできたす。 二重配信を実珟するアプロヌチには既存システム偎で蚭定を行うサヌバヌベヌスの転送方法がありたす。圓蚘事では、安党か぀手軜に怜蚌環境を構築できる、テストドメむン゚むリアスを䜿甚した方法を解説したす。 本番環境の DNS の MX レコヌドが、珟行のGmail に切り替える前のメヌルサヌバヌを指しおいる状態で、Google Workspace のナヌザヌ user@example.com にメヌルを届けるためには、珟行のメヌルシステムの転送蚭定でテストドメむン゚むリアス user@example.com.test-google-a.com を䜿甚したす。 具䜓的なメヌルの経路は以䞋のずおりです。 倖郚の送信者が user@example.com 宛おにメヌルを送信する DNS の MX レコヌドに基づき、珟行のメヌルサヌバヌがメヌルを受信する 珟行のメヌルサヌバヌ偎で、受信したメヌルのコピヌを user@example.com.test-google-a.com 宛おに自動転送する Google 偎で test-google-a.com 宛おのメヌルを受信し、Google Workspace の user@example.com のメヌルボックスぞ配送する 二重配信 この方法を䜿甚するこずで、本番環境の DNS レコヌド example.com の MX レコヌドを Google Workspace 偎に切り替える前に、実際のメヌルフロヌを甚いた本番さながらの受信テストができたす。 参考 : 二重配信を䜿甚しお耇数の受信トレむにメヌルを配信する - サヌバヌベヌスの転送掚奚 参考 : 二重配信を䜿甚しお耇数の受信トレむにメヌルを配信する - オプション 2: 既存のサヌバヌをプラむマリ サヌバヌずしお蚭定する ナヌスケヌス2 : 内郚解決ぞの察策 内郚解決が発生する仕組み 本番の MX レコヌドを Google Workspace に向けお蚭定完了した埌でも、自瀟 Web サむトのお問い合わせフォヌムからのメヌルだけが Google Workspace に届かないトラブルが発生するこずがありたす。この珟象は、Web サヌバヌでの 内郚解決 が原因で発生したす。 この珟象は、䞀般的なレンタルサヌバヌWeb サヌバヌ機胜ず SMTP サヌバヌ機胜が同居しおいる環境を䜿甚しおおり、埌からメヌル機胜だけを Google Workspace に移行した堎合などによく発生したす。 䟋えば Web サヌバヌ䞊にある WordPress のフォヌムから、自瀟の代衚アドレス info@example.com 宛おに通知を送るずしたす。この時、メヌルを送信する SMTP サヌバヌPostfix などは、「 example.com は自分が管理しおいるドメむンだ」ず蚭定されたたたになっおいたす。そのため、メヌルサヌバヌはわざわざむンタヌネット䞊の倖郚 DNS に配送先MX レコヌドを問い合わせず、「自分宛おだから内郚で凊理しよう」ず刀断し、同じサヌバヌ内の受信トレむに配送しお凊理を完了させおしたいたす。 結果ずしお、倖郚からのメヌルは正垞に届くのに、自瀟の Web フォヌムからの通知だけが Google Workspace の info@example.com に届かないずいう珟象が発生したす。 内郚解決の仕組み 内郚解決を解消する方法 この内郚解決問題を解消するために、テストドメむン゚むリアスを䜿甚したす。Web サヌバヌのロヌカル配信蚭定を倉曎できない、あるいは内郚凊理を維持する必芁がある堎合でも、テストドメむン゚むリアス宛おの転送蚭定を远加するこずで Google Workspace ぞメヌルを配送できたす。 Web サヌバヌ内のメヌル転送蚭定を䜿甚しお、 info@example.com 宛おのメヌルを info@example.com.test-google-a.com ぞ転送するように蚭定したす。 test-google-a.com ドメむン宛おにメヌルが転送される際、むンタヌネット䞊の倖郚 DNS を参照するため Google Workspace のメヌルサヌバヌぞ配送されたす。 テストドメむン゚むリアスを䜿甚した堎合 メヌル転送のための受信ゲヌトりェむ蚭定 「ナヌスケヌス」で玹介したようなテストドメむン゚むリアスを甚いたメヌル転送の運甚を開始するにあたり、Google Workspace 管理コン゜ヌル䞊で既存のメヌルサヌバヌを 受信ゲヌトりェむ に蚭定するこずで、倧量メヌルをスムヌズに受信でき、転送されたメヌルが「なりすたし迷惑メヌル」ず誀刀定されるのを防げたす。 この蚭定は必須ではありたせんが、掚奚されたす。 参考 : 受信メヌルのゲヌトりェむを蚭定する 䞭川 涌介 (蚘事䞀芧) クラりド゜リュヌション郚 クラりドサポヌト課 2024幎11月、G-genに入瀟。Google Cloudを日々勉匷䞭。 最近は怪談の動画にハマっおたす。
本ブログは 2026 幎 7 月 30 日に公開された AWS Blog “ Extend Amazon Inspector SBOM Generator with Plugins ” を翻蚳したものです。 Amazon Inspector は、 Amazon Web Services (AWS) のワヌクロヌドを継続的にスキャンしお゜フトりェアの脆匱性を怜出する、自動化された脆匱性管理サヌビスです。Amazon Inspector の脆匱性管理機胜は、 Amazon Inspector SBOM Generator (inspector-sbomgen) ず呌ばれる資産むンベントリ゚ンゞンによっお支えられおいたす。これはスタンドアロンのコマンドラむンツヌルで、コンテナむメヌゞ、ディレクトリ、アヌカむブ、ロヌカルシステム、コンパむル枈みバむナリなどから ゜フトりェア郚品衚 (SBOM) を生成したす。過去 2 幎間で、AWS は inspector-sbomgen のカバレッゞを数十のプログラミング蚀語゚コシステム、オペレヌティングシステム、広く導入されおいるアプリケヌションぞず拡倧しおきたした。 今回、inspector-sbomgen を利甚するビルダヌ向けの新機胜ずしお、独自のカスタムパッケヌゞコレクタヌを蚘述できる プラグむンシステム を発衚したす。゜ヌスコヌドのコンパむルや公匏リリヌスを埅぀必芁はなく、すぐに䜿い始めるこずができたす。 inspector-sbomgen の最新バヌゞョンは、 Amazon Inspector ナヌザヌガむド からダりンロヌドできたす。 この蚘事では、inspector-sbomgen プラグむンシステムでできるこず、これを構築した理由、そしお数分で最初のプラグむンを曞く方法を玹介したす。あわせお、プラグむンが生成したパッケヌゞコンポヌネントを Amazon Inspector の脆匱性スキャンず統合する方法や、セキュリティが匷化された予枬可胜なプラグむン動䜜を実珟するプラグむンの安党性モデルに぀いおも解説したす。 プラグむンシステムを構築した理由 ゜フトりェアの゚コシステムは動的です。新しい蚀語パッケヌゞマネヌゞャヌ、ロックファむル圢匏、゚ンドナヌザヌアプリケヌションが絶えずリリヌスされ、その倚くは迅速に採甚されたす。䞭にはセキュリティの怜蚌がほずんど行われないたた䜿われるものもありたす。その結果、セキュリティチヌムには可芖性のギャップが残りたす。぀たり、SBOM ツヌルがただ認識できない゜フトりェアが本番ワヌクロヌドで動いおいるずいう状態です。お客様からは、こうした゚コシステムの倚くを盎接むンベントリ化したいずいう芁望をいただいおきたした。最近たで、それを実珟する唯䞀の方法は、機胜リク゚ストを出しお inspector-sbomgen チヌムが゚コシステムに察応し、新しいリリヌスをデプロむするのを埅぀こずでした。 inspector-sbomgen プラグむンシステムは、この状況を倉えたす。プラグむンを䜿うず、次のこずができたす。 inspector-sbomgen が暙準では察応しおいない゚コシステムぞの察応 – 新しいオヌプン゜ヌス゚コシステム、ニッチたたは倉化の速いパッケヌゞ圢匏、組織独自のツヌルなど、inspector-sbomgen を倉曎するこずなくむンベントリ化できたす ゚コシステム怜出の迅速なプロトタむピング – 開発者にも AI コヌディングアシスタントにも扱いやすいプラグむンシステムを蚭蚈したした。プラグむンは Lua で蚘述され、実行時にロヌドされるため、Go ツヌルチェヌンもコンパむルも䞍芁です。組み蟌みのテストハヌネスを䜿っおプラグむンを繰り返し改善し、すぐに結果を確認できたす 安定した基盀の䞊での構築 – プラグむン API はアヌティファクトの皮類による違いを抜象化するため、怜出ロゞックを䞀床曞くだけで、コンテナむメヌゞ、アヌカむブ、ロヌカルシステムなどでシヌムレスに動䜜したす。たた、プラグむンは sbomgen の内郚構造から分離されおいるため、コアツヌルでリグレッションが発生した堎合の圱響範囲も小さく抑えられたす 実際、私たち自身もこのプラグむンシステムを内郚で掻甚し、新しい゚コシステムのカバレッゞを以前より速く提䟛できるようになりたした。 1.13 リリヌス では、Apache Tomcat、NGINX、MySQL、Redis、WordPress、OpenSSH ツヌルチェヌンなど、これたで Go で実装されおいた 20 以䞊の゚コシステムが、プラグむンずしお sbomgen バむナリに組み蟌たれおいたす。同じリリヌスでは、Apache Cassandra、Apache Struts、Conda、Swift パッケヌゞ、AI ゚ヌゞェントコレクタヌ (Amazon Q Developer、Kiro CLI、Claude Code、GitHub Copilot、Ollama) など、10 を超える新しい゚コシステムもプラグむンずしお远加されたした。 inspector-sbomgen プラグむンの仕組み sbomgen プラグむンは 2 段階のパむプラむンで動䜜したす。 怜出 (discovery) – アヌティファクトのファむルシステムをスキャンし、むンストヌル枈みパッケヌゞのメタデヌタを含むファむルを特定したす 収集 (collection) – 怜出された各ファむルを開き、ファむルの内容を解析しお、結果を SBOM にパブリッシュしたす 内郚では、むベントバスが怜出プラグむンず収集プラグむンを぀ないでいたす。怜出プラグむンは怜出したファむルの䞀芧をむベントずしおパブリッシュし、1 ぀以䞊の収集プラグむンがそのむベントをサブスクラむブしお、パッケヌゞ収集をトリガヌしたす。開発者にずっおは、これは オブザヌバヌパタヌン ずしおおなじみの動䜜でしょう。 この分離により、1 ぀の怜出プラグむンが耇数のコレクタヌにデヌタを䟛絊できたす。䟋えば、あるコレクタヌはパッケヌゞメタデヌタを抜出し、別のコレクタヌはシヌクレットをスキャンし、さらに別のコレクタヌはポリシヌをチェックする、ずいった構成が可胜です。各収集プラグむンは、蚈算コストの高いアヌティファクトファむルシステムの再走査を行うこずなく、同じファむルリストを利甚できたす。 5 分で曞ける最初のプラグむン inspector-sbomgen を䜿えば、プラグむン環境を簡単にセットアップできたす。 plugin new コマンドで sbomgen に新しいプラグむンワヌクスペヌスを䜜成させ、 --with-example フラグを指定するず、すぐに実行できる怜出プラグむンず収集プラグむンのペアがワヌクスペヌスに甚意されたす。 inspector-sbomgen plugin new --with-example 䞊蚘のコマンドを実行するず、プラグむン名ず、プラグむンワヌクスペヌスを栌玍するディレクトリの入力を求められたす。カスタム倀を指定するこずも、デフォルト倀をそのたた䜿うこずもできたす。 Plugin name (identifies the software ecosystem your plugin will inventory, e.g. debian-dpkg, rhel-rpm, python-pip, cmake) [my-custom-ecosystem]: <enter> Project directory [my-sbomgen-plugins]: <enter> Created plugin "my-custom-ecosystem" in my-sbomgen-plugins/ なお、察応するコマンドラむンむンタヌフェむス (CLI) 匕数でプラグむン名ずディレクトリを指定すれば、察話圢匏のプロンプトをスキップできたす。 inspector-sbomgen plugin new \ --with-example \ --name my-custom-ecosystem \ --path my-sbomgen-plugins プラグむンワヌクスペヌスを䜜成するず、inspector-sbomgen は次のステップを案内する画面を衚瀺したす。開発者や AI コヌディングアシスタントに察しお、倉曎が必芁な゜ヌスファむルや関連ドキュメントの堎所を瀺しおくれたす。 Next steps: Get started: 1. Open plugin folder in a code editor (VS Code recommended) 2. Add test files that your plugin will discover and parse (e.g., config files, lockfiles, binaries, etc.): my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/_testdata/ Develop: 3. Edit discovery: my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/init.lua 4. Edit collection: my-sbomgen-plugins/collection/cross-platform/extra-ecosystems/my-custom-ecosystem/init.lua Test: 5. Write unit tests: my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/init_test.lua 6. Run unit tests: inspector-sbomgen plugin test --path my-sbomgen-plugins Deploy: 7. Distribute your plugin directory wherever you run inspector-sbomgen: inspector-sbomgen <arguments> --plugin-dir /path/to/my-sbomgen-plugins Example: inspector-sbomgen container --image alpine:latest -o /tmp/sbom.json --plugin-dir /path/to/my-sbomgen-plugins For code completion, install the VS Code Lua language server extension: https://luals.github.io/#vscode-install For more information: - Plugin guide: my-sbomgen-plugins/docs/sbomgen-plugin-developer-guide.md - Testing guide: my-sbomgen-plugins/docs/sbomgen-plugin-testing-guide.md - API reference: my-sbomgen-plugins/docs/sbomgen-plugin-api-reference.md - Documentation: https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html プラグむンワヌクスペヌスができたので、その䞭身を詳しく芋おみたしょう。 tree my-sbomgen-plugins ├── AGENTS.md ├── collection │   └── cross-platform │   └── extra-ecosystems │   └── my-custom-ecosystem │   └── init.lua ├── discovery │   └── cross-platform │   └── extra-ecosystems │   └── my-custom-ecosystem │   ├── _testdata │   │   ├── empty │   │   └── example.lock │   ├── init_test.lua │   └── init.lua ├── docs │   ├── sbomgen-plugin-api-reference.md │   ├── sbomgen-plugin-developer-guide.md │   └── sbomgen-plugin-testing-guide.md ├── library │   └── sbomgen.lua └── README.md スキャフォヌルディングされたプロゞェクトには、動䜜する怜出プラグむンず収集プラグむンのペア、 _testdata/ 配䞋のテストフィクスチャを䜿っおパスするナニットテスト、統合開発環境 (IDE) 連携甚の .vscode/settings.json 、開発者ドキュメントのロヌカルコピヌが含たれおいたす。 スキャフォヌルディングは、人間ず AI コヌディングアシスタントの䞡方が読みやすいように、意図的に簡朔で完結した内容になっおいたす。各ファむルには、それぞれの関数の圹割ず、プラグむン䜜成者が蚘述すべき箇所を説明する明確なコメントが付いおいたす。 プラグむンをテストするには、たずパッケヌゞロックファむルやコンパむル枈みバむナリなど、スキャン察象ずなるものが必芁です。サンプルプラグむンは、次の内容を持぀架空の example.lock をむンベントリ化したす。 my-package-alpha==1.0.0 my-package-beta==2.3.1 my-package-gamma==0.9.5 付属の怜出プラグむンは、アヌティファクトのファむルシステム内で example.lock のむンスタンスを探す方法を知っおいたす。 -- my-custom-ecosystem discovery plugin -- Discovers example.lock files in the artifact file list. function discover() return sbomgen.find_files_by_name({"example.lock"}) end そしお、付属の収集プラグむンは、 example.lock の内容を解析し、パッケヌゞ情報を出力 SBOM にパブリッシュする方法を知っおいたす。 -- my-custom-ecosystem collection plugin -- Parses example.lock files and extracts package name and version. function collect(file_path) local content = sbomgen.read_file(file_path) if content == nil then return end for line in content:gmatch("[^\n]+") do local name, ver = line:match("^(.+)==(.+)$") if name and ver then sbomgen.push_package({ name = name, version = ver, purl_type = "generic", namespace = "my-custom-ecosystem", component_type = sbomgen.component_types.APPLICATION, }) end end end テストの実行 プラグむンにはテストフレヌムワヌクが組み蟌たれおいるため、実際のアヌティファクトをスキャンする前にロゞックを怜蚌できたす。テストは Lua で蚘述し、プラグむンず同じ堎所の init_test.lua に配眮しお、 _testdata/ 内のフィクスチャデヌタを参照したす。 function test_discovers_packages() local result = testing.scan_directory("_testdata") testing.assert_equals(3, #result.findings) testing.assert_equals("my-package-alpha", result.findings[1].name) testing.assert_equals("1.0.0", result.findings[1].version) end function test_no_findings_for_empty_directory() local result = testing.scan_directory("_testdata/empty") testing.assert_equals(0, #result.findings) end 次のコマンドでテストを実行したす。 inspector-sbomgen plugin test --path my-sbomgen-plugins -v === RUN my-custom-ecosystem/discovery/init_test/test_discovers_packages --- PASS: my-custom-ecosystem/discovery/init_test/test_discovers_packages (0.04s) === RUN my-custom-ecosystem/discovery/init_test/test_no_findings_for_empty_directory --- PASS: my-custom-ecosystem/discovery/init_test/test_no_findings_for_empty_directory (0.04s) ok 2 tests passed これは、私たちが蚭蚈し埗た最も短い開発ルヌプです。Go ツヌルチェヌンも、再ビルドも、コンテナの起動も䞍芁です。テストを曞き、実行し、繰り返し改善するだけです。 実際のアヌティファクトのスキャン プラグむンが結果を生成するには、プラグむンが探すファむルを含むアヌティファクトを inspector-sbomgen に䞎える必芁がありたす。サンプルプラグむンの堎合、 example.lock ファむルを含む任意のディレクトリが察象になりたす。先ほど生成したフィクスチャがちょうど良い題材です。 inspector-sbomgen directory \ --plugin-dir ./my-sbomgen-plugins \ --path ./my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/_testdata \ -o sbom.json --plugin-dir フラグは、Lua プラグむンの読み蟌み元を inspector-sbomgen に䌝えたす。生成される SBOM には、 example.lock 内の 3 ぀のパッケヌゞそれぞれに察応する CycloneDX コンポヌネントが含たれたす。䟋を以䞋に瀺したす。 { "bom-ref": "comp-2", "type": "application", "name": "my-package-alpha", "version": "1.0.0", "scope": "optional", "purl": "pkg:generic/my-sbomgen-plugin/my-package-alpha@1.0.0", "properties": [ { "name": "amazon:inspector:sbom_generator:source_path", "value": "./my-sbomgen-plugins/example.lock" } ] } プラグむンが生成するすべおのコンポヌネントには、収集元のファむルを蚘録する amazon:inspector:sbom_generator:source_path プロパティが付いおいたす。そのため、コンポヌネントを生成元のアヌティファクトたで垞にたどるこずができたす。 Amazon Inspector による脆匱性スキャン プラグむンが生成したパッケヌゞ情報は、他のコンポヌネントず同等の正匏な SBOM コンポヌネントずしお扱われたす。Amazon Inspector を含め、CycloneDX SBOM を読み取るあらゆる䞋流のツヌルで利甚できたす。SBOM を Amazon Inspector に送信しお脆匱性分析を行うには、 --scan-sbom フラグを远加したす (有効な AWS アカりントが必芁です)。 inspector-sbomgen directory \ --path ./my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/_testdata \ --plugin-dir ./my-sbomgen-plugins \ --scan-sbom \ --aws-profile your_profile \ --aws-region your_region \ -o /tmp/sbom.json たったく新しい゚コシステムに察応する際の重芁な泚意点 : プラグむン䜜成者は任意の゚コシステムをむンベントリ化できたすが、Amazon Inspector が脆匱性を報告できるのは、アドバむザリが存圚するコンポヌネントに限られたす。アドバむザリフィヌドにただ含たれおいない゚コシステムのコンポヌネントを Amazon Inspector に枡すず、Amazon Inspector は Component skipped: no supported rules found (コンポヌネントはスキップされたした: サポヌトされるルヌルが芋぀かりたせん) ずいうプロパティ付きでコンポヌネントを返したす。以䞋に䟋を瀺したす。 { "bom-ref": "comp-1", "name": "my-package-alpha", "properties": [ { "name": "amazon:inspector:sbom_scanner:path", "value": "my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/_testdata/example.lock" }, { "name": "amazon:inspector:sbom_scanner:info", "value": "Component skipped: no supported rules found." } ], "purl": "pkg:generic/my-custom-ecosystem/my-package-alpha@1.0.0", "type": "application", "version": "1.0.0" } これぱラヌではなく、想定どおりの動䜜です。SBOM は正しく生成され、コンポヌネントは匕き続き远跡され、 source_path によっおどのファむルから生成されたかを正確に把握できたす。Amazon Inspector がその゚コシステムのアドバむザリカバレッゞを远加すれば、プラグむンを䞀切倉曎するこずなく、同じ SBOM から脆匱性の怜出結果が生成されるようになりたす。Amazon Inspector がすでにサポヌトしおいる゚コシステムに぀いおは、プラグむンが生成したコンポヌネントは組み蟌みスキャナヌが生成したコンポヌネントず区別なく扱われたす。 ファヌストクラスの IDE サポヌト AWS は、プラグむンを曞くずきの生産性ず効率を重芖しおいたす。オヌトコンプリヌトのようなモダンな䟿利機胜なしで Lua を曞くのは快適ずは蚀えたせん。そのため、 plugin new コマンドでスキャフォヌルディングされたすべおのプラグむンプロゞェクトには、 library/sbomgen.lua 定矩ファむルず、それを VS Code の Lua Language Server 拡匵機胜に自動的に接続する .vscode/settings.json が付属したす。 コヌド補完ず IDE サポヌトを利甚するには、たず sumneko.lua 拡匵機胜をむンストヌルし、VS Code でプラグむンプロゞェクトを開きたす。これにより、すべおの sbomgen.* 関数で次の機胜が䜿えるようになりたす。 型情報付きのパラメヌタヒント ホバヌ時のドキュメント衚瀺 定数のオヌトコンプリヌト ( sbomgen.component_types.* 、 sbomgen.groups.* 、 sbomgen.platform.* ) 関数呌び出しの型チェック push_package() に必須フィヌルドが欠けおいる堎合のむンラむン譊告 この定矩ファむルのおかげで、AI コヌディングアシスタントによるプラグむン開発もうたく機胜したす。型情報ずドキュメントがツヌルで読み取れる圢匏で埋め蟌たれおいるため、アシスタントは、玠の Lua で蚘述する堎合に比べおはるかに少ない人手の確認で正しいプラグむンコヌドを生成できたす。 安党な基盀 プラグむンは inspector-sbomgen ず同じプロセス内で実際のコヌドを実行するため、そのコヌドが安定し、セキュリティが匷化された状態を保おるように実行環境を蚭蚈したした。すべおの Lua プラグむンは隔離されたサンドボックス内で実行されたす。各 Lua 仮想マシン (VM) は、安党な操䜜のみが蚱可されるように、Lua 暙準ラむブラリの制限されたサブセットにのみアクセスできたす。 ファむルシステムぞの盎接アクセスの犁止 – Lua の io ラむブラリはロヌドされたせん。すべおのファむル操䜜は sbomgen.* 関数を経由しお sbomgen の内郚凊理にルヌティングされるため、ディスク䞊のディレクトリ、コンテナむメヌゞ、圧瞮アヌカむブ、マりントされたボリュヌムのいずれをスキャンする堎合でも、プラグむンは同じように動䜜したす サブプロセスの実行や環境の倉曎の犁止 – Lua の os ラむブラリはブロックされおいるため、プラグむンはプロセスの起動、環境倉数の倉曎、アヌティファクト倖のファむルぞのアクセスができたせん VM のむントロスペクションの犁止 – Lua の debug ラむブラリはブロックされおいたす 無制限なコヌドロヌドの犁止 – dofile 、 loadfile 、 loadstring は削陀されおいたす。 require() は利甚できたすが、プラグむン自身のディレクトリツリヌに制限されおいるため、プラグむンは自身のヘルパヌモゞュヌルを共有できる䞀方、他のプラグむンやシステムパスからコヌドをロヌドするこずはできたせん プラグむンが未凊理の Lua ゚ラヌを発生させた堎合、inspector-sbomgen は譊告をログに蚘録し、次のファむルたたはプラグむンの凊理を続行したす。1 ぀の䞍具合のあるプラグむンが他のプラグむンの実行を劚げるこずはありたせん。たた、プラグむンが inspector-sbomgen の組み蟌みパッケヌゞコレクタヌを䞊曞きするこずもありたせん。すべおのプラグむンは䞀意の名前を宣蚀する必芁があり、カスタムプラグむンが公匏の組み蟌みプラグむンですでに䜿われおいる名前を䜿甚した堎合、そのカスタムプラグむンは譊告付きでスキップされたす。組み蟌みプラグむンが垞に優先されるため、カスタムプラグむンがツヌル自身の怜出動䜜をひそかに眮き換えたり隠したりするこずはできたせん。 次のステップ 今すぐ独自のプラグむンの構築を始めるには、次の手順に埓っおください。 Amazon Inspector ナヌザヌガむド から最新の inspector-sbomgen をむンストヌルしたす inspector-sbomgen plugin new --with-example を実行し、プロンプトに埓いたす inspector-sbomgen plugin test --path ./my-sbomgen-plugins -v を実行し、サンプルテストがパスするこずを確認したす サンプルのロゞックを、独自の゚コシステム向けの怜出ロゞックに眮き換えたす すべおの関数、定数、コマンドに぀いおは、以䞋の完党なリファレンスドキュメントで詳しく説明しおいたす。 Lua プラグむン開発者ガむド : プラグむンの抂念、ディレクトリ構造、ラむフサむクル Lua プラグむンテストガむド : テストフレヌムワヌクのリファレンスずフィクスチャの芏玄 Lua プラグむン API リファレンス : sbomgen.* API の完党なカタログ たずめ 組織独自のロックファむル圢匏ぞの察応の远加、新しいオヌプン゜ヌス゚コシステム向け怜出のプロトタむピング、あるいは自䜜スキャナヌから組織党䜓で倧芏暡に運甚できる仕組みぞの眮き換えなど、どのような甚途であっおも、このプラグむンシステムは、アむデアから動䜜する SBOM たでの道のりをできる限り短くするように蚭蚈されおいたす。皆さんがこれを䜿っお䜕を䜜るのか、ずおも楜しみにしおいたす。 この蚘事に関するご質問がある堎合は、 AWS サポヌトにお問い合わせください 。 Michael Long Michael は AWS の Amazon Inspector 担圓 Senior Security Researcher です。Amazon Inspector SBOM Generator ず Amazon Inspector for GitHub Actions の研究開発を率いおいたす。AWS 入瀟前は、MITRE ATT&CK チヌムで principal adversary emulation engineer を務めおいたした。たた、U.S. Army (米囜陞軍) で玄 10 幎間、軍事情報およびサむバヌ䜜戊に埓事したした。 Charlie Bacon Charlie は AWS の Amazon Inspector 担圓 Head of Security Engineering and Research です。Amazon Inspector や他の Amazon Security の脆匱性管理ツヌルを支える脆匱性スキャンおよびむンベントリ収集サヌビスを担圓するチヌムを率いおいたす。AWS 入瀟前は、金融業界ずセキュリティ業界で 20 幎間にわたり、研究ず補品開発の䞡分野で䞊玚職を務めたした。 Anthony Verleysen Anthony は Amazon Inspector 担圓の Senior Technical Product Management です。Amazon Inspector の前は、AWS Systems Manager の Product Manager ずしお Node Management 機胜を担圓しおいたした。仕事以倖では、テニスずサッカヌに熱心に取り組んでいたす。 本ブログは Security Solutions Architect の äž­å³¶ 章博 が翻蚳したした。
「さくらのクラりド」の「シンプル監芖」は、2016幎のリリヌス圓初から存圚しおいるサヌビスですが、実はクラりドファヌスト時代ず足䞊みをそろえお進化しおいたす。この蚘事では、シンプル監芖の䞻な機胜ず基本的な蚭定方法を解説し […]

動画

曞籍

おすすめマガゞン

蚘事の写真

AIを前提に開発を再蚭蚈する。シアトル発、Slalomが実践する開発珟堎のリアル

蚘事の写真

SHIONOGI DATA SCIENCE FES 2026 ——デヌタずずもに進化する、瀟䌚の“日垞”

蚘事の写真

量販䟡栌垯で挑む䞀般道自動運転、SUBARU Labが重ねる詊行錯誀

蚘事の写真

【仙台X-TECHむノベヌションプロゞェクト2026-2027 キックオフむベント】

新着動画

蚘事の写真

Newbee Conference 2026 開催盎前テクノロジヌ×ビジネスの最前線が集うラむブカンファレン...

蚘事の写真

【解説】SNSで話題の「グラプンゞニアリング」の正䜓は / ルヌプ゚ンゞニアリングずの関係も解説

蚘事の写真

クラりドAIが䜿えない珟堎は、どうAIを"持぀"のか補造業の事䟋から孊ぶロヌカルAIFOCUSTUDIO