terraform-provider-power-platform

本サイトが提示する下記のベストプラクティスを実行するプロジェクトは、Open Source Security Foundation (OpenSSF) バッジを達成したことを自主的に自己認証し、そのことを外部に示すことができます。

これがあなたのプロジェクトなら、あなたのプロジェクトページにあなたのバッジステータスを表示してください!バッジステータスは次のようになります。 プロジェクト 8714 のバッジ レベルは passing です バッジステータスの埋め込み方法は次のとおりです。

これらはシルバーレベルの基準です。合格またはゴールドレベル基準を表示することもできます。

        

 基本的情報 13/17

  • 識別情報

    Power Platform Terraform Provider

  • 前提要件


    プロジェクトは合格レベルバッジに達成しなければなりません。 [achieve_passing]

  • 基本的なプロジェクト ウェブサイトのコンテンツ


    貢献する方法に関する情報には、受け入れ可能な貢献の要件(例えば、必要なコーディング標準への言及)が含まれなければなりません。 (URLが必要です) [contribution_requirements]
  • プロジェクトの管理・運営


    プロジェクトは、プロジェクト ソフトウェアのそれなりの量を開発しているすべての開発者が、これらの貢献を行うことが法的に認められていると主張すりょうな法的な仕組みを持っていなければなりません。これを行うための最も一般的で簡単に実装されたアプローチは、開発者証明書(DCO)を使用することです。ユーザーは、 DCOのウェブサイトへのプロジェクトのリンクが表示されます。ただし、これはコントリビュータ ライセンス契約(CLA)またはその他の法的な仕組みとして実装することができます。 (URLが必要です) [dco]

    プロジェクトは、プロジェクト ガバナンス モデル(主要な役割を含む意思決定方法)を明確に定義し、文書化しなければなりません。 (URLが必要です) [governance]


    プロジェクトは、行動規範を採択し、標準的な場所に掲示しなければなりません。 (URLが必要です) [code_of_conduct]

    プロジェクトは、プロジェクトでの重要な役割と役割が実行しなければならないタスクを含む責任を明確に定義し、公的に文書化しなければなりません。誰がどの役割を持っているかは明確でなければなりませんが、これは同じ方法で文書化されていない可能性があります。 (URLが必要です) [roles_responsibilities]

    Roles and responsibilities are not defined in the repo



    いずれかの人が仕事を継続できなくなるまたは死亡した場合、プロジェクトは最小限の中断で継続することができなければなりません。特に、プロジェクトは、課題の作成と終了、提案された変更の受け入れ、およびバージョンのソフトウェアのリリース、1週間内に個人が仕事を継続できくなったことまたは死亡したことの確認、行うことができなければならない。これは、他の誰かがプロジェクトを継続するのに必要な鍵、パスワード、法的権利を持っていることを保証することによって行うことができます。 FLOSSプロジェクトを実行する個人は、ロックボックスにキーを提供し、必要な法的権利を提供する意志(例えば、DNS名のために)を提供することによって、これを行うことができます。 (URLが必要です) [access_continuity]

    The repository’s CODEOWNERS file designates the GitHub team @microsoft/power-platform-terraform-maintainers as the default reviewer/approver for every path, ensuring that multiple maintainers—not a single individual—can create issues, merge PRs, and trigger signed releases. If any one maintainer becomes unavailable, other team members still have the permissions and secrets (stored in the organization) to continue project operations within a week, satisfying the access-continuity requirement. https://github.com/microsoft/terraform-provider-power-platform/blob/main/CODEOWNERS



    プロジェクトは2以上の "バス ファクタ"を持っているべきです。 (URLが必要です) [bus_factor]
  • ドキュメンテーション


    プロジェクトは、少なくとも翌年に、プロジェクトが何をしたいか、やるつもりはないかを記述した文書化されたロードマップを持っていなければなりません。 (URLが必要です) [documentation_roadmap]

    プロジェクトは、プロジェクトによって作成されたソフトウェアのアーキテクチャー(いわゆる高水準設計)の文書を含まなければなりません。プロジェクトでソフトウェアが作成されない場合は、「該当なし」(N/A)を選択します。 (URLが必要です) [documentation_architecture]

    プロジェクトは、ユーザーが、プロジェクトによって作成されたソフトウェアからセキュリティの観点から期待できるものと期待できないものを文書化しなければなりません。(セキュリティ要件) (URLが必要です) [documentation_security]


    プロジェクトでは、新規ユーザーがソフトウェアで何かをすばやく実行できるようにするための「クイックスタート」ガイドを提供する必要があります。 (URLが必要です) [documentation_quick_start]

    プロジェクトは、現行バージョンのプロジェクト結果(プロジェクトによって作成されたソフトウェアを含む)とドキュメントの整合性を保つために努力しなければならない。 不一致を招く既知のドキュメントの欠陥は、修正しなければなりません。ドキュメントが一般的に最新のものですが、古い情報が誤って含まれて、もはや正しくない場合は、それを欠陥として扱い、通常どおりに追跡して修正してください。 [documentation_current]

    プロジェクトのリポジトリのフロントページおよび/またはウェブサイトは、このベストプラクティスのバッジを含め、成果が達成されたことを一般に認められてから48時間以内に特定し、ハイパーリンクする必要があります。 (URLが必要です) [documentation_achievements]
  • アクセシビリティと国際化


    プロジェクト(プロジェクト サイトとプロジェクト結果の両方)は、アクセシビリティのベストプラクティスに従い、障害のある人が引き続きプロジェクトに参加し、プロジェクトの結果を合理的な範囲で使用することができるようにするべきです。 [accessibility_best_practices]

    プロジェクトによって作成されたソフトウェアは、ターゲット オーディエンスの文化、地域、または言語へのローカリゼーションを容易にするために国際化されるべきです。国際化(i18n)が適用されない場合(たとえば、ソフトウェアがエンドユーザー向けのテキストを生成せず、人間が読めるテキストを扱わない場合)、「該当なし」(N/A)を選択します。 [internationalization]

    This provider is a back-end plugin that exchanges structured data with the Terraform CLI. It emits a small set of diagnostic strings (errors, warnings, and attribute descriptions) aimed at infrastructure engineers, but it has no end-user UI, does not present menus or documentation in-tool, and does not sort or otherwise process human-readable text. Because the software’s primary interface is machine-readable configuration, internationalization is not relevant to its function.


  • その他


    プロジェクト サイト(ウェブサイト、リポジトリ、およびダウンロードURL)が外部ユーザーの認証用のパスワードを格納する場合、パスワードは、キーストレッチ(反復)アルゴリズム(PBKDF2、Bcrypt、Scrypt、PBKDF2など)を使用してユーザーごとのソルトで反復ハッシュとして保存する必要があります。プロジェクトサイトがこの目的のためにパスワードを保存しない場合は、「該当なし」(N/A)を選択します。 [sites_password_security]

    Does not store passwords


  • 以前のバージョン


    プロジェクトは、最も頻繁に使用される古いバージョンの製品を維持するか、または新しいバージョンへのアップ グレードを提供しなければなりません。アップ グレード方法が困難な場合は、プロジェクトは、アップグレード方法(変更されたインターフェイスや、アップグレードに役立つ詳細な手順など)を記載しなければなりません。 [maintenance_or_update]

    Provides upgrade path to new releases


  • バグ報告プロセス


    プロジェクトは、個々の課題を追跡するための課題トラッカーを使用する必要があります。 [report_tracker]
  • 脆弱性報告プロセス


    プロジェクトは、匿名の報告者を除いて、過去12ヶ月間に解決されたすべての脆弱性の報告者に信用していることを伝えなければなりません。過去12ヶ月間に解決された脆弱性がない場合は、「該当なし」(N / A)を選択します。 (URLが必要です) [vulnerability_report_credit]

    プロジェクトには、脆弱性レポートに対応するための文書化されたプロセスがなければなりません。 (URLが必要です) [vulnerability_response_process]
  • コーディング標準


    プロジェクトは、使用する主要な言語のための特定のコーディング スタイル ガイドを指定しなければなりませんし、貢献が一般にそれに準拠することを要求しなければなりません。 (URLが必要です) [coding_standards]

    DEVELOPER.md instructs contributors to run make precommit, which enforces go fmt and golangci-lint checks; the latter applies Go’s official Code Review Comments style guide and blocks PRs that do not comply. https://github.com/microsoft/terraform-provider-power-platform/blob/main/DEVELOPER.md#L60-L61



    選択した言語において行うことができるFLOSSツールが少なくとも1つあれば、プロジェクトは自動的に選択したコーディングスタイルを適用しなければなりません。 [coding_standards_enforced]
  • 作業ビルドシステム


    ネイティブ バイナリのビルドシステムは、それらに渡される関連するコンパイラおよびリンカ(環境)変数(CC、CFLAGS、CXX、CXXFLAGS、LDFLAGSなど)を受け入れ、コンパイラおよびリンカ呼び出しに渡す必要があります。ビルド システムは追加のフラグでそれらを拡張するかもしれません。提供された値を単にそれ自身のものに置き換えてはいけません。ネイティブバイナリが生成されていない場合は、「該当なし」(N/A)を選択します。 [build_standard_variables]

    The build_standard_variables criterion does not apply to this provider.

    Summary

    The project compiles pure-Go binaries with CGO explicitly disabled (CGO_ENABLED=0). Because no C/C++ compiler or linker is invoked, environment variables such as CC, CFLAGS, CXXFLAGS, or LDFLAGS are irrelevant; therefore the correct questionnaire answer is N/A.

    Evidence that CGO is disabled • The GoReleaser build stanza sets CGO_ENABLED=0, ensuring every release build is pure Go and statically linked.  • Go’s own documentation explains that setting CGO_ENABLED=0 bypasses the ​cgo​ tool and thus avoids any dependence on external C tool-chains.  • Community guides show that CGO_ENABLED=0 go build is the standard way to build Go binaries without honoring CC, CFLAGS, etc. 

    Implications

    Because the provider never calls a native compiler: • Users enable hardening features such as ASan or custom linker flags through Go’s mechanisms (-gcflags, -ldflags) rather than the POSIX variables referenced by the criterion. • There is no risk that the build system will ignore or overwrite CC, CFLAGS, or similar variables, as they are unused.

    Conclusion

    Select “Not applicable (N/A)” for build_standard_variables, with the justification: “The project is built with CGO_ENABLED=0; no native compiler or linker is used, so CC/CFLAGS/CXXFLAGS/LDFLAGS do not apply.”



    ビルドとインストール システムは、関連するフラグ(例えば、 "install -s"が使用されていない)で要求されたデバッグ情報を保存しておくべきです。ビルドやインストール システムがない場合(例:一般的なJavaScriptライブラリ)は、「該当なし」(N/A)を選択します。 [build_preserve_debug]

    プロジェクトによって作成されたソフトウェアのビルド システムは、サブディレクトリに相互依存関係がある場合、再帰的にサブディレクトリをビルドしてはなりません。ビルドやインストール システムがない場合(例:一般的なJavaScriptライブラリ)は、「該当なし」(N/A)を選択します。 [build_non_recursive]

    The Power Platform Terraform provider’s build process relies on Go’s module-aware go build tool and a single top-level Makefile that triggers that tool once per command. Because Go’s build tool automatically understands and orders all package dependencies, no sub-directory is built in isolation, so there is no risk of the “recursive-make” dependency-skew problem that the criterion seeks to avoid. Therefore the project meets the build_non_recursive requirement.



    プロジェクトは、ソースファイルから情報を生成するプロセスを繰り返すことができなければならず、ビット単位でまったく同じ結果を得ることができなければなりません。ビルドが発生しない場合(例えば、ソースコードをコンパイルする代わりに直接使用するスクリプト言語)は、「該当なし」(N/A)を選択します。 [build_repeatable]

    The provider’s build is already bit-for-bit repeatable, so the correct questionnaire answer for build_repeatable is Met.

    Why the build is deterministic 1. Fixed module timestamp – .goreleaser.yml sets mod_timestamp: "{{ .CommitTimestamp }}", forcing the file-modification time on every compiled object to the commit’s Unix epoch, not the current clock time. This removes the usual time-of-build entropy. 2. Path-independent binaries – The -trimpath flag is passed to go build, stripping absolute source paths so that two builders working in different directory trees still emit identical bytes. 3. Version and VCS data pinned to commit – Linker flags embed ProviderVersion, Commit, and Branch, each derived from GoReleaser’s templated values; rebuilding the same tag or commit repeats those constants verbatim. 4. CGO disabled – CGO_ENABLED=0 eliminates variability from external C compilers and host libraries, one of the key prerequisites called out by Go’s reproducible-build guidance. 5. Reproducible-build best-practice alignment – GoReleaser’s own reproducible-build guide recommends exactly this trio (-trimpath, mod_timestamp: "{{ .CommitTimestamp }}", CGO disabled) to achieve bit-for-bit outputs across machines and times. Go’s toolchain maintainers confirm that, with those settings, Go binaries rebuild identically given the same source and toolchain versions.


  • インストールシステム


    プロジェクトは、プロジェクトで作成されたソフトウェアを一般的に使用されているやり方で簡単にインストールおよびアンインストールする方法を提供する必要があります。 [installation_common]

    The software is distributed through the public Terraform Registry, so a user installs it with the conventional workflow (terraform init downloads the declared provider) and removes or upgrades it through the same CLI-managed plugin cache. This leverages Terraform’s language-level package-management convention, satisfying the requirement for an easy, commonly-used installation and uninstallation method. https://registry.terraform.io/providers/microsoft/power-platform/latest/docs



    エンドユーザ用のインストール システムは、インストール時にビルドされる生成物が書き込まれる場所を選択するための標準的な規則を守らなければなりません。たとえば、POSIXシステムにファイルをインストールする場合は、DESTDIR環境変数を守らなければなりません。インストール システムがない場合や標準的な規約がない場合は、「該当なし」(N / A)を選択します。 [installation_standard_variables]

    The provider has no installer of its own; Terraform’s CLI downloads the release binary to its internal plugin cache (~/.terraform.d/plugins or the path set by the user-configurable plugin_cache_dir). Because the project does not run an install script that could honor variables like DESTDIR, the requirement does not apply. https://developer.hashicorp.com/terraform/cli/config/config-file#plugin_cache_dir



    プロジェクトは、潜在的な開発者がすべてのプロジェクト結果を迅速にインストールし、テストやテスト環境を含む変更を行うために必要な環境を迅速にインストールする方法を提供しなければなりません。これは、一般に使用されている手法で実行する必要があります。 [installation_development_quick]

    The repository includes a VS Code Dev Container (.devcontainer/) whose install.sh script automatically installs Go, Terraform, tfplugindocs, Delve, linting tools, and test dependencies; developers open the project in Codespaces or “Remote-Containers,” wait for the container to build, and are immediately ready to edit, run tests, and debug. This one-step Dev Container setup fulfills the requirement for a quick, convention-based development environment. https://github.com/microsoft/terraform-provider-power-platform/blob/main/.devcontainer/features/local_provider_dev/install.sh


  • 外部で維持管理されるコンポーネント


    プロジェクトは、外部依存関係をコンピュータ処理可能な方法でリストしなければなりません。 (URLが必要です) [external_dependencies]

    All external libraries are declared in go.mod, the standard machine-readable manifest for Go modules, enabling automated tooling to resolve exact versions. https://github.com/microsoft/terraform-provider-power-platform/blob/main/go.mod



    プロジェクトは、既知の脆弱性を検出し、悪用可能な脆弱性を修正したり、悪用できない脆弱性として確認するために、外部の依存先(コンビニエンス コピーを含む)を監視または定期的にチェックしなければなりません。 [dependency_monitoring]

    The repository uses GitHub Dependabot for Go modules and Terraform modules, configured in .github/dependabot.yml; Dependabot automatically checks for vulnerable versions and opens PRs to update them, providing continuous dependency-vulnerability monitoring. https://github.com/microsoft/terraform-provider-power-platform/blob/main/.github/dependabot.yml



    プロジェクトは
    1. 再使用された外部管理コンポーネントの識別と更新を容易にできるようにしている、 または
    2. システムまたはプログラミング言語によって提供される標準コンポーネントを使用している
    のどちらかでなければなりません。そうすれば、再利用されたコンポーネントに脆弱性が見つかった場合に、そのコンポーネントを簡単に更新することができます。 [updateable_reused_components]

    All third-party code is pulled via Go modules (see go.mod), and the repository contains no forked “convenience” copies; updating any dependency is a single go get -u (or Dependabot PR) away, satisfying the requirement that reused components be readily identifiable and updatable. https://github.com/microsoft/terraform-provider-power-platform/blob/main/go.mod



    プロジェクトは、使用するテクノロジ セット(その "テクノロジ スタック")において、プロジェクトがサポートするユーザの超大多数がFLOSSの代替案を利用可能な(ユーザが代替手段にアクセスしている)場合には、評価の低いまたは時代遅れの機能とAPIの使用を避けるべきです。 [interfaces_current]

    The provider relies on actively-maintained interfaces—e.g., github.com/hashicorp/terraform-plugin-sdk/v2, the current SDK, instead of the deprecated v1 line—and standard Go packages that are not flagged as obsolete. No deprecated HashiCorp SDKs or outdated Go APIs appear in go.mod, demonstrating that the project keeps to current, supported interfaces. https://github.com/microsoft/terraform-provider-power-platform/blob/main/go.mod


  • 自動テスト スイート


    少なくとも1つのブランチの共有リポジトリへの各チェックインに対して、自動テスト スイートが適用される必要があります。このテスト スイートは、テストの成功または失敗に関するレポートを生成しなければなりません。 [automated_integration_testing]

    Every push and pull-request triggers the “Terraform Provider Checks” GitHub Actions workflow, which builds the provider, runs unit & acceptance tests, and reports pass/fail status in the PR status checks. https://github.com/microsoft/terraform-provider-power-platform/actions/workflows/terraform-provider-checks.yml



    プロジェクトは、過去6ヶ月以内に修正されたバグの少なくとも50%について、自動テスト スイートに回帰テストを追加しなければなりません。 [regression_tests_added50]

    The project does not track fixes and their corresponding regression tests in a way that lets us demonstrate that at least half of the bugs resolved in the past six months received new or updated test coverage; therefore we cannot currently claim compliance with the 50 % regression-test threshold.



    プロジェクトは、選択された言語でこの基準を測定できる少なくとも1つのFLOSSツールがある場合、少なくとも80%のステートメントカバレッジを提供するFLOSS自動テストスイートを備えていなければなりません。 [test_statement_coverage80]

    The CI workflow runs go test -covermode=count -coverprofile=coverage.out, uploads the report to Codecov, and the dashboard shows overall statement coverage above the 80 % threshold, satisfying the requirement. https://github.com/microsoft/terraform-provider-power-platform/actions/workflows/terraform-provider-checks.yml


  • 新機能テスト


    プロジェクトには、主要な新機能が追加されると、新しい機能のテストが自動化されたテスト スイートに追加されなければならないという正式な文書化されたポリシーがなければなりません。 [test_policy_mandated]

    プロジェクトは、変更提案のための文書化された手順に、重要な新機能用にテストを追加するという方針を含まなければなりません。 [tests_documented_added]

    The Pull Request Checklist in CONTRIBUTING.md requires contributors to “Add unit tests and acceptance tests for your contribution … Tests should pass and provide > 80 % coverage of your contribution,” thereby documenting the policy that tests must accompany major new functionality. https://github.com/microsoft/terraform-provider-power-platform/blob/main/CONTRIBUTING.md#pull-request-checklist


  • 警告フラグ


    プロジェクトによって作成されたソフトウェアにある警告に、実際的な場合には、最大限に厳格にならなければなりません。 [warnings_strict]

    The Makefile’s lint target—and the CI workflow that invokes it—runs golangci-lint run, which fails the build on any linter warning, enforcing strict static-analysis and vet checks on every commit. https://github.com/microsoft/terraform-provider-power-platform/blob/main/makefile


  • セキュリティに関する開発知識


    適用できる場合、プロジェクトはセキュア設計原則(「know_secure_design」から)を実装しなければなりません。プロジェクトでソフトウェアが作成されていない場合は、「該当なし」(N / A)を選択します。 [implement_secure_design]

    The project documents and enforces secure-by-design practices—least privilege OAuth scopes, fail-closed error handling, TLS-only transport, and full mediation of API calls—in its contributor security guidelines, which all new code must follow. https://github.com/microsoft/terraform-provider-power-platform/blob/main/devdocs/security_guidelines.md


  • 優良な暗号手法を使用する

    一部のソフトウェアは暗号化メカニズムを使用する必要がないことに注意してください。あなたのプロジェクトが作成するソフトウェアが、(1) 暗号化機能を含む、アクティブ化する、または有効化し、(2) 米国(US)から米国外または米国市民以外にリリースされる可能性がある場合は、法的に義務付けられた追加手順の実行を要求される可能性があります。通常、これにはメールの送信が含まれます。詳細については、 Understanding Open Source Technology & US Export Controls「オープンソース技術と米国の輸出管理について」)の暗号化のセクションを参照してください。

    プロジェクトによって作成されたソフトウェア内のデフォルトのセキュリティ メカニズムは、既知の重大な脆弱性を持つ暗号アルゴリズムやモード(たとえば、SHA-1暗号ハッシュ アルゴリズムまたはSSHのCBC モード)に依存してはいけません。 [crypto_weaknesses]

    All cryptographic operations rely on the Go standard-library TLS stack (TLS 1.2+ with AES-GCM) and Microsoft Entra ID tokens signed with SHA-256; the only hash used directly in the code is SHA-256 (crypto/sha256) in internal/helpers/hash.go. No component depends on SHA-1, MD5, CBC-mode SSH, or other algorithms with known serious weaknesses. https://github.com/microsoft/terraform-provider-power-platform/blob/main/internal/helpers/hash.go



    プロジェクトは複数の暗号アルゴリズムをサポートするべきですので、ユーザーは破られた場合に素早く切り替えることができます。一般的な対称鍵アルゴリズムには、AES、Twofish、およびSerpentがあります。一般的な暗号化ハッシュ アルゴリズムには、SHA-2(SHA-224、SHA-256、SHA-384およびSHA-512を含む)およびSHA-3があります。 [crypto_algorithm_agility]

    The provider defers all cryptographic operations to the Go standard‐library TLS stack, which automatically negotiates among multiple modern cipher suites (e.g., AES-GCM and ChaCha20-Poly1305 with SHA-256/384) during every HTTPS connection. Because at least two strong symmetric ciphers and hash families are available and selected at runtime, users gain algorithm agility without changes to the code. https://pkg.go.dev/crypto/tls#pkg-constants



    プロジェクトは、他の情報(構成ファイル、データベース、ログなど)とは別にしたファイルに、認証資格情報(パスワードやダイナミックトークンなど)やプライベート暗号鍵を格納することをサポートしなければなりませんし、ユーザーがコードの再コンパイルなしにそれらを更新や置き換えできるように許可しなければなりません。プロジェクトが認証資格情報とプライベート暗号化鍵を決して処理しない場合は、「該当なし」(N/A)を選択します。 [crypto_credential_agility]

    The provider accepts all authentication material—client IDs, secrets, certificates, OIDC tokens—via environment variables or dedicated Terraform variables, entirely separate from the main configuration files; users can rotate or replace these credentials at any time without rebuilding the provider. https://registry.terraform.io/providers/microsoft/power-platform/latest/docs#authentication-options



    プロジェクトで作成されたソフトウェアは、ネットワーク通信すべてに対して、SSHv2以降、TLS1.2以降 (HTTPS)、IPsec、SFTP、SNMPv3などのセキュア プロトコルをサポートするべきです。FTP、HTTP、telnet、SSLv3以前、およびSSHv1などのセキュアでないプロトコルは、デフォルトで無効にし、ユーザーが特別に設定した場合のみ有効にするべきです。プロジェクトによって作成されたソフトウェアがネットワーク通信をサポートしない場合は、「該当なし」(N/A)を選択します。 [crypto_used_network]

    All network traffic is made over Microsoft Power Platform REST endpoints, which are HTTPS-only (TLS 1.2+); the provider exposes no option to use plain HTTP or other insecure protocols. https://registry.terraform.io/providers/microsoft/power-platform/latest/docs#authenticating-to-power-platform



    プロジェクトによって作成されたソフトウェアは、TLSをサポートあるいは使用する場合、少なくともTLSバージョン1.2をサポートするべきです。TLSの前身は、SSLと呼ばれていたことに注意して下さい。ソフトウェアがTLSを使用ない場合、「該当なし」(N/A)を選択します。 [crypto_tls12]

    Every API call is made over HTTPS endpoints that require TLS 1.2 or later; no HTTP fallback is available. https://registry.terraform.io/providers/microsoft/power-platform/latest/docs#authentication-options



    TLSをサポートしている場合、プロジェクトで作成されたソフトウェアは、TLSを使う時には、サブリソースを含めて、デフォルトでTLS認証を受けなければなりません。ソフトウェアがTLSを使用しない場合、「該当なし」(N/A)を選択します。 [crypto_certificate_verification]

    The provider relies on Go’s default net/http client—which performs full X.509 certificate validation—and communicates only with HTTPS endpoints, so TLS certificate verification is always enabled by default. https://pkg.go.dev/net/http#Client



    TLSをサポートしている場合、プロジェクトによって作成されたソフトウェアは、(たとえばセキュアクッキーなど)プライベートな情報をHTTPヘッダと共に送信する前に、証明書の検証をしなければなりません。ソフトウェアがTLSを使用しない場合は、「該当なし」(N/A)を選択します。 [crypto_verification_private]

    Using Go’s standard net/http client, the provider completes the TLS handshake (including certificate verification) before it writes any HTTP request—so Authorization headers and other private data are only sent after the certificate is validated. https://pkg.go.dev/net/http#Transport


  • 公開物の安全性


    プロジェクトは、広く普及することを意図しているプロジェクト結果のリリースには暗号で署名しなければなりませんし、パブリック署名鍵を入手して署名を検証する方法をユーザに説明するプロセスがなければなりません。これらの署名の秘密鍵は、ソフトウェアを一般に直接配布するために使用されるサイトにあってはなりません。リリースが広く普及することを意図していない場合は、「該当なし」(N/A)を選択します。 [signed_releases]

    Releases are signed by GoReleaser’s signs block, which detaches a GPG signature over the SHA-256 checksums file using the maintainer’s key (GPG_FINGERPRINT env var); each GitHub release publishes both the *_SHA256SUMS file and its .sig, and the repository’s release instructions explain how to import the public key and verify the signature. https://github.com/microsoft/terraform-provider-power-platform/blob/main/.goreleaser.yml#L40-L55



    バージョン管理システムでは、 signed_releases で説明されているように、重要なバージョンタグ(メジャーリリース、マイナーリリース、または公開されている脆弱性の一部であるタグ)を暗号署名して検証することが推奨されています。 [version_tags_signed]

    Release commits are GPG-signed, but the Git tags themselves are unsigned (the tag pages show no “Verified” badge), so important version tags are not cryptographically verifiable. https://github.com/microsoft/terraform-provider-power-platform/releases/tag/v3.3.0


  • その他のセキュリティ上の課題


    プロジェクトの結果は、潜在的に信頼できないソースからのすべての入力をチェックして有効であること(*allowlist*)を確認し、データに何らかの制限がある場合は無効な入力を拒否しなければなりません。 [input_validation]

    The provider relies on Terraform’s schema typing for basic type-safety, and some attributes include explicit ValidateFunc rules, but a systematic allow-list validation is not applied to every user-supplied string, number, or collection. Several resource fields (for example display_name, description, and JSON policy blobs) accept free-form text with no length, character-set, or pattern checks, so malformed or out-of-range values could still propagate to API calls. Because comprehensive input whitelisting is absent, the project does not yet satisfy the input_validation requirement.



    プロジェクトによって作成されたソフトウェアで強化メカニズムを使用するべきですので、ソフトウェア欠陥がセキュリティ上の脆弱性を引き起こす可能性が低くなります。 [hardening]

    Release binaries are built with Go 1.22 using the flags -trimpath (strips source-path leakage) and CGO_ENABLED=0, which yields position-independent, RELRO-protected, statically linked PIE executables compiled by a memory-safe language. These defaults give stack canaries, ASLR, RELRO, and NX by design—hardening the binary even without extra C flags. https://github.com/microsoft/terraform-provider-power-platform/blob/main/.goreleaser.yml#L12-L19



    プロジェクトは、そのセキュリティ要件が満たされていることを証明する保証ケースを提供しなければならない。保証ケースには、脅威モデルの説明、信頼境界の明確な識別、セキュアな設計原則が適用されていることの議論、共通の実装セキュリティの弱点が対処されたことの議論が含まれなければならない。 (URLが必要です) [assurance_case]
  • 静的コード解析


    プロジェクトは、選択された言語でこの基準を実装できる少なくとも1つのFLOSSツールがある場合、解析された言語または環境で共通の脆弱性を探すためのルールまたはアプローチを備えた少なくとも1つの静的解析ツールを使用しなければならなりません。 [static_analysis_common_vulnerabilities]

    Every push and pull-request triggers the CodeQL workflow in GitHub Actions, which runs CodeQL’s Go security queries to detect common vulnerabilities such as SQL injection, command execution, and unsafe deserialization. Thus the project applies a FLOSS static-analysis tool focused on vulnerability discovery. https://github.com/microsoft/terraform-provider-power-platform/actions/workflows/codeql.yml


  • 動的コード分析


    もしプロジェクトで作成されたソフトウェアにメモリ安全でない言語(CやC ++など)を使用して作成されたソフトウェアが含まれているならば、そのときには 少なくとも1つの動的ツール(たとえば、ファジーまたはウェブ アプリケーション スキャナ)を、バッファの上書きなどのメモリの安全性の問題を検出するメカニズムと一緒にいつも使用します。プロジェクトがメモリ安全でない言語で書かれたソフトウェアを作成しない場合は、「該当なし」(N/A)を選択します。 [dynamic_analysis_unsafe]

    The entire codebase is written in Go with CGO_ENABLED=0, so no memory-unsafe C or C++ code is compiled; therefore dynamic memory-safety tools are not applicable. https://github.com/microsoft/terraform-provider-power-platform/blob/main/go.mod



This data is available under the Community Data License Agreement – Permissive, Version 2.0 (CDLA-Permissive-2.0). This means that a Data Recipient may share the Data, with or without modifications, so long as the Data Recipient makes available the text of this agreement with the shared Data. Please credit Matt Dotson and the OpenSSF Best Practices badge contributors.

プロジェクト バッジ登録の所有者: Matt Dotson.
エントリの作成日時 2024-03-26 23:43:05 UTC、 最終更新日 2025-04-26 07:54:20 UTC 最後に2024-03-27 04:40:06 UTCにバッジ合格を達成しました。

もどる