DevOps IAMポリシー
IAMポリシーを作成して、DevOpsリソースへのアクセス権を持つユーザーを制御し、ユーザー・グループごとにアクセス権のタイプを制御します。
コード・リポジトリ、ビルド・パイプライン、デプロイメント・パイプラインなどのDevOpsリソースへのアクセス権を制御する前に、ユーザーを作成して適切なグループに配置する必要があります(ユーザーの管理およびグループの管理を参照)。その後、アクセス権を制御するポリシーおよびポリシー・ステートメントを作成できます(ポリシーの管理を参照)。
デフォルトでは、Administrators
グループのユーザーはすべてのDevOpsリソースにアクセスできます。IAMポリシーを初めて使用する場合は、ポリシーの開始を参照してください。
Oracle Cloud Infrastructureのすべてのポリシーの完全なリストは、ポリシー・リファレンスおよび共通ポリシーを参照してください。
リソース・タイプおよび権限
DevOpsリソース・タイプおよび関連する権限のリスト。
すべてのDevOpsリソースに権限を割り当てるには、devops-family
集約タイプを使用します。詳細は、権限を参照してください。
<verb> devops-family
を使用するポリシーは、個々のリソース・タイプごとに個別の<verb> <resource-type>
ステートメントを使用してポリシーを記述することと同じです。
リソース・タイプ | 権限 |
---|---|
デボップスファミリー | 動詞inspect, read, use, manage は、すべてのDevOpsリソース・タイプの権限に適用されます。動詞 |
devops-project |
|
devops-deploy-family |
動詞
|
devops-deploy-artifact |
|
devops-deploy-environment |
|
devops-deploy-pipeline |
|
devops-deploy-stage |
|
devops-deployment |
|
devops-work-requests |
|
デボプス・リポジトリ・ファミリー |
動詞
動詞 |
devops-repository |
|
devops-pull-request |
|
デボプスプルリクエストコメント |
|
デボプス保護ブランチ |
|
デボプスビルファミリー |
指定された動詞
|
devops-build-pipeline |
|
devops-build-pipeline-stage |
|
devops-build-run |
|
devops-connection |
|
devops-trigger |
|
サポートされる変数
変数は、条件をポリシーに追加するときに使用されます。
DevOpsでは、次の変数がサポートされます:
- エンティティ: Oracle Cloud Identifier (OCID)
- 文字列: フリーフォーム・テキスト。
- 数値: 数値(任意精度)
- リスト: エンティティ、文字列または数値のリスト
- ブール: TrueまたはFalse
すべてのリクエストの一般的な変数を参照してください。
変数は小文字で、ハイフン区切りです。たとえば、target.tag-namespace.name
、target.display-name
です。ここで、name
は一意である必要があり、display-name
は説明です。
必要な変数は、リクエストごとにDevOpsサービスによって提供されます。自動変数は、認可エンジンによって提供されます(シック・クライアントではSDKを使用したサービス・ローカルで、シン・クライアントではアイデンティティ・データ・プレーンで提供されます)。
必要な変数 | タイプ | 説明 |
---|---|---|
target.compartment.id |
エンティティ(OCID) | リクエストのプライマリ・リソースのOCID |
request.operation |
文字列 | リクエストの操作ID (例: GetUser ) |
target.resource.kind |
文字列 | リクエストのプライマリ・リソースのリソース種類名 |
自動変数 | タイプ | 説明 |
---|---|---|
request.user.id |
エンティティ(OCID) | リクエスト・ユーザーのOCID。 |
request.groups.id |
エンティティ(OCID)のリスト | リクエスト・ユーザーが属しているグループのOCID。 |
target.compartment.name |
文字列 | target.compartment.id で指定されたコンパートメントの名前 |
target.tenant.id |
エンティティ(OCID) | ターゲット・テナントIDのOCID |
次に、変数の使用可能なソースのリストを示します:
- リクエスト: リクエスト入力から取得されます。
- 導出: リクエストから取得されます。
- 格納: サービスから取得され、入力が保持されます。
- 計算: サービス・データから計算されます。
変数とリソース・タイプのマッピング
リソース・タイプ | 変数 | タイプ | ソース | 説明 |
---|---|---|---|---|
|
target.project.id |
入力 | 格納 | プロジェクト・リソースに対する取得、更新、削除および移動操作に使用できます。 |
|
target.project.name |
文字列 | 格納 | プロジェクト・リソースに対する取得、更新、削除および移動操作に使用できます。 |
devops-deploy-artifact |
target.artifact.id |
エンティティ | 格納 | アーティファクト・リソースに対する取得、更新および削除操作に使用できます。 |
devops-deploy-environment |
target.environment.id |
エンティティ | 格納 | 環境リソースに対する取得、更新および削除操作に使用できます。 |
|
target.pipeline.id |
エンティティ | 格納 | パイプライン・リソースに対する取得、更新および削除操作に使用できます。 |
devops-deploy-stage |
target.stage.id |
エンティティ | 格納 | ステージ・リソースに対する取得、更新および削除操作に使用できます。 |
devops-deployment |
target.deployment.id |
エンティティ | 格納 | デプロイメント・リソース・タイプに対する取得、更新および削除操作に使用できます。 |
devops-repository
|
target.repository.id |
エンティティ | 格納 | リポジトリ・リソースに対する取得、更新、削除および移動操作に使用できます。 |
devops-pull-request-comment |
target.pull-request.id |
エンティティ | 格納 | プル・リクエスト・リソースに対する取得、更新、削除操作に使用できます。 |
devops-repository
|
target.repository.name |
エンティティ | 格納 | リポジトリ・リソースに対する取得、更新、削除および移動操作に使用できます。 |
devops-pull-request-comment |
target.pull-request.display-name |
文字列 | 格納 | プル・リクエスト・リソースに対する取得、更新、削除操作に使用できます。 |
devops-repository |
target.branch.name |
エンティティ | 格納 | リポジトリ・ブランチでのupload-pack、受信パックなどのGit操作に使用できます。 |
devops-protected-branch |
target.branch.name |
文字列 | 格納 | 保護されたブランチ・リソースに対する取得、更新、削除および移動操作に使用できます。 |
devops-repository |
target.tag.name |
エンティティ | 格納 | リポジトリ・ブランチでのupload-pack、receive-packなどのGit操作に使用できます。 |
devops-pull-request |
target.pull-request.id |
エンティティ | 格納 | プル・リクエスト・リソースに対する取得、更新、削除操作に使用できます。 |
devops-pull-request |
target.pull-request.display-name |
文字列 | 格納 | プル・リクエスト・リソースに対する取得、更新、削除操作に使用できます。 |
devops-connection |
target.connection.id |
エンティティ | 格納 | 接続リソースに対する取得、更新および削除操作に使用できます。 |
devops-trigger |
target.trigger.id |
エンティティ | 格納 | トリガー・リソースに対する取得、更新および削除操作に使用できます。 |
|
target.build-pipeline.id |
エンティティ | 格納 | ビルド・パイプライン・リソースに対する取得、更新および削除操作に使用できます。 |
devops-build-pipeline-stage |
target.build-pipeline-stage.id |
エンティティ | 格納 | ビルド・パイプライン・ステージ・リソースに対する取得、更新および削除操作に使用できます。 |
devops-build-run |
target.build-run.id |
エンティティ | 格納 | ビルド実行リソースに対する取得、更新、削除および取消操作に使用できます。 |
動詞とリソース・タイプの組合せの詳細
DevOpsリソースの各動詞でカバーされる権限およびAPI操作を識別します。
アクセスのレベルは、inspect
からread
、use
、manage
の順に累積します。表のセルのプラス記号(+)
は、前のセルと比較した場合に増分アクセスを示します。すべての権限(検査、読取り、使用および管理)は、すべてのDevOpsリソースを含むdevops-family
リソース・タイプに適用されます。
アクセス権の付与の詳細は、権限を参照してください。
この表は、devops-project
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
DEVOPS_PROJECT_INSPECT |
ListProjects |
コンパートメント内のすべてのプロジェクト・リソースをリストします。 |
read |
|
|
特定のプロジェクトをIDで取得します。 |
use |
|
|
特定のプロジェクトを更新します。 |
manage |
|
|
プロジェクト・リソースを作成します。 |
manage |
|
|
特定のプロジェクトを削除します。 |
manage |
|
|
プロジェクトを別のコンパートメントに移動します。 |
この表は、devops-deploy-family
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
|
|
|
read |
|
|
|
use |
|
|
|
manage |
|
|
|
この表は、devops-deploy-artifact
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
DEVOPS_DEPLOY_ARTIFACT_INSPECT |
ListDeployArtifacts |
プロジェクトまたはコンパートメント内のすべてのアーティファクトをリストします。 |
read |
|
|
特定のアーティファクトをIDで取得します。 |
use |
|
|
特定のアーティファクトをIDで更新します。 |
manage |
|
|
プロジェクト内にアーティファクト・リソースを作成します。 |
manage |
|
|
特定のアーティファクトをIDで削除します。 |
この表は、devops-deploy-environment
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
DEVOPS_DEPLOY_ENVIRONMENT_INSPECT |
ListDeployEnvironments |
アプリケーションまたはコンパートメント内のすべての環境をリストします。 |
read |
|
|
特定の環境をIDで取得します。 |
use |
|
|
特定の環境をIDで更新します。 |
manage |
|
|
アプリケーション内にデプロイメント・ターゲットの環境を作成します。 |
manage |
|
|
特定の環境をIDで削除します。 |
この表は、devops-deploy-pipeline
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
DEVOPS_DEPLOY_PIPELINE_INSPECT |
ListDeployPipelines |
コンパートメント内のすべてのパイプライン・リソースをリストします。 |
read |
|
|
特定のパイプラインをIDで取得します。 |
use |
|
|
特定のパイプラインをIDで更新します。 |
manage |
|
|
パイプライン・リソースを作成します。 |
manage |
|
|
特定のパイプラインを削除します。 |
この表は、devops-deploy-stage
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
DEVOPS_DEPLOY_STAGE_INSPECT |
ListDeployStages |
パイプラインまたはコンパートメント内のすべてのステージをリストします。 |
read |
|
|
特定のステージをIDで取得します。 |
use |
|
|
特定のステージをIDで更新します。 |
manage |
|
|
パイプライン内にステージを作成します。 |
manage |
|
|
特定のステージをIDで削除します。 |
この表は、devops-deployment
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
DEVOPS_DEPLOYMENT_INSPECT |
ListDeployments |
コンパートメント内のすべてのデプロイメントをリストします。 |
read |
|
|
特定のデプロイメントをIDで取得します。 |
use |
|
|
特定のステージをIDで更新します。 |
use |
|
|
手動承認を待機している特定のデプロイメントを承認します。 |
use |
|
|
実行中のデプロイメントを取り消します。 |
manage |
|
|
特定のパイプラインのデプロイメントを作成します。 |
manage |
|
|
特定のデプロイメントを削除します。 |
この表は、devops-work-requests
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
DEVOPS_WORK_REQUEST_INSPECT |
ListWorkRequests |
コンパートメント内のすべての作業リクエストをリストします。 |
read |
|
|
特定の作業リクエストをIDで取得します。 |
この表は、devops-repository-family
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
|
|
|
read |
inspect+
|
|
|
use |
|
|
|
manage |
|
|
|
この表は、devops-repository
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
DEVOPS_REPOSITORY_INSPECT |
ListRepositories |
すべてのリポジトリ・リソースをコンパートメントID、プロジェクトIDまたはリポジトリIDでリストします。 |
read |
|
|
特定のリポジトリをIDで取得します。 |
use |
|
|
特定のリポジトリをIDで更新します。 |
manage |
|
|
リポジトリを作成します。 |
manage |
|
|
特定のリポジトリをIDで削除します。 |
この表は、devops-connection
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
DEVOPS_CONNECTION_INSPECT |
ListConnections |
プロジェクトまたはコンパートメント内のすべての接続をリストします。 |
read |
|
|
特定の接続をIDで取得します。 |
use |
|
|
特定の接続をIDで更新します。 |
use |
|
|
接続のPATを検証します。 |
manage |
|
|
プロジェクトに接続リソースを作成します。 |
manage |
|
|
特定の接続をIDで削除します。 |
この表は、devops-trigger
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
DEVOPS_TRIGGER_INSPECT |
ListTriggers |
プロジェクトまたはコンパートメント内のすべてのトリガーをリストします。 |
read |
|
|
特定のトリガーをIDで取得します。 |
use |
|
|
特定のトリガーをIDで更新します。 |
manage |
|
|
プロジェクトにトリガー・リソースを作成します。 |
manage |
|
|
特定のトリガーをIDで削除します。 |
この表は、devops-build-family
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
|
|
|
read |
|
|
|
use |
|
|
|
manage |
|
|
|
この表は、devops-build-pipeline
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
DEVOPS_BUILD_PIPELINE_INSPECT |
ListBuildPipelines |
コンパートメント内のすべてのビルド・パイプライン・リソースをリストします。 |
read |
|
|
特定のビルド・パイプラインをIDで取得します。 |
use |
|
|
特定のビルド・パイプラインをIDで更新します。 |
manage |
|
|
ビルド・パイプライン・リソースを作成します。 |
manage |
|
|
特定のビルド・パイプラインを削除します。 |
この表は、devops-build-pipeline-stage
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
DEVOPS_BUILD_PIPELINE_STAGE_INSPECT |
ListBuildPipelineStages |
ビルド・パイプラインまたはコンパートメント内のすべてのステージをリストします。 |
read |
|
|
特定のビルド・パイプライン・ステージをIDで取得します。 |
use |
|
|
特定のビルド・パイプライン・ステージをIDで更新します。 |
manage |
|
|
ビルド・パイプラインにステージを作成します。 |
manage |
|
|
特定のビルド・パイプライン・ステージをIDで削除します。 |
この表は、devops-build-run
リソースの権限と、権限によって完全にカバーされるAPIを示しています。
動詞 | 権限 | カバーされるAPI | 説明 |
---|---|---|---|
inspect |
DEVOPS_BUILD_RUN_INSPECT |
ListBuildRuns |
プロジェクトまたはコンパートメント内のビルド実行をリストします。 |
read |
|
|
特定のビルド実行をIDで取得します。 |
use |
|
|
既存のビルド実行を更新します。 |
use |
|
|
実行中のビルド実行を取り消します。 |
manage |
|
|
特定のビルド・パイプラインのビルド実行を開始します。 |
manage |
|
|
既存のビルド実行を削除します。 |
ポリシーおよび動的グループの作成
ビルド・パイプライン、デプロイメント・パイプライン、アーティファクト、コード・リポジトリなどの様々なDevOpsリソースにアクセスする権限をユーザーに付与するには、グループ、動的グループおよびIAMポリシーを作成する必要があります。
ポリシーによって、グループは、特定のコンパートメント内の特定のタイプのリソースを一定の方法で操作できます。
ポリシー
次に、Oracle Cloudコンソールでポリシーを作成する方法を示します:
- ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「アイデンティティ」で、「ポリシー」をクリックします。
- ポリシーの作成をクリックします。
- ポリシーの名前と説明を入力します。
- 「ポリシー・ビルダー」で、「手動エディタの表示」スイッチをクリックしてエディタを有効にします。
次のフォーマットでポリシー・ルールを入力します:
Allow <group> to <verb> <resource_type> in <compartment or tenancy details>
- 「作成」をクリックします。
ポリシーの作成の詳細は、ポリシーの仕組みおよびポリシー・リファレンスを参照してください。
グループを作成してグループにユーザーを追加するには、グループの管理を参照してください。
動的グループ
動的グループは、定義したルールに一致するリソース(コンピュート・インスタンスなど)を含む特別なタイプのグループです。
一致ルールは、動的グループに属するリソースを定義します。コンソールでは、指定されたテキスト・ボックスにルールを手動で入力するか、ルール・ビルダーを使用できます。詳細は、動的グループを定義するための照合ルールの記述を参照してください。match-any
ルールを使用して、複数の条件を照合します。
DevOpsDynamicGroup
などの名前を付け、compartmentOCID
を実際のコンパートメントのOCIDに置き換えます: ALL {resource.type = 'devopsdeploypipeline', resource.compartment.id = 'compartmentOCID'}
ALL {resource.type = 'devopsrepository', resource.compartment.id = 'compartmentOCID'}
ALL {resource.type = 'devopsbuildpipeline',resource.compartment.id = 'compartmentOCID'}
ALL {resource.type = 'devopsconnection',resource.compartment.id = 'compartmentOCID'}
作成に必要な権限など、動的グループの詳細は、動的グループの管理および動的グループのポリシーの記述を参照してください。
DevOpsDynamicGroup
に必要なポリシー・ステートメント: Allow dynamic-group DevOpsDynamicGroup to manage devops-family in compartment <compartment_name>
アイデンティティ・ドメインを持つテナンシの場合、ドメイン名は、ポリシーの動的グループ名の前に置かれる必要があります。たとえば、
domain-name/{DevOpsDynamicGroup}
ですポリシーの例
コード・リポジトリ、ビルド・パイプライン、デプロイメント・パイプラインなど、様々なDevOpsリソースを使用するために必要なDevOpsポリシー。
次のポリシーの例が提供されます:
環境ポリシー
デプロイメントに使用されるターゲット環境を作成するためのポリシーの例。
コンソールを使用したポリシーの作成については、手順を参照してください。
Allow group <group-name> to manage virtual-network-family in compartment <compartment_name> where any {request.operation='CreatePrivateEndpoint', request.operation='UpdatePrivateEndpoint', request.operation='DeletePrivateEndpoint', request.operation='EnableReverseConnection', request.operation='ModifyReverseConnection', request.operation='DisableReverseConnection'}
コード・リポジトリ・ポリシー
コード・リポジトリを作成し、GitHubやGitLabなどの外部コード・リポジトリに接続するためのポリシーの例。
コンソールを使用したポリシー、グループおよび動的グループの作成については、手順を参照してください。
- グループ内のユーザーがDevOpsプロジェクトにアクセスできるようにします:
Allow group <group-name> to read devops-project in compartment <compartment_name>
- グループ内のユーザーがリポジトリの読取り、作成、更新または削除を行うことができるようにします:
Allow group <group-name> to manage devops-repository in compartment <compartment_name>
- グループ内のユーザーがDevOpsプロジェクトにアクセスできるようにします:
Allow group <group-name> to read devops-project in compartment <compartment_name>
- グループ内のユーザーがリポジトリの読取りまたは更新を行うことができるようにします:
Allow group <group-name> to use devops-repository in compartment <compartment_name>
Allow dynamic-group DevOpsDynamicGroup to read secret-family in compartment <compartment_name>
Allow group <group-name> to use devops-connection in compartment <compartment_name>
Allow dynamic-group DevOpsDynamicGroup to inspect users in tenancy
プル・リクエストを作成するには、ユーザーが実行できるアクションに基づいてポリシーを定義する必要があります。詳細は、プル・リクエストの管理を参照してください。
ビルド・パイプライン・ポリシー
ビルド・パイプラインを作成し、ステージをパイプラインに追加するためのポリシーの例。
コンソールを使用したポリシーの作成については、手順を参照してください。
- 動的グループによるコンパートメント内のOCIリソースへのアクセスを許可するIAMポリシーを作成します:
- アーティファクトをデリバリするには、コンテナ・レジストリ(OCIR)へのアクセス権を付与します:
Allow dynamic-group DevOpsDynamicGroup to manage repos in compartment <compartment_name>
- 個人アクセス・トークン(PAT)のボールトにアクセスするには、secret-familyへのアクセス権を付与します。このポリシーは、ソース・コードのダウンロードでPATにアクセスするために「マネージド・ビルド」ステージで必要です:
Allow dynamic-group DevOpsDynamicGroup to read secret-family in compartment <compartment_name>
- 「アーティファクトの配信」ステージでデプロイメント・アーティファクトを読み取り、「マネージド・ビルド」ステージでDevOpsコード・リポジトリを読み取って、「デプロイのトリガー」ステージでデプロイメント・パイプラインをトリガーするアクセス権を付与します:
Allow dynamic-group DevOpsDynamicGroup to manage devops-family in compartment <compartment_name>
- アーティファクトをデリバリするには、アーティファクト・レジストリへのアクセス権を付与します:
Allow dynamic-group DevOpsDynamicGroup to manage generic-artifacts in compartment <compartment_name>
- 通知を送信するには、ビルド・パイプラインへのアクセス権を付与します:
Allow dynamic-group DevOpsDynamicGroup to use ons-topics in compartment <compartment_name>
- アーティファクトをデリバリするには、コンテナ・レジストリ(OCIR)へのアクセス権を付与します:
- 「管理対象ビルド」ステージでプライベート・アクセス設定を許可するポリシーを作成します:
Allow dynamic-group DevOpsDynamicGroup to use subnets in compartment <customer subnet compartment>
Allow dynamic-group DevOpsDynamicGroup to use vnics in compartment <customer subnet compartment>
プライベート・アクセス構成でネットワーク・セキュリティ・グループ(NSG)が指定されている場合、ポリシーでNSGへのアクセスを許可する必要があります:Allow dynamic-group DevOpsDynamicGroup to use network-security-groups in compartment <customer subnet compartment>
- ビルド・パイプラインがトランスポート層セキュリティ(TLS)検証用の認証局(CA)バンドル・リソースにアクセスできるようにするポリシーを作成します:
Allow dynamic-group DevOpsDynamicGroup to use cabundles in compartment <compartment_name>
ADMリソースにアクセスするためのポリシー
ビルド・パイプラインからアプリケーション依存性管理(ADM)サービスのリソースにアクセスするためのポリシーの例。
コンソールを使用したポリシーの作成については、手順を参照してください。
Allow dynamic-group DevOpsDynamicGroup to use adm-knowledge-bases in tenancy
Allow dynamic-group DevOpsDynamicGroup to manage adm-vulnerability-audits in tenancy
デプロイメント・パイプライン・ポリシー
デプロイメント・パイプラインを作成し、ステージをパイプラインに追加するためのポリシーの例。
コンソールを使用したポリシーの作成については、手順を参照してください。
-
OKEクラスタ・デプロイメント:
Allow dynamic-group DevOpsDynamicGroup to read all-artifacts in compartment <compartment_name> Allow dynamic-group DevOpsDynamicGroup to manage cluster in compartment <compartment_name>
- ファンクション:
Allow dynamic-group DevOpsDynamicGroup to manage fn-function in compartment <compartment_name> Allow dynamic-group DevOpsDynamicGroup to read fn-app in compartment <compartment_name> Allow dynamic-group DevOpsDynamicGroup to use fn-invocation in compartment <compartment_name>
- インスタンス・グループ・デプロイメント:
Allow dynamic-group DevOpsDynamicGroup to read all-artifacts in compartment <compartment_name> Allow dynamic-group DevOpsDynamicGroup to read instance-family in compartment <compartment_name> Allow dynamic-group DevOpsDynamicGroup to use instance-agent-command-family in compartment <compartment_name> Allow dynamic-group DevOpsDynamicGroup to use load-balancers in compartment <compartment_name> Allow dynamic-group DevOpsDynamicGroup to use vnics in compartment <compartment_name>
インスタンス・グループ・デプロイメントの場合、次のインスタンスの動的グループを作成して、その動的グループに特定の権限を付与する必要もあります:- インスタンスの動的グループを作成します。たとえば、動的グループに
DeployComputeDynamicGroup
という名前を付け、compartmentOCID
を実際のコンパートメントのOCIDに置き換えます:All {instance.compartment.id = 'compartmentOCID'}
- デプロイメント・インスタンスに必要なアクセス権を付与するIAMポリシーを作成します:
Allow dynamic-group DeployComputeDynamicGroup to use instance-agent-command-execution-family in compartment <compartment_name> Allow dynamic-group DeployComputeDynamicGroup to read generic-artifacts in compartment <compartment_name> Allow dynamic-group DeployComputeDynamicGroup to read secret-family in compartment <compartment_name>
- インスタンスの動的グループを作成します。たとえば、動的グループに
- Helmステージ・デプロイメント:
Allow dynamic-group DevOpsDynamicGroup to read all-artifacts in compartment <compartment_name> Allow dynamic-group DevOpsDynamicGroup to manage cluster in compartment <compartment_name> Allow dynamic-group DevOpsDynamicGroup to read repos in compartment <compartment_name>
- 「承認」ステージ:
Allow group pipeline1_approvers to use devops-family in compartment <compartment_name> where all {request.principal.id = 'ocid1.pipeline1'} Allow group pipeline2_approvers to use devops-family in compartment <compartment_name> where all {request.principal.id = 'ocid1.pipeline2'}
- 「シェル」ステージ:
Allow dynamic-group DevOpsDynamicGroup to manage compute-container-instances in compartment <compartment_name> Allow dynamic-group DevOpsDynamicGroup to manage compute-containers in compartment <compartment_name> Allow dynamic-group DevOpsDynamicGroup to use vnics in compartment <compartment_name> Allow dynamic-group DevOpsDynamicGroup to use subnets in compartment <compartment_name> Allow dynamic-group DevOpsDynamicGroup to use dhcp-options in compartment <compartment_name>
「シェル」ステージの作成時にネットワーク・セキュリティ・グループを使用する場合、次のポリシーを追加します:Allow dynamic-group DevOpsDynamicGroup to use network-security-groups in compartment <compartment_name>
アーティファクト・ポリシー
ビルド・パイプラインに「アーティファクトの配信」ステージを追加するためのポリシーの例。
「アーティファクトの配信」ステージでは、「マネージド・ビルド」ステージからのビルド出力がバージョンとともにマップされ、DevOpsアーティファクト・リソースに、その後Oracle Cloud Infrastructure (OCI)コード・リポジトリにデリバリされます。DevOpsは、OCIコンテナ・レジストリ・リポジトリとアーティファクト・レジストリ・リポジトリに格納されているアーティファクトをサポートします。「アーティファクトの配信」ステージの追加を参照してください。
コンソールを使用したポリシーの作成については、手順を参照してください。
次のIAMポリシーを作成します:
- テナンシまたは特定のコンパートメントに属するコンテナ・レジストリ内のすべてのリポジトリのリストを表示するには:
Allow dynamic-group DevOpsDynamicGroup to inspect repos in tenancy
Allow dynamic-group DevOpsDynamicGroup to inspect repos in compartment <compartment_name>
- テナンシまたは特定のコンパートメントに属するコンテナ・レジストリ(OCIR)にアーティファクトをプッシュできるようにします:
Allow dynamic-group DevOpsDynamicGroup to use repos in tenancy
Allow dynamic-group DevOpsDynamicGroup to use repos in compartment <compartment_name>
リポジトリ・アクセスを制御するポリシーを参照してください。
- テナンシまたは特定のコンパートメントに属するアーティファクト・レジストリ内の汎用アーティファクトのリストを表示する機能:
Allow dynamic-group DevOpsDynamicGroup to inspect generic-artifacts in tenancy
Allow dynamic-group DevOpsDynamicGroup to inspect generic-artifacts in compartment <compartment_name>
- テナンシまたは特定のコンパートメントに属するアーティファクト・レジストリに汎用アーティファクトをプッシュできるようにします:
Allow dynamic-group DevOpsDynamicGroup to use generic-artifacts in tenancy
Allow dynamic-group DevOpsDynamicGroup to use generic-artifacts in compartment <compartment_name>
アーティファクト・レジストリのポリシーを参照してください。
- ユーザーがテナンシまたは特定のコンパートメントに属する汎用アーティファクトをプルできるようにします:
Allow dynamic-group DevOpsDynamicGroup to read generic-artifacts in tenancy
Allow dynamic-group DevOpsDynamicGroup to read generic-artifacts in compartment <compartment_name>
アーティファクト・レジストリへのアクセス
Oracle Cloud Infrastructureアーティファクト・レジストリは、ソフトウェア開発パッケージを格納、共有および管理するためのリポジトリ・サービスです。
アーティファクト・レジストリに格納したアーティファクトには、DevOpsサービスからアクセスできます。アーティファクト・レジストリのアーティファクトの3つのタイプ(インスタンス・グループ・デプロイメント構成、汎用アーティファクトおよびKubernetesマニフェスト)への参照を作成できます。管理者は、read all-artifacts
権限をパイプライン・リソースに付与する必要があります。
コンソールを使用したポリシーの作成については、手順を参照してください。
Allow dynamic-group DevOpsDynamicGroup to read all-artifacts in compartment <compartment_name>
詳細は、アーティファクト・レジストリのポリシーを参照してください。