DevOps IAMポリシー

IAMポリシーを作成して、DevOpsリソースへのアクセス権を持つユーザーを制御し、ユーザー・グループごとにアクセス権のタイプを制御します。

コード・リポジトリ、ビルド・パイプライン、デプロイメント・パイプラインなどのDevOpsリソースへのアクセス権を制御する前に、ユーザーを作成して適切なグループに配置する必要があります(ユーザーの管理およびグループの管理を参照)。その後、アクセス権を制御するポリシーおよびポリシー・ステートメントを作成できます(ポリシーの管理を参照)。

デフォルトでは、AdministratorsグループのユーザーはすべてのDevOpsリソースにアクセスできます。IAMポリシーを初めて使用する場合は、ポリシーの開始を参照してください。

Oracle Cloud Infrastructureのすべてのポリシーの完全なリストは、ポリシー・リファレンスおよび共通ポリシーを参照してください。

リソース・タイプおよび権限

DevOpsリソース・タイプおよび関連する権限のリスト。

すべてのDevOpsリソースに権限を割り当てるには、devops-family集約タイプを使用します。詳細は、権限を参照してください。

<verb> devops-familyを使用するポリシーは、個々のリソース・タイプごとに個別の<verb> <resource-type>ステートメントを使用してポリシーを記述することと同じです。

リソース・タイプ 権限
devops-project
  • DEVOPS_PROJECT_INSPECT
  • DEVOPS_PROJECT_READ
  • DEVOPS_PROJECT_UPDATE
  • DEVOPS_PROJECT_CREATE
  • DEVOPS_PROJECT_DELETE
  • DEVOPS_PROJECT_MOVE
devops-deploy-artifact
  • DEVOPS_DEPLOY_ARTIFACT_INSPECT
  • DEVOPS_DEPLOY_ARTIFACT_READ
  • DEVOPS_DEPLOY_ARTIFACT_UPDATE
  • DEVOPS_DEPLOY_ARTIFACT_CREATE
  • DEVOPS_DEPLOY_ARTIFACT_DELETE
devops-deploy-environment
  • DEVOPS_DEPLOY_ENVIRONMENT_INSPECT
  • DEVOPS_DEPLOY_ENVIRONMENT_READ
  • DEVOPS_DEPLOY_ENVIRONMENT_UPDATE
  • DEVOPS_DEPLOY_ENVIRONMENT_CREATE
  • DEVOPS_DEPLOY_ENVIRONMENT_DELETE
devops-deploy-pipeline
  • DEVOPS_DEPLOY_PIPELINE_INSPECT
  • DEVOPS_DEPLOY_PIPELINE_READ
  • DEVOPS_DEPLOY_PIPELINE_UPDATE
  • DEVOPS_DEPLOY_PIPELINE_CREATE
  • DEVOPS_DEPLOY_PIPELINE_DELETE
devops-deploy-stage
  • DEVOPS_DEPLOY_STAGE_INSPECT
  • DEVOPS_DEPLOY_STAGE_READ
  • DEVOPS_DEPLOY_STAGE_UPDATE
  • DEVOPS_DEPLOY_STAGE_CREATE
  • DEVOPS_DEPLOY_STAGE_DELETE
devops-deployment
  • DEVOPS_DEPLOY_DEPLOYMENT_INSPECT
  • DEVOPS_DEPLOY_DEPLOYMENT_READ
  • DEVOPS_DEPLOY_DEPLOYMENT_UPDATE
  • DEVOPS_DEPLOY_DEPLOYMENT_CREATE
  • DEVOPS_DEPLOY_DEPLOYMENT_DELETE
  • DEVOPS_DEPLOY_DEPLOYMENT_CANCEL
  • DEVOPS_DEPLOY_DEPLOYMENT_APPROVE
devops-work-requests
  • DEVOPS_WORK_REQUEST_INSPECT
  • DEVOPS_WORK_REQUEST_READ
devops-repository
  • DEVOPS_REPOSITORY_INSPECT
  • DEVOPS_REPOSITORY_READ
  • DEVOPS_REPOSITORY_UPDATE
  • DEVOPS_REPOSITORY_CREATE
  • DEVOPS_REPOSITORY_DELETE
devops-build-pipeline
  • DEVOPS_BUILD_PIPELINE_INSPECT
  • DEVOPS_BUILD_PIPELINE_READ
  • DEVOPS_BUILD_PIPELINE_UPDATE
  • DEVOPS_BUILD_PIPELINE_CREATE
  • DEVOPS_BUILD_PIPELINE_DELETE
devops-build-pipeline-stage
  • DEVOPS_BUILD_PIPELINE_STAGE_INSPECT
  • DEVOPS_BUILD_PIPELINE_STAGE_READ
  • DEVOPS_BUILD_PIPELINE_STAGE_UPDATE
  • DEVOPS_BUILD_PIPELINE_STAGE_CREATE
  • DEVOPS_BUILD_PIPELINE_STAGE_DELETE
devops-build-run
  • DEVOPS_BUILD_RUN_INSPECT
  • DEVOPS_BUILD_RUN_READ
  • DEVOPS_BUILD_RUN_UPDATE
  • DEVOPS_BUILD_RUN_CREATE
  • DEVOPS_BUILD_RUN_DELETE
  • DEVOPS_BUILD_RUN_CANCEL
devops-connection
  • DEVOPS_CONNECTION_INSPECT
  • DEVOPS_CONNECTION_READ
  • DEVOPS_CONNECTION_UPDATE
  • DEVOPS_CONNECTION_CREATE
  • DEVOPS_CONNECTION_DELETE
devops-trigger
  • DEVOPS_TRIGGER_INSPECT
  • DEVOPS_TRIGGER_READ
  • DEVOPS_TRIGGER_UPDATE
  • DEVOPS_TRIGGER_CREATE
  • DEVOPS_TRIGGER_DELETE

サポートされる変数

変数は、条件をポリシーに追加するときに使用されます。

DevOpsでは、次の変数がサポートされます:

  • エンティティ: Oracle Cloud Identifier (OCID)
  • 文字列: フリーフォーム・テキスト。
  • 数値: 数値(任意精度)
  • リスト: エンティティ、文字列または数値のリスト
  • ブール: TrueまたはFalse

すべてのリクエストの一般的な変数を参照してください。

変数は小文字で、ハイフン区切りです。たとえば、target.tag-namespace.nametarget.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

次に、変数の使用可能なソースのリストを示します:

  • リクエスト: リクエスト入力から取得されます。
  • 導出: リクエストから取得されます。
  • 格納: サービスから取得され、入力が保持されます。
  • 計算: サービス・データから計算されます。

変数とリソース・タイプのマッピング

リソース・タイプ 変数 タイプ ソース 説明

devops-project

devops-deploy-artifact

devops-deploy-environment

devops-deploy-pipeline

devops-deploy-stage

devops-deployment

devops-repository

devops-connection

devops-trigger

devops-build-pipeline

devops-build-pipeline-stage

devops-build-run

target.project.id 入力 格納 プロジェクト・リソースに対する取得、更新、削除および移動操作に使用できます。

devops-project

devops-deploy-artifact

devops-deploy-environment

devops-deploy-pipeline

devops-deploy-stage

devops-deployment

devops-repository

devops-connection

devops-trigger

devops-build-pipeline

devops-build-pipeline-stage

devops-build-run

target.project.name 文字列 格納 プロジェクト・リソースに対する取得、更新、削除および移動操作に使用できます。
devops-deploy-artifact target.artifact.id エンティティ 格納 アーティファクト・リソースに対する取得、更新および削除操作に使用できます。
devops-deploy-environment target.environment.id エンティティ 格納 環境リソースに対する取得、更新および削除操作に使用できます。

devops-deploy-pipeline

devops-deploy-stage

devops-deployment

target.pipeline.id エンティティ 格納 パイプライン・リソースに対する取得、更新および削除操作に使用できます。
devops-deploy-stage target.stage.id エンティティ 格納 ステージ・リソースに対する取得、更新および削除操作に使用できます。
devops-deployment target.deployment.id エンティティ 格納 デプロイメント・リソース・タイプに対する取得、更新および削除操作に使用できます。
devops-repository target.repository.id エンティティ 格納 リポジトリ・リソースに対する取得、更新、削除および移動操作に使用できます。
devops-repository target.repository.name エンティティ 格納 リポジトリ・リソースに対する取得、更新、削除および移動操作に使用できます。
devops-repository target.branch.name エンティティ 格納 リポジトリ・ブランチでのupload-pack、receive-packなどのGit操作に使用できます。
devops-repository target.tag.name エンティティ 格納 リポジトリ・ブランチでのupload-pack、receive-packなどのGit操作に使用できます。
devops-connection target.connection.id エンティティ 格納 接続リソースに対する取得、更新および削除操作に使用できます。
devops-trigger target.trigger.id エンティティ 格納 トリガー・リソースに対する取得、更新および削除操作に使用できます。

devops-build-pipeline

devops-build-pipeline-stage

devops-build-run

target.build-pipeline.id エンティティ 格納 ビルド・パイプライン・リソースに対する取得、更新および削除操作に使用できます。
devops-build-pipeline-stage target.build-pipeline-stage.id エンティティ 格納 ビルド・パイプライン・ステージ・リソースに対する取得、更新および削除操作に使用できます。
devops-build-run target.build-run.id エンティティ 格納 ビルド実行リソースに対する取得、更新、削除および取消操作に使用できます。

動詞とリソース・タイプの組合せの詳細

DevOpsリソースの各動詞でカバーされる権限およびAPI操作を識別します。

アクセスのレベルは、inspectからreadusemanageの順に累積します。表のセルのプラス記号(+)は、前のセルと比較した場合に増分アクセスを示します。

アクセス権の付与の詳細は、権限を参照してください。

devops-project

この表は、devops-projectリソースの権限と、権限によって完全にカバーされるAPIを示しています。

動詞 権限 カバーされるAPI 説明
inspect DEVOPS_PROJECT_INSPECT ListProjects コンパートメント内のすべてのプロジェクト・リソースをリストします。
read

inspect+

DEVOPS_PROJECT_READ

inspect+

GetProject

特定のプロジェクトをIDで取得します。
use

read+

DEVOPS_PROJECT_UPDATE

read+

UpdateProject

特定のプロジェクトを更新します。
manage

use+

DEVOPS_PROJECT_CREATE

use+

CreateProject

プロジェクト・リソースを作成します。
manage

use+

DEVOPS_PROJECT_DELETE

use+

DeleteProject

特定のプロジェクトを削除します。
manage

use+

DEVOPS_PROJECT_MOVE

use+

ChangeProjectCompartment

プロジェクトを別のコンパートメントに移動します。
devops-deploy-artifact

この表は、devops-deploy-artifactリソースの権限と、権限によって完全にカバーされるAPIを示しています。

動詞 権限 カバーされるAPI 説明
inspect DEVOPS_DEPLOY_ARTIFACT_INSPECT ListDeployArtifacts プロジェクトまたはコンパートメント内のすべてのアーティファクトをリストします。
read

inspect+

DEVOPS_DEPLOY_ARTIFACT_READ

inspect+

GetDeployArtifact

特定のアーティファクトをIDで取得します。
use

read+

DEVOPS_DEPLOY_ARTIFACT_UPDATE

read+

UpdateDeployArtifact

特定のアーティファクトをIDで更新します。
manage

use+

DEVOPS_DEPLOY_ARTIFACT_CREATE

use+

CreateDeployArtifact

プロジェクト内にアーティファクト・リソースを作成します。

manage

use+

DEVOPS_DEPLOY_ARTIFACT_DELETE

use+

DeleteDeployArtifact

特定のアーティファクトをIDで削除します。

devops-deploy-environment

この表は、devops-deploy-environmentリソースの権限と、権限によって完全にカバーされるAPIを示しています。

動詞 権限 カバーされるAPI 説明
inspect DEVOPS_DEPLOY_ENVIRONMENT_INSPECT ListDeployEnvironments アプリケーションまたはコンパートメント内のすべての環境をリストします。
read

inspect+

DEVOPS_DEPLOY_ENVIRONMENT_READ

inspect+

GetDeployEnvironment

特定の環境をIDで取得します。
use

read+

DEVOPS_DEPLOY_ENVIRONMENT_UPDATE

read+

UpdateDeployEnvironment

特定の環境をIDで更新します。
manage

use+

DEVOPS_DEPLOY_ENVIRONMENT_CREATE

use+

CreateDeployEnvironment

アプリケーション内にデプロイメント・ターゲットの環境を作成します。

manage

use+

DEVOPS_DEPLOY_ENVIRONMENT_DELETE

use+

DeleteDeployEnvironment

特定の環境をIDで削除します。

devops-deploy-pipeline

この表は、devops-deploy-pipelineリソースの権限と、権限によって完全にカバーされるAPIを示しています。

動詞 権限 カバーされるAPI 説明
inspect DEVOPS_DEPLOY_PIPELINE_INSPECT ListDeployPipelines コンパートメント内のすべてのパイプライン・リソースをリストします。
read

inspect+

DEVOPS_DEPLOY_PIPELINE_READ

inspect+

GetDeployPipeline

特定のパイプラインをIDで取得します。
use

read+

DEVOPS_DEPLOY_PIPELINE_UPDATE

read+

UpdateDeployPipeline

特定のパイプラインをIDで更新します。
manage

use+

DEVOPS_DEPLOY_PIPELINE_CREATE

use+

CreateDeployPipeline

パイプライン・リソースを作成します。

manage

use+

DEVOPS_DEPLOY_PIPELINE_DELETE

use+

DeleteDeployPipeline

特定のパイプラインを削除します。

devops-deploy-stage

この表は、devops-deploy-stageリソースの権限と、権限によって完全にカバーされるAPIを示しています。

動詞 権限 カバーされるAPI 説明
inspect DEVOPS_DEPLOY_STAGE_INSPECT ListDeployStages パイプラインまたはコンパートメント内のすべてのステージをリストします。
read

inspect+

DEVOPS_DEPLOY_STAGE_READ

inspect+

GetDeployStage

特定のステージをIDで取得します。
use

read+

DEVOPS_DEPLOY_STAGE_UPDATE

read+

UpdateDeployStage

特定のステージをIDで更新します。
manage

use+

DEVOPS_DEPLOY_STAGE_CREATE

use+

CreateDeployStage

パイプライン内にステージを作成します。

manage

use+

DEVOPS_DEPLOY_STAGE_DELETE

use+

DeleteDeployStage

特定のステージをIDで削除します。

devops-deployment

この表は、devops-deploymentリソースの権限と、権限によって完全にカバーされるAPIを示しています。

動詞 権限 カバーされるAPI 説明
inspect DEVOPS_DEPLOYMENT_INSPECT ListDeployments コンパートメント内のすべてのデプロイメントをリストします。
read

inspect+

DEVOPS_DEPLOYMENT_READ

inspect+

GetDeployment

特定のデプロイメントをIDで取得します。
use

read+

DEVOPS_DEPLOYMENT_UPDATE

read+

UpdateDeployStage

特定のステージをIDで更新します。

use

read+

DEVOPS_DEPLOYMENT_APPROVE

read+

ApproveDeployment

手動承認を待機している特定のデプロイメントを承認します。
use

read+

DEVOPS_DEPLOYMENT_CANCEL

read+

CancelDeployment

実行中のデプロイメントを取り消します。

manage

use+

DEVOPS_DEPLOYMENT_CREATE

use+

CreateDeployment

特定のパイプラインのデプロイメントを作成します。

manage

use+

DEVOPS_DEPLOYMENT_DELETE

use+

DeleteDeployment

特定のデプロイメントを削除します。

devops-work-requests

この表は、devops-work-requestsリソースの権限と、権限によって完全にカバーされるAPIを示しています。

動詞 権限 カバーされるAPI 説明
inspect DEVOPS_WORK_REQUEST_INSPECT ListWorkRequests コンパートメント内のすべての作業リクエストをリストします。
read

inspect+

DEVOPS_WORK_REQUEST_READ

inspect+

GetWorkRequest

特定の作業リクエストをIDで取得します。
devops-repository

この表は、devops-repositoryリソースの権限と、権限によって完全にカバーされるAPIを示しています。

動詞 権限 カバーされるAPI 説明
inspect DEVOPS_REPOSITORY_INSPECT ListRepositories すべてのリポジトリ・リソースをコンパートメントID、プロジェクトIDまたはリポジトリIDでリストします。
read

inspect+

DEVOPS_REPOSITORY_READ

inspect+

GetRepository

特定のリポジトリをIDで取得します。
use

read+

DEVOPS_REPOSITORY_UPDATE

read+

UpdateRepository

特定のリポジトリをIDで更新します。
manage

use+

DEVOPS_REPOSITORY_CREATE

use+

CreateRepository

リポジトリを作成します。

manage

use+

DEVOPS_REPOSITORY_DELETE

use+

DeleteRepository

特定のリポジトリをIDで削除します。

devops-connection

この表は、devops-connectionリソースの権限と、権限によって完全にカバーされるAPIを示しています。

動詞 権限 カバーされるAPI 説明
inspect DEVOPS_CONNECTION_INSPECT ListConnections プロジェクトまたはコンパートメント内のすべての接続をリストします。
read

inspect+

DEVOPS_CONNECTION_READ

inspect+

GetConnection

特定の接続をIDで取得します。
use

read+

DEVOPS_CONNECTION_UPDATE

read+

UpdateConnection

特定の接続をIDで更新します。
use

read+

DEVOPS_CONNECTION_VALIDATE

read+

ValidateConnection

接続のPATを検証します。
manage

use+

DEVOPS_CONNECTION_CREATE

use+

CreateConnection

プロジェクトに接続リソースを作成します。

manage

use+

DEVOPS_CONNECTION_DELETE

use+

DeleteConnection

特定の接続をIDで削除します。

devops-trigger

この表は、devops-triggerリソースの権限と、権限によって完全にカバーされるAPIを示しています。

動詞 権限 カバーされるAPI 説明
inspect DEVOPS_TRIGGER_INSPECT ListTriggers プロジェクトまたはコンパートメント内のすべてのトリガーをリストします。
read

inspect+

DEVOPS_TRIGGER_READ

inspect+

GetTrigger

特定のトリガーをIDで取得します。
use

read+

DEVOPS_TRIGGER_UPDATE

read+

UpdateTrigger

特定のトリガーをIDで更新します。
manage

use+

DEVOPS_TRIGGER_CREATE

use+

CreateTrigger

プロジェクトにトリガー・リソースを作成します。

manage

use+

DEVOPS_TRIGGER_DELETE

use+

DeleteTrigger

特定のトリガーをIDで削除します。

devops-build-pipeline

この表は、devops-build-pipelineリソースの権限と、権限によって完全にカバーされるAPIを示しています。

動詞 権限 カバーされるAPI 説明
inspect DEVOPS_BUILD_PIPELINE_INSPECT ListBuildPipelines コンパートメント内のすべてのビルド・パイプライン・リソースをリストします。
read

inspect+

DEVOPS_BUILD_PIPELINE_READ

inspect+

GetBuildPipeline

特定のビルド・パイプラインをIDで取得します。
use

read+

DEVOPS_BUILD_PIPELINE_UPDATE

read+

UpdateBuildPipeline

特定のビルド・パイプラインをIDで更新します。
manage

use+

DEVOPS_BUILD_PIPELINE_CREATE

use+

CreateBuildPipeline

ビルド・パイプライン・リソースを作成します。

manage

use+

DEVOPS_BUILD_PIPELINE_DELETE

use+

DeleteBuildPipeline

特定のビルド・パイプラインを削除します。

devops-build-pipeline-stage

この表は、devops-build-pipeline-stageリソースの権限と、権限によって完全にカバーされるAPIを示しています。

動詞 権限 カバーされるAPI 説明
inspect DEVOPS_BUILD_PIPELINE_STAGE_INSPECT ListBuildPipelineStages ビルド・パイプラインまたはコンパートメント内のすべてのステージをリストします。
read

inspect+

DEVOPS_BUILD_PIPELINE_STAGE_READ

inspect+

GetBuildPipelineStage

特定のビルド・パイプライン・ステージをIDで取得します。
use

read+

DEVOPS_BUILD_PIPELINE_STAGE_UPDATE

read+

UpdateBuildPipelineStage

特定のビルド・パイプライン・ステージをIDで更新します。
manage

use+

DEVOPS_BUILD_PIPELINE_STAGE_CREATE

use+

CreateBuildPipelineStage

ビルド・パイプラインにステージを作成します。

manage

use+

DEVOPS_BUILD_PIPELINE_STAGE_DELETE

use+

DeleteBuildPipelineStage

特定のビルド・パイプライン・ステージをIDで削除します。

devops-build-run

この表は、devops-build-runリソースの権限と、権限によって完全にカバーされるAPIを示しています。

動詞 権限 カバーされるAPI 説明
inspect DEVOPS_BUILD_RUN_INSPECT ListBuildRuns プロジェクトまたはコンパートメント内のビルド実行をリストします。
read

inspect+

DEVOPS_BUILD_RUN_READ

inspect+

GetBuildRun

特定のビルド実行をIDで取得します。
use

read+

DEVOPS_BUILD_RUN_UPDATE

read+

UpdateBuildRun

既存のビルド実行を更新します。
use

read+

DEVOPS_BUILD_RUN_CANCEL

read+

CancelBuildRun

実行中のビルド実行を取り消します。
manage

use+

DEVOPS_BUILD_RUN_CREATE

use+

CreateBuildRun

特定のビルド・パイプラインのビルド実行を開始します。

manage

use+

DEVOPS_BUILD_RUN_DELETE

use+

DeleteBuildRun

既存のビルド実行を削除します。

ポリシーおよび動的グループの作成

ビルド・パイプライン、デプロイメント・パイプライン、アーティファクト、コード・リポジトリなどの様々なDevOpsリソースにアクセスする権限をユーザーに付与するには、グループ、動的グループおよびIAMポリシーを作成する必要があります。

ポリシーによって、グループは、特定のコンパートメント内の特定のタイプのリソースを一定の方法で操作できます。

ポリシー

次に、Oracle Cloudコンソールでポリシーを作成する方法を示します:

  1. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「アイデンティティ」で、「ポリシー」をクリックします。
  2. 「ポリシーの作成」をクリックします。
  3. ポリシーの名前と説明を入力します。
  4. 「ポリシー・ビルダー」で、「手動エディタの表示」スイッチをクリックしてエディタを有効にします。

    次のフォーマットでポリシー・ルールを入力します:

    Allow <group> to <verb> <resource_type> in <compartment or tenancy details>
  5. 「作成」をクリックします。

ポリシーの作成の詳細は、ポリシーの仕組みおよびポリシー・リファレンスを参照してください。

グループを作成してグループにユーザーを追加するには、グループの管理を参照してください。

動的グループ

動的グループは、定義したルールに一致するリソース(コンピュート・インスタンスなど)を含む特別なタイプのグループです。

一致ルールは、動的グループに属するリソースを定義します。コンソールでは、指定されたテキスト・ボックスにルールを手動で入力するか、ルール・ビルダーを使用できます。詳細は、動的グループを定義するための照合ルールの記述を参照してください。match-anyルールを使用して、複数の条件を照合します。

DevOpsリソースの動的グループを作成します。動的グループに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ポリシー。

次のポリシーの例が提供されます:

環境ポリシー

デプロイメントに使用されるターゲット環境を作成するためのポリシーの例。

コンソールを使用したポリシーの作成については、手順を参照してください。

グループのユーザーがプライベートOKE環境を作成、更新、または削除することを許可するポリシーを作成します:
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などの外部コード・リポジトリに接続するためのポリシーの例。

コンソールを使用したポリシー、グループおよび動的グループの作成については、手順を参照してください。

コード・リポジトリを作成するには、次のIAMポリシーを作成します:
  • グループ内のユーザーが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>
リポジトリをクローニングするには、次のIAMポリシーを作成します:
  • グループ内のユーザーが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>
外部接続を検証するには、シークレットを読み取るポリシーとともに、次のIAMポリシーを作成します:
Allow group <group-name> to use devops-connection in compartment <compartment_name>

ビルド・パイプライン・ポリシー

ビルド・パイプラインを作成し、ステージをパイプラインに追加するためのポリシーの例。

コンソールを使用したポリシーの作成については、手順を参照してください。

  • 動的グループがコンパートメント内の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>
  • 「管理対象ビルド」ステージでプライベート・アクセス設定を許可するポリシーを作成します:
    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)サービスのリソースにアクセスするためのポリシーの例。

コンソールを使用したポリシーの作成については、手順を参照してください。

動的グループがテナンシ内のADMリソースにアクセスすることを許可するIAMポリシーを作成します:
Allow dynamic-group DevOpsDynamicGroup to use adm-knowledge-bases in tenancy
Allow dynamic-group DevOpsDynamicGroup to manage adm-vulnerability-audits in tenancy

デプロイメント・パイプライン・ポリシー

デプロイメント・パイプラインを作成し、ステージをパイプラインに追加するためのポリシーの例。

コンソールを使用したポリシーの作成については、手順を参照してください。

デプロイメント・パイプラインの動的グループがコンパートメント・リソースにアクセスできるようにするIAMポリシーを作成します:
  • 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>
  • 「承認」ステージ:
    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権限をパイプライン・リソースに付与する必要があります。

コンソールを使用したポリシーの作成については、手順を参照してください。

動的グループが特定のコンパートメントからアーティファクトにアクセスすることを許可するIAMポリシーを作成します:
Allow dynamic-group DevOpsDynamicGroup to read all-artifacts in compartment <compartment_name>

詳細は、アーティファクト・レジストリのポリシーを参照してください。