公開のガイドライン
Oracle Cloud Infrastructure Marketplaceのテンプレート、スタック、イメージおよびリストを作成するには、関連するすべてのガイドラインに準拠していることを確認してください。
Marketplace Publisherのガイドラインについて
OCIを使用すると、Oracleパートナーは、Oracle Cloud Marketplaceを介してOCIの顧客にソリューションを配布できます。Oracleのお客様は、これらのソリューションが、セキュリティとプライバシーが最優先であることを保証する方法で構築および管理されていると信頼しています。
お客様は、ソリューションが約束どおりに提供され、優れたドキュメントが含まれ、効果的で摩擦の少ないサポート・エクスペリエンスを提供することも期待しています。このドキュメントでは、Oracle Cloud Marketplaceへの組込みに必要なOracleパートナの最低限のバーについて説明します。可能なかぎり、これらの仕様を超えることをお薦めします。これらの標準の例外を含むソリューションは、Oracleによってレビューおよび承認される必要があります。
キーワード
このドキュメントでは、IETF RFC 2119で定義されたキーワードを使用します。詳細は、https://www.ietf.org/rfc/rfc2119.txtを参照してください。
- 必須- この単語、または「必須」または「すべて」という用語は、定義が仕様の絶対要件であることを意味します。
- Must not - このフレーズ、または「Shall not」というフレーズは、定義が仕様の絶対的な禁止であることを意味します。
- should - この単語、または形容詞「推奨」は、特定の項目を無視する特定の状況に有効な理由が存在する可能性があることを意味しますが、完全な意味は、別のコースを選択する前に理解し、慎重に検討する必要があります。
- should not - このフレーズ、または「Not recommended」というフレーズは、特定の動作が許容可能または有用である場合に、特定の状況に有効な理由が存在する可能性があることを意味しますが、完全な意味を理解し、このラベルに記載されている動作を実装する前にケースを慎重に検討する必要があります。
- May - この単語、または形容詞「optional」は、項目が本当に任意であることを意味します。特定のマーケットプレイスでアイテムが必要なため、または別の仕入先が同じアイテムを省略する可能性がある間に仕入先が製品を強化すると感じているために、ある仕入先がアイテムを含めることを選択できます。特定のオプションを含まない実装は、そのオプションを含まない別の実装と相互運用するように準備する必要がありますが、場合によっては機能が低下します。同じ手順で、特定のオプションを含む実装は、オプションを含まない別の実装と相互運用するように準備する必要があります(ただし、オプションが提供する機能については例外です)。
脆弱性重大度レベル
このセクションにセキュリティ脆弱性への参照がある場合、参照はCommon Vulnerability Scoring System (CVSS) v3.0レーティング・システムです。CVSS v3.0の詳細は、https://nvd.nist.gov/vuln-metrics/cvss/v3-calculatorを参照してください。
セキュリティ
Oracle Cloud Infrastructureセキュリティの概要には、次のことが記載されています。
We [Oracle] believe that a dynamic security-first culture is vital to building a successful security-minded organization. We have cultivated a holistic approach to security culture in which all our team members internalize the role that security plays in our business and are actively engaged in managing and improving our products' security posture. We have also implemented mechanisms that assist us in creating and maintaining a security-aware culture.
セキュリティに対するOracle Cloud Infrastructureのアプローチ全体を理解し、理解する必要があります。Oracle Cloud InfrastructureドキュメントのOracle Cloud Infrastructureセキュリティ・ガイドを参照してください。
相互の顧客の信頼を理解し、評価するセキュリティ第一の文化を維持する必要があります。
制御
- ソリューションに影響を及ぼすセキュリティ・アラートおよびアドバイザリの認識を維持する必要があります。セキュリティ・アラートの一般的なソースを次に示します。
- SecurityFocusは、多くのオープン・ソースおよび商用製品に関する最新のアドバイザリを保持します。https://www.securityfocus.com/
- National Vulnerability Database。https://nvd.nist.gov/vuln
- US-CERTおよびIndustrial Control Systems CERT (ICS-CERT)は、最も頻繁に影響を及ぼすセキュリティ・インシデントのサマリーを定期的に更新しています。https://www.us-cert.gov/ics
- SecLists.orgでの完全な開示は、脆弱性と悪用技術の詳細な説明のための、大容量のパブリックかつベンダーに依存しないフォーラムです。https://seclists.org/fulldisclosure/
- Computer Emergency Readiness Team Coordination Center (CERT/CC)には、最も一般的な製品に関する最新の脆弱性情報があります。https://www.cert.org
- 公開したイメージに影響する可能性があるOracle Cloud Infrastructureプラットフォームの更新を監視する必要があります。
- CVSS評価が9.0以上のソリューションに影響を及ぼす脆弱性が新たに発見された場合は、3営業日以内にOCIに通知する必要があります。
- 7.0 から8.9の間のCVSS評価でソリューションに影響を及ぼす脆弱性が新たに検出された場合は、5営業日以内にOracle Cloud Infrastructureに通知する必要があります。
- CVSS評価が4.0から6.9のソリューションに影響を及ぼす脆弱性が新たに発見された場合は、20営業日以内にOCIに通知する必要があります。
- 新しく検出された脆弱性を適切なタイミングで軽減する、更新されたソリューションを公開する必要があります。
- 新たに検出された脆弱性から保護するために、お客様がソリューションを最新の状態に保つことを許可する必要があります。一般的なパターンは次のとおりです。
- セキュリティ更新を自動的に適用します。
- 顧客がセキュリティ更新を適用するコマンドの実行を許可します。
- 顧客が現在のデプロイメントを更新済バージョンに置き換えることができるプロセスを提供します。このプロセスは、必要な作業をお客様が行わないように、十分に摩擦が少ない必要があります。
- 一般的なセキュリティ更新を使用して、更新されたソリューションを四半期ごとに公開する必要があります。
- Oracleに対する脆弱性を公開する前に非開示契約の実行が必要な場合、最初のイメージを公開する前にOracle Confidentiality Agreement (CDA)を締結している必要があります。Oracleパートナ・チームが、このプロセスを支援します。
リストのガイドライン
アプリケーション・リストを作成する際は、関連するガイドラインに精通し、準拠していることを確認してください。
必須ガイドライン
Oracle Cloud Infrastructure Marketplaceのアプリケーション・リストには、次のガイドラインが必須です。各ガイドラインに従う必要があります。承認される前に、各アプリケーションのリストがこれらのガイドラインのそれぞれに対して検証されます。
- アプリケーション名は80文字以内である必要があります。最適な表示には36文字以下にする必要があります。
- アプリ名は明確かつ簡潔で、スペルミスや文法ミスがないものである必要があります。改行がない必要があります。
- ヘッドラインは、アプリケーションの目的を明確に記述する必要があります。2行以下で記述し、スペルミスや文法ミスがないこと。
- リストのフォント/間隔は一貫している必要があります。
- すべてのテキストにスペルミスや文法エラーが含まれていない必要があります。
- 説明は包括的で、ターゲット・オーディエンス/ユーザー・タイプを取得し、リストが価値のある理由を示す必要があります。
- すべてのリンクが正しい場所を指し示し、新しいタブまたはウィンドウで開く必要があります。
- アイコン、バナー、スクリーンショット、動画などのテキストを読みやすくしてください。
- 画像をぼやけたり伸ばしたりしてはいけません。
- 関連ドキュメントでは、ユーザーが次のことを実行できるように、一貫性のある情報を提供する必要があります。
- Marketplaceからインスタンスを起動します。
- インスタンスに接続します
- アプリケーションを設定または開始します。
- 「サポート」セクションには、顧客がパートナ・サポートに従事するための正確な連絡先詳細が含まれている必要があります。これらの連絡先詳細には、正確な電話番号または電子メール・アドレスが含まれている必要があります。
- システム要件には、コンピュート・シェイプ、セキュリティ・ルール、IAMポリシー、ブロック・ボリューム、セカンダリVNICなど、必要なOracle Cloud Infrastructureコンポーネントのリストが含まれている必要があります。
- 利用規約は、アプリのインストールパッケージに含まれており、スペルや文法エラーがないことが必要です。使用条件名は大/小文字にする必要があります。利用規約のリンクは、正しい場所を指し示し、新しいタブまたはウィンドウで開く必要があります。
- アプリケーション・インストール・パッケージのバージョンは、このパッケージの他の関連イメージまたはテキストで指定されたバージョンと一致する必要があります。
- ユーザーは、「使用状況」および「関連ドキュメント」セクションに記載されている手順を使用して、アプリケーションと関連インフラストラクチャを起動、接続および構成できる必要があります。
- 公開される各ソリューションには、顧客向けドキュメントのセットが含まれています。このドキュメント:
- インスタンスに接続するための目立つ詳細な手順を含める必要があります。
- 使用方法のドキュメントまたはドキュメントへのリンクを含める必要があります。
- サポートの詳細またはそれらの詳細へのリンクを含める必要があります。
- 互換性のあるシェイプをリストする必要があります。
- インスタンスでデフォルトで開いているすべてのネットワーク・ポートをドキュメント化する必要があります。
- 了承: 製品およびサービスの購入や顧客への関連サービスの提供(あるいはその両方)が、医療費、医療費、医療費、その他の連邦資金または州資金提供の医療プログラムによって全部または一部資金提供される場合、お客様は、Oracle Cloud Marketplaceで有料Publisherリストを公開しないことに同意します。
推奨ガイドライン
次のガイドラインは、可能なかぎり従うべきベストプラクティスとみなすことができます。
- リリース・ノートは、適切な改行を伴う箇条書きとして指定する必要があります。
- 関連文書には、必要に応じてライセンスを購入する方法に関する情報が含まれている必要があります。
一般的なガイドライン
次に、すべてのタイプのリストに関する一般的なガイドラインを示します。アプリケーションのリストまたはイメージのリストに固有のガイドラインについては、該当するセクションを参照してください。
- リスト・コンテンツがOracle Cloud Marketplaceのクロス・プラットフォーム・スタイルに正しく適合するように、説明セクションで許可されるのは基本的な書式設定のみです。コンテンツが別のリッチ・テキスト・ソース(Microsoft Wordなど)からコピーされている場合は、レビューのためにリストを送信する前に、追加のスタイルが削除されていることを確認してください。
- 非表示のスタイルや書式設定を含めないように、コンテンツをプレーン・テキストで貼り付けることをお薦めします。これらの基本的な書式設定オプションを使用すると、リスト・コンテンツが複数のデバイスおよびプラットフォームにわたって正しく表示されるようになります。
- リスト・コンテンツ内でのOracle商標の使用(Oracle製品名など)は、Oracle商標の第三者使用ガイドラインに準拠している必要があります。
- リスト・コンテンツ内でのOracleロゴの使用(インフォグラフィックやスクリーンショットなど)は、Oracleロゴのサード・パーティ使用上のガイドラインに準拠している必要があります。
- ロゴ、アイコン、バナーなどのイメージの場合:
- イメージが、指定したディメンションと一致するようにサイズ設定されていることを確認します。
- 圧縮を使用して、指定したファイル形式でイメージを保存します。
- イメージ・ファイル・サイズが指定したファイル・サイズ内にあることを確認します。
- バナーは、1160ピクセル(幅)×200ピクセル(高さ)、最大10MBで、BMP、GIF、JPEG(JPG)またはPNGファイルである必要があります。
- 会社のロゴは、115ピクセル×115ピクセル、最大5MBで、BMP、GIF、JPEG (JPG)またはPNGファイルである必要があります。
- アイコンは130ピクセル×130ピクセル(最大5MB)で、BMP、GIF、JPEG (JPG)またはPNGファイルである必要があります。
- アプリケーション・アイコンは、個別かつ一意である必要があります。同じアイコンで複数のアプリケーションを送信しないでください。
- アプリケーション・アイコンにOracleのロゴや商標を使用しないでください。使用されているサード・パーティ・イメージの使用権があることを確認してください。
- 説明セクションの内容は、アプリケーションの概要を示す必要があります。Oracle Cloudでアプリケーションを実行/ホストするお客様の価値とメリットを説明する必要があります。
- 長い説明の前に短い説明を付ける必要があります。長い説明セクションで短い説明を繰り返さないでください。
- この説明は、「Oracle Validated Integration」を強調表示したり参照したりしないでください。Oracle Validated Integration (OVI)プログラムは、オンプレミス・ソリューションにのみ適用され、Oracle Cloudには適用されません。
- 「使用情報」フィールドで:
- スタート・ガイドへのリンクを含めます。このガイドには、ユーザーが開始するために必要な完全な詳細が含まれています。
- テクニカル・ドキュメント、データシート、ユーザー・ガイド、およびその他の関連ドキュメント(「関連ドキュメント」セクションで指定したドキュメントを含む)へのリンクを含めます。
- 開く必要があるポートを一覧表示します。Oracle Cloud Infrastructure Consoleを使用してポートを開くステップを説明する「オープン・ポートの構成方法」などのリンクを追加します。
- 「スクリーンショットとビデオ」フィールドのスクリーンショットの場合:
- 少なくとも2つのスクリーンショットを推奨します。
- スクリーンショット撮影時、ブラウザーのツールバーやメニューを非表示にします。ブラウザのフルスクリーン・モードを使用します。
- スクリーンショットの推奨寸法は、640ピクセル(幅)×480ピクセル(高さ)です。その他の適切なサイズには、1024x768および1200x900があります。これより大きいイメージはトリミングまたはサイズ変更する必要があります。
- 最良の結果を得るには、ネイティブのアスペクト比4:3でイメージを作成する必要があります。携帯電話アプリのスクリーンショットなど、4:3のアスペクト比に適合しない画像の場合は、必要な画像サイズに合わせて適切な色または透明の背景で画像をパディングします。画像エディタを使用してパディングを追加します。
- Screenshotsは最大5 MBで、BMP、GIF、JPEG (JPG)、またはPNGファイルでなければなりません。
- アップロードされたイメージは、メイン・リスト・ページで自動的に240 x 180ピクセルのサムネイルにスケーリングされます。
- アップロードされたイメージは、600 x 450ピクセルのメディア・ビューアに合わせて自動的にスケーリングされます。
- デモンストレーション・ビデオをリストの最初の項目として「スクリーンショットおよびビデオ」フィールドに含めます。
- YouTubeまたはVimeoでホストされているプロモーションビデオは、スクリーンショットリストとメディアビューアに直接埋め込むことができます。
- ビデオのURLアドレスは、
http://
またはhttps://
で始まる必要があります - 主なデモ・ビデオは、アプリケーションの主な機能とOracle Cloudでのアプリケーション/統合の価値に焦点を合わせて、短く、要点を絞る必要があります。
- 長いビデオやプロモーションコンテンツを追加動画として含めることができます。
- 「関連ドキュメント」フィールドで、次の手順を実行します。
- Oracle Cloud統合に固有のデータシートを追加することは、最小要件です。
- データシートは、Oracle Cloud対応のアプリケーションのリリースに固有である必要があります。
- お客様がソフトウェアを構成および設定するための完全な詳細を提供する「Oracle Cloud Infrastructureスタート・ガイド」ドキュメントを追加します。
- 「システム要件」フィールドで:
- アプリケーションのインストールおよび実行に必要なOracle Cloud PaaSサービスを一覧表示します。
- アプリケーションが統合されているすべてのOracle Cloud SaaSサービスをリストします。
- サードパーティーのシステム依存関係を一覧表示します。
- このセクションでは、ブラウザ固有の依存関係またはサポートされているモバイルプラットフォームを含めます。
- バージョンやエディションの依存関係、またはサイズ設定要件(必要な場合)について具体的に説明します。
イメージのガイドライン
Oracle Cloud Infrastructure Marketplaceでイメージ・リストを作成する場合は、リスト用に作成するイメージが関連するガイドラインに準拠していることを確認してください。
Linuxイメージの必須ガイドライン
次の表に、必須のイメージガイドラインおよび対応するエラー・コードを示します。各ガイドラインに従う必要があります。イメージがOracle Cloud Infrastructure Marketplaceに公開される前に、各イメージが次の各必須ガイドラインに対して検証されます。
エラー・コード | 説明 |
---|---|
S01 | SSHホスト・キーは、各インスタンスに対して一意である必要があります。GitHubのoci-utils パッケージによって提供されるoci-image-cleanupユーティリティを使用します。これにより、すべてのSSHホスト鍵が削除され、初回ブート時に再生成されます。 |
S08 | イメージは、インスタンス起動プロセスの一部としてお客様から提供されたSSH公開キーを取り込む必要があります。イメージがcloud-init 対応であることを確認します。 |
S10 | authorized_keys ファイルには、インスタンスの起動時にユーザーが指定したキーのみを含める必要があります。GitHubのoci-utils パッケージによって提供されるoci-image-cleanupユーティリティを使用します。 |
S14 | ルート・ユーザー・ログインを無効にする必要があります。次の3つの条件のうち少なくとも1つを満たす必要があります。
|
S16 | イメージには、オペレーティング・システム・レベルのユーザーがパスワードで構成されておらず、空のパスワードを持つことはできません。 |
G01 | イメージは互換性のあるすべてのシェイプで起動する必要があります。互換性のあるシェイプごとにインスタンスを正常に起動して、手動で検証します。 |
G03 | イメージにハードコードされたMACアドレスを含めることはできません。/etc/udev/rules.d/70-persistent-net.rules ファイルを空にします。 |
G05 | DHCPを有効にする必要があります。手動で構成されていることを確認します。このイメージのインスタンスにSSHで接続できるようにすると、DHCPが有効であることが確認されます。 |
G08 | イメージでインスタンス・メタデータ・サービスv1 (IMDSv1)が使用されていないことを確認します。イメージでIMDSv1エンドポイントが使用されている場合、OracleではIMDSv1を無効にしてIMDSv2にアップグレードすることをお薦めします。Oracle Cloud Infrastructureドキュメントのインスタンス・メタデータ・サービスv2へのアップグレードを参照してください。 |
Windowsイメージの必須ガイドライン
エラー・コード | 内容 |
---|---|
W01 | カスタムWindowsイメージを作成する前に、Sysprepを使用してWindowsインスタンスを一般化する必要があります。汎用イメージの作成を参照してください。 |
W02 | Sysprep generalizeの実行時にopcアカウントを保持しないでください。汎用イメージの作成を参照してください。 |
G08 | イメージでインスタンス・メタデータ・サービスv1 (IMDSv1)が使用されていないことを確認します。イメージでIMDSv1エンドポイントが使用されている場合、OracleではIMDSv1を無効にしてIMDSv2にアップグレードすることをお薦めします。Oracle Cloud Infrastructureドキュメントのインスタンス・メタデータ・サービスv2へのアップグレードを参照してください。 |
Linuxイメージの推奨ガイドライン
Oracle Cloud Infrastructure Marketplaceにリストされているイメージには、次のガイドラインをお薦めします。各ガイドラインは、可能な場合は従うべきベストプラクティスと見なされます。
エラー・コード | 内容 |
---|---|
S02 | 必須アクセス制御(MAC)を有効にする必要があります。https://www.linux.com/news/securing-linux-mandatory-access-controlsを参照してください。 |
S03 | オペレーティング・システム(OS)ファイアウォールは、リスト・ドキュメントに示されているように、特に必要とされないポートをブロックするように有効化および構成する必要があります。 |
S04 | パスワードや秘密鍵といったすべての機密データを削除してください。多くの場合、このタイプのデータは、ログ・ファイル、ソース・コードまたはビルド・アーティファクトにあります。このようなファイルを削除するには、GitHubのoci-utils パッケージによって提供されるoci-image-cleanupユーティリティを使用します。 |
S07 | cloud-init パッケージは、インスタンスの起動時に使用可能である必要があります。 |
S11 | パスワードベースのログインを防ぐためにSSHサービスを構成します。次の設定を手動で構成します。PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no |
S15 | イメージソフトウェアは、最終的なパッケージングプロセスの一部として更新する必要があります。 |
S17 | アプリケーション・パスワードはハードコードしないでください。インスタンスの初回起動時に、パスワードを一意に生成する必要があります。 |
G02 | イメージは準仮想化モードで実行する必要があります。イメージはネイティブ・モードで実行できます。イメージはエミュレート・モードで実行しないでください。 |
G04 | ネットワーク・マネージャを停止する必要があります。https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/3/html/Installation_and_Configuration_Guide/Disabling_Network_Manager.htmlを参照してください。 |
G06 | イメージは、Oracle Cloud Infrastructureによって提供されるNTPサービスを利用する必要があります。インスタンスに対するOracle Cloud Infrastructure NTPサービスの構成を参照してください。 |
G07 | イメージには、適切なブート・ボリューム接続のためにiSCSIタイムアウト値を設定する必要があります。https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Online_Storage_Reconfiguration_Guide/iscsi-modifying-link-loss-behavior-root.htmlを参照してください。 |
スタックに関するガイドライン
Oracleでは、Terraformテンプレートを構築するための一般的なTerraformベスト・プラクティスを採用することをお薦めします。ただし、スタックを公開するために従うべき特定のマーケットプレイス・スタック標準があります。
必須ガイドライン
Oracle Cloud Infrastructure Marketplaceにリストされているスタックの必須ガイドラインを次に示します。各ガイドラインに従う必要があります。公開する前に、各スタック・アーティファクトがこれらのガイドラインのそれぞれに対して検証されます。
- スタック・アーティファクトは、Terraform構成ファイルおよびスキーマ・ファイルを含むzipファイルである必要があります。
- Zipでは、ルート・フォルダに少なくとも1つの構成ファイル
(.tf)
を含める必要があります。 - Zipでは、スキーマ・ファイル
(.yaml)
をルート・フォルダに含める必要があります。 - Zipでは、Terraform状態ファイルをzipファイルに含めることはできません。状態ファイルは、Oracle Resource Manager (ORM)によって管理されます。顧客がスタックを起動すると、ORMはリソースを作成および管理し、状態ファイルはダウンロードのみに使用可能になります。
- ZipにTerraformランタイム構成フォルダ
(.terraform).
を含めることはできません
- Zipでは、ルート・フォルダに少なくとも1つの構成ファイル
- Terraform構成では、承認済または公開済(パブリックまたはプライベート)マーケットプレイス・イメージのインスタンス・イメージのみを使用する必要があります。これらの各イメージのMarketplaceサブスクリプションが必要です。これらのマーケットプレイス・イメージへのハードコードされた参照が必要です。詳細は、マーケットプレイス・イメージ・サブスクリプションおよび使用状況のサンプルTerraform構成を参照してください。
- バイナリは外部リポジトリからダウンロードできません。すべてのバイナリと依存関係は、公開されているマーケットプレイス・イメージにベイク処理する必要があります。
- Terraformリモートexecプロビジョナは、Oracle Cloud Infrastructureドメイン内でのみ実行する必要があります。リモート・サーバー上のファイルをダウンロードしないでください。
- サード・パーティのコードまたはバイナリは、
cloud-init.
を使用してダウンロードしないでくださいcloud-init
は、クラウド・コンピュート・インスタンスで一般的に使用される起動構成ユーティリティです。oci_core_instance
リソースのメタデータ定義の一部として指定されたユーザー・データ・メカニズムを介して構成を受け入れます。cloud-init.
でサポートされる複数のユーザー・データ形式があります。https://cloudinit.readthedocs.io/en/latest/topics/format.htmlを参照してください。- ユーザー・データ形式にかかわらず、
cloud-init
はサードパーティ・コードまたはバイナリのダウンロードには使用しないでください。インスタンスの起動プロセス(ブートストラップ)中に必要なすべてのバイナリ(イメージ内で使用できない場合)は、イメージ配布の一部としてベイク処理されたプロセス(スクリプト)によってダウンロードする必要があり、cloud-init
を介して注入されることはありません(たとえば、wget).
を利用します)。 - ただし、ライセンス・キー・ファイルのインポートや構成ファイルのインポートなど、特定のシナリオで顧客が使用できるように
cloud-init
テンプレートが設定されている場合があります。その場合は、Terraformテンプレート・コードに変数を指定して、顧客がcloud-init
ビルディング・ブロックにデータを入力できるようにする必要があります。たとえば、Terraformtemplate_file
データ・ソースを利用します。
- Terraformプロバイダは、Oracle Cloud Infrastructureである必要があります。他のクラウド・プロバイダやサードパーティ・アプリケーション・プロバイダはサポートされていません。
- Terraformモジュールを使用する場合は、ローカル相対パスからロードする必要があります。リモート・リポジトリからロードできません。
- Terraform構成では、インスタンス・プリンシパル認証を使用する必要があります。
-
スタックをテストした、サポートされているTerraformバージョンの最小値と最大値を指定する必要があります。
~> <major_version>.<minor_version>.<patch_version>
の形式で、必要な最小のTerraformバージョンを指定します。ここで、
patch_version
は常に0に設定されます。スタックが起動されると、Resource Managerはコードで定義した<major_version>.<minor_version>
をチェックし、使用可能な最新のパッチ・バージョンを使用します。そのため、最低限必要なTerraformバージョンを指定する際に、=>
記号のかわりに~>
記号を使用する必要があります。たとえば、
~> 0.14.0
は、サポートされているTerraformバージョンが0.14.0以降であることを示します。< <major_version>.<minor_version>
の形式で、必要な最大Terraformバージョンを指定します。たとえば、
< 0.15
は、サポートされているTerraformバージョンが0.15より前であることを示します。
次の例は、Terraform 0.14でのみスタックをテストした場合に、サポートされる最小および最大Terraformバージョンを指定する方法を示しています。
terraform { required_version = "~> 0.14.0, < 0.15" }
Oracle Cloud Infrastructureプロバイダ、インスタンス・プリンシパル認証、リモートexecプロビジョナなど、Terraformの詳細は、プロバイダ構成のTerraformドキュメントを参照してください。サポートされているバージョンのTerraformの詳細は、Oracle Cloud InfrastructureドキュメントのTerraform Providerのスタート・ガイドを参照してください。
Terraform構成のコーディング・ガイドライン
Oracle Cloud Infrastructure Marketplaceにリストされているスタックには、次のガイドラインをお薦めします。各ガイドラインは、可能な場合は従うべきベストプラクティスと見なされます。
- スタック・アーティファクトを使用すると、すべてのインフラストラクチャ・リソースを作成したり、既存のリソース(ネットワーク、ストレージなど)を指すことができます。
- 命名規則および書式設定に従う必要があります。
- 大/小文字- すべてのネーミングに
lower_snake_case
を使用します。これは、変数名、リソース名、モジュール名、ファイル名、表示名などに適用されます。 - リソース・タイプの指定- 名前にリソースまたはデータ・ソース・タイプを含めないでください。Terraformでは、リソースおよびデータ・ソースは常に
<type>.<name>.
によって参照されますそのため、名前自体に型を含める必要はありません。 - IDとOCID - Oracle Cloud Infrastructureでは、
id
は通常、OCIDを取得するフィールドを参照します。そのため、変数では、ocid
を使用するかわりに、OCID値を参照するときにid
を使用する必要があります。 - 変数名- Oracle Cloud Infrastructureリソースの変数名には、通常、Terraformリソースに使用される名前と同じ名前を使用する必要があります。
- 表示名- Oracle Cloud Infrastructureリソースの表示名は、通常、Terraformリソースに使用するのと同じ名前を使用する必要があります。
- モジュールの変数および出力のネーミング- モジュールを使用する場合、入力(変数)および出力のネーミングを呼出し側に公開する必要があります。
- チェックインする前に、
terraform fmt
をすべてのTerraformに適用する必要があります。
- 大/小文字- すべてのネーミングに