Stratégies IAM DevOps
Créez des stratégies IAM pour déterminer qui a accès aux ressources DevOps ainsi que le type d'accès de chaque groupe d'utilisateurs.
Pour pouvoir contrôler l'accès à des ressources DevOps, telles que des référentiels de code, des pipelines de build et des pipelines de déploiement, vous devez créer des utilisateurs et les placer dans les groupes appropriés (reportez-vous à Gestion des utilisateurs et à Gestion des groupes). Vous pouvez ensuite créer des stratégies et des instructions de stratégie pour contrôler l'accès (reportez-vous à Gestion des stratégies).
Par défaut, les utilisateurs du groupe Administrators
ont accès à toutes les ressources DevOps. Si vous ne connaissez pas les stratégies IAM, reportez-vous à Introduction aux stratégies.
Pour obtenir la liste complète de toutes les stratégies dans Oracle Cloud Infrastructure, reportez-vous à Référence de stratégie et à Stratégies courantes.
Types de ressource et droits d'accès
Liste des types de ressource DevOps et des droits d'accès associés.
Pour affecter des droits d'accès à toutes les ressources DevOps, utilisez le type d'agrégation devops-family
. Pour plus d'informations, reportez-vous à Droits d'accès.
Une stratégie qui utilise <verb> devops-family
équivaut à écrire une stratégie avec une instruction <verb> <resource-type>
distincte pour chaque type de ressource individuel.
Type de ressource | Droits d'accès |
---|---|
famille devops | Les verbes inspect, read, use, manage sont applicables à tous les droits d'accès de type de ressource DevOps.Les verbes |
devops-project |
|
devops-deploy-famille |
Les verbes
|
devops-deploy-artifact |
|
devops-deploy-environment |
|
devops-deploy-pipeline |
|
devops-deploy-stage |
|
devops-deployment |
|
devops-work-requests |
|
devops-repository-family |
Les verbes
Le verbe |
devops-repository |
|
devops-pull-request |
|
devops-pull-request-commentaire |
|
branche protégée par devops |
|
devops-construire-famille |
Les verbes indiqués,
|
devops-build-pipeline |
|
devops-build-pipeline-stage |
|
devops-build-run |
|
devops-connection |
|
devops-trigger |
|
Variables prises en charge
Les variables sont utilisées lors de l'ajout de conditions à une stratégie.
DevOps prend en charge les variables suivantes :
- Entité : OCID (identificateur Oracle Cloud)
- Chaîne : texte à format libre.
- Nombre : valeur numérique (précision arbitraire)
- Liste : liste des entités, chaînes ou numéros
- Booléen : True ou False
Reportez-vous à Variables générales pour toutes les demandes.
Les variables sont en minuscules et séparées par un trait d'union. Par exemple, target.tag-namespace.name
, target.display-name
. Ici, name
doit être unique et display-name
est la description.
Les variables requises sont fournies par le service DevOps pour chaque demande. Les variables automatiques sont fournies par le moteur d'autorisation (dans le service avec le kit SDK pour un client lourd, ou sur le plan de données d'identité pour un client léger).
Variables requises | Type | Description |
---|---|---|
target.compartment.id |
Entité (OCID) | OCID de la ressource principale de la demande. |
request.operation |
Chaîne | ID de l'opération (par exemple, GetUser ) pour la demande. |
target.resource.kind |
Chaîne | Nom de catégorie de la ressource principale de la demande. |
Variables automatiques | Type | Description |
---|---|---|
request.user.id |
Entité (OCID) | OCID de l'utilisateur à l'origine de la demande. |
request.groups.id |
Liste des entités (OCID) | OCID des groupes auxquels appartient l'utilisateur demandeur. |
target.compartment.name |
Chaîne | Nom du compartiment indiqué dans target.compartment.id . |
target.tenant.id |
Entité (OCID) | OCID de l'ID de locataire cible. |
Voici la liste des sources disponibles pour les variables :
- Demande : provient de l'entrée de la demande.
- Dérivé : provient de la demande.
- Stocké : provient du service, entrée conservée.
- Calculé : calculé à partir des données de service.
Mise en correspondance de variables avec des types de ressource
Type de ressource | Variable | Type | Source | Description |
---|---|---|---|---|
|
target.project.id |
Entrée | Stocké | Disponible pour les opérations d'obtention, de mise à jour, de suppression et de déplacement sur la ressource de projet. |
|
target.project.name |
Chaîne | Stocké | Disponible pour les opérations d'obtention, de mise à jour, de suppression et de déplacement sur la ressource de projet. |
devops-deploy-artifact |
target.artifact.id |
Entité | Stocké | Disponible pour les opérations d'obtention, de mise à jour et de suppression sur la ressource d'artefact. |
devops-deploy-environment |
target.environment.id |
Entité | Stocké | Disponible pour les opérations d'obtention, de mise à jour et de suppression sur la ressource d'environnement. |
|
target.pipeline.id |
Entité | Stocké | Disponible pour les opérations d'obtention, de mise à jour et de suppression sur la ressource de pipeline. |
devops-deploy-stage |
target.stage.id |
Entité | Stocké | Disponible pour les opérations d'obtention, de mise à jour et de suppression sur la ressource de phase. |
devops-deployment |
target.deployment.id |
Entité | Stocké | Disponible pour les opérations d'obtention, de mise à jour et de suppression sur les types de ressource de déploiement. |
devops-repository
|
target.repository.id |
Entité | Stocké | Disponible pour les opérations d'obtention, de mise à jour, de suppression et de déplacement sur la ressource de référentiel. |
devops-pull-request-comment |
target.pull-request.id |
Entité | Stocké | Disponible pour les opérations d'obtention, de mise à jour et de suppression sur la ressource Pull-Request. |
devops-repository
|
target.repository.name |
Entité | Stocké | Disponible pour les opérations d'obtention, de mise à jour, de suppression et de déplacement sur la ressource de référentiel. |
devops-pull-request-comment |
target.pull-request.display-name |
Chaîne | Stocké | Disponible pour les opérations d'obtention, de mise à jour et de suppression sur la ressource Pull-Request. |
devops-repository |
target.branch.name |
Entité | Stocké | Disponible pour les opérations Git telles que upload-pack et receive-pack sur le branchement de référentiel. |
devops-protected-branch |
target.branch.name |
Chaîne | Stocké | Disponible pour les opérations d'obtention, de mise à jour, de suppression et de déplacement sur la ressource de branche protégée. |
devops-repository |
target.tag.name |
Entité | Stocké | Disponible pour les opérations Git telles que upload-pack et receive-pack sur le branchement de référentiel. |
devops-pull-request |
target.pull-request.id |
Entité | Stocké | Disponible pour les opérations d'obtention, de mise à jour et de suppression sur la ressource Pull-Request. |
devops-pull-request |
target.pull-request.display-name |
Chaîne | Stocké | Disponible pour les opérations d'obtention, de mise à jour et de suppression sur la ressource Pull-Request. |
devops-connection |
target.connection.id |
Entité | Stocké | Disponible pour les opérations d'obtention, de mise à jour et de suppression sur la ressource de connexion. |
devops-trigger |
target.trigger.id |
Entité | Stocké | Disponible pour les opérations d'obtention, de mise à jour et de suppression sur la ressource de déclencheur. |
|
target.build-pipeline.id |
Entité | Stocké | Disponible pour les opérations d'obtention, de mise à jour et de suppression sur la ressource de pipeline de build. |
devops-build-pipeline-stage |
target.build-pipeline-stage.id |
Entité | Stocké | Disponible pour les opérations d'obtention, de mise à jour et de suppression sur la ressource de phase de pipeline de build. |
devops-build-run |
target.build-run.id |
Entité | Stocké | Disponible pour les opérations d'obtention, de mise à jour, de suppression et d'annulation sur la ressource d'exécution de build. |
Détails des combinaisons de verbe et de type de ressource
Identifiez les droits d'accès et les opérations d'API couverts par chaque verbe pour les ressources DevOps.
Le niveau d'accès est cumulatif à mesure que vous passez d'un verbe à l'autre, dans l'ordre suivant : inspect
, read
, use
, manage
. Un signe plus (+)
dans une cellule du tableau indique un accès incrémentiel par rapport à la cellule précédente. Tous les droits d'accès (inspecter, lire, utiliser et gérer) sont applicables pour le type de ressource devops-family
, qui inclut toutes les ressources DevOps.
Pour plus d'informations sur l'octroi d'accès, reportez-vous à Droits d'accès.
Ce tableau répertorie les droits d'accès ainsi que les API entièrement couvertes par ces derniers pour la ressource devops-project
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
DEVOPS_PROJECT_INSPECT |
ListProjects |
Permet de répertorier toutes les ressources de projet d'un compartiment. |
read |
|
|
Permet d'obtenir un projet spécifique selon un ID. |
use |
|
|
Permet de mettre à jour un projet spécifique. |
manage |
|
|
Permet de créer une ressource de projet. |
manage |
|
|
Permet de supprimer un projet spécifique. |
manage |
|
|
Permet de déplacer un projet vers un autre compartiment. |
Ce tableau répertorie les droits d'accès et les API entièrement couvertes par ces derniers pour la ressource devops-deploy-family
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
|
|
|
read |
|
|
|
use |
|
|
|
manage |
|
|
|
Ce tableau répertorie les droits d'accès et les API entièrement couvertes par ces derniers pour la ressource devops-deploy-artifact
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
DEVOPS_DEPLOY_ARTIFACT_INSPECT |
ListDeployArtifacts |
Permet de répertorier tous les artefacts d'un projet ou d'un compartiment. |
read |
|
|
Permet d'obtenir un artefact spécifique selon un ID. |
use |
|
|
Permet de mettre à jour un artefact spécifique selon un ID. |
manage |
|
|
Permet de créer une ressource d'artefact dans un projet. |
manage |
|
|
Permet de supprimer un artefact spécifique selon un ID. |
Ce tableau répertorie les droits d'accès et les API entièrement couvertes par ces derniers pour la ressource devops-deploy-environment
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
DEVOPS_DEPLOY_ENVIRONMENT_INSPECT |
ListDeployEnvironments |
Permet de répertorier tous les environnements d'une application ou d'un compartiment. |
read |
|
|
Permet d'obtenir un environnement spécifique selon un ID. |
use |
|
|
Permet de mettre à jour un environnement spécifique selon un ID. |
manage |
|
|
Permet de créer un environnement pour une cible de déploiement dans une application. |
manage |
|
|
Permet de supprimer un environnement spécifique selon un ID. |
Ce tableau répertorie les droits d'accès et les API entièrement couvertes par ces derniers pour la ressource devops-deploy-pipeline
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
DEVOPS_DEPLOY_PIPELINE_INSPECT |
ListDeployPipelines |
Permet de répertorier toutes les ressources de pipeline d'un compartiment. |
read |
|
|
Permet d'obtenir un pipeline spécifique selon un ID. |
use |
|
|
Permet de mettre à jour un pipeline spécifique selon un ID. |
manage |
|
|
Permet de créer une ressource de pipeline. |
manage |
|
|
Permet de supprimer un pipeline spécifique. |
Ce tableau répertorie les droits d'accès et les API entièrement couvertes par ces derniers pour la ressource devops-deploy-stage
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
DEVOPS_DEPLOY_STAGE_INSPECT |
ListDeployStages |
Permet de répertorier toutes les phases d'un pipeline ou d'un compartiment. |
read |
|
|
Permet d'obtenir une phase spécifique selon un ID. |
use |
|
|
Permet de mettre à jour une phase spécifique selon un ID. |
manage |
|
|
Permet de créer une phase dans un pipeline. |
manage |
|
|
Permet de supprimer une phase spécifique selon un ID. |
Ce tableau répertorie les droits d'accès et les API entièrement couvertes par ces derniers pour la ressource devops-deployment
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
DEVOPS_DEPLOYMENT_INSPECT |
ListDeployments |
Permet de répertorier tous les déploiements d'un compartiment. |
read |
|
|
Permet d'obtenir un déploiement spécifique selon un ID. |
use |
|
|
Permet de mettre à jour une phase spécifique selon un ID. |
use |
|
|
Permet d'approuver un déploiement spécifique en attente d'approbation manuelle. |
use |
|
|
Permet d'annuler un déploiement en cours d'exécution. |
manage |
|
|
Permet de créer un déploiement pour un pipeline spécifique. |
manage |
|
|
Permet de supprimer un déploiement spécifique. |
Ce tableau répertorie les droits d'accès et les API entièrement couvertes par ces derniers pour la ressource devops-work-requests
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
DEVOPS_WORK_REQUEST_INSPECT |
ListWorkRequests |
Permet de répertorier toutes les demandes de travail dans un compartiment. |
read |
|
|
Permet d'obtenir une demande de travail spécifique selon un ID. |
Ce tableau répertorie les droits d'accès et les API entièrement couvertes par ces derniers pour la ressource devops-repository-family
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
|
|
|
read |
inspect+
|
|
|
use |
|
|
|
manage |
|
|
|
Ce tableau répertorie les droits d'accès et les API entièrement couvertes par ces derniers pour la ressource devops-repository
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
DEVOPS_REPOSITORY_INSPECT |
ListRepositories |
Permet de répertorier toutes les ressources de référentiel selon un ID de compartiment, un ID de projet ou un ID de référentiel. |
read |
|
|
Permet d'obtenir un référentiel spécifique selon un ID. |
use |
|
|
Permet de mettre à jour un référentiel spécifique selon un ID. |
manage |
|
|
Permet de créer un référentiel. |
manage |
|
|
Permet de supprimer un référentiel spécifique selon un ID. |
Ce tableau répertorie les droits d'accès et les API entièrement couvertes par ces derniers pour la ressource devops-connection
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
DEVOPS_CONNECTION_INSPECT |
ListConnections |
Permet de répertorier toutes les connexions dans un projet ou un compartiment. |
read |
|
|
Permet d'obtenir une connexion spécifique selon un ID. |
use |
|
|
Permet de mettre à jour une connexion spécifique selon un ID. |
use |
|
|
Validez le jeton d'accès personnel de la connexion. |
manage |
|
|
Permet de créer une ressource de connexion dans un projet. |
manage |
|
|
Permet de supprimer une connexion spécifique selon un ID. |
Ce tableau répertorie les droits d'accès et les API entièrement couvertes par ces derniers pour la ressource devops-trigger
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
DEVOPS_TRIGGER_INSPECT |
ListTriggers |
Permet de répertorier tous les déclencheurs d'un projet ou d'un compartiment. |
read |
|
|
Permet d'obtenir un déclencheur spécifique selon un ID. |
use |
|
|
Permet de mettre à jour un déclencheur spécifique selon un ID. |
manage |
|
|
Permet de créer une ressource de déclencheur dans un projet. |
manage |
|
|
Permet de supprimer un déclencheur spécifique selon un ID. |
Ce tableau répertorie les droits d'accès et les API entièrement couvertes par ces derniers pour la ressource devops-build-family
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
|
|
|
read |
|
|
|
use |
|
|
|
manage |
|
|
|
Ce tableau répertorie les droits d'accès et les API entièrement couvertes par ces derniers pour la ressource devops-build-pipeline
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
DEVOPS_BUILD_PIPELINE_INSPECT |
ListBuildPipelines |
Permet de répertorier toutes les ressources de pipeline de build d'un compartiment. |
read |
|
|
Permet d'obtenir un pipeline de build spécifique selon un ID. |
use |
|
|
Permet de mettre à jour un pipeline de build spécifique selon un ID. |
manage |
|
|
Permet de créer une ressource de pipeline de build. |
manage |
|
|
Permet de supprimer un pipeline de build spécifique. |
Ce tableau répertorie les droits d'accès et les API entièrement couvertes par ces derniers pour la ressource devops-build-pipeline-stage
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
DEVOPS_BUILD_PIPELINE_STAGE_INSPECT |
ListBuildPipelineStages |
Permet de répertorier toutes les phases d'un pipeline de build ou d'un compartiment. |
read |
|
|
Permet d'obtenir une phase de pipeline de build spécifique selon un ID. |
use |
|
|
Permet de mettre à jour une phase de pipeline de build spécifique selon un ID. |
manage |
|
|
Permet de créer une phase dans un pipeline de build. |
manage |
|
|
Permet de supprimer une phase de pipeline de build spécifique selon un ID. |
Ce tableau répertorie les droits d'accès et les API entièrement couvertes par ces derniers pour la ressource devops-build-run
.
Verbes | Droits d'accès | API couvertes | Description |
---|---|---|---|
inspect |
DEVOPS_BUILD_RUN_INSPECT |
ListBuildRuns |
Permet de répertorier les exécutions de build d'un projet ou d'un compartiment. |
read |
|
|
Permet d'obtenir une exécution de build spécifique selon un ID. |
use |
|
|
Permet de mettre à jour une exécution de build existante. |
use |
|
|
Permet d'annuler une exécution de build en cours. |
manage |
|
|
Permet de démarrer une exécution de build pour un pipeline de build donné. |
manage |
|
|
Permet de supprimer une exécution de build existante. |
Création d'une stratégie et d'un groupe dynamique
Pour accorder aux utilisateurs l'accès aux différentes ressources DevOps, telles que les pipelines de build, les pipelines de déploiement, les artefacts et les référentiels de code, vous devez créer des groupes, des groupes dynamiques et des stratégies IAM.
Une stratégie permet à un groupe d'utiliser de certaines façons des types spécifiques de ressources dans un compartiment donné.
Stratégie
Pour créer une stratégie dans la console Oracle Cloud, procédez comme suit :
- Ouvrez le menu de navigation et cliquez sur Identité et sécurité. Sous Identité, cliquez sur Stratégies.
- Cliquez sur Créer une stratégie.
- Entrez le nom et la description de la stratégie.
- Sous Générateur de stratégies, cliquez sur le bouton à bascule Afficher l'éditeur manuel pour activer l'éditeur.
Entrez une règle de stratégie au format suivant :
Allow <group> to <verb> <resource_type> in <compartment or tenancy details>
- Cliquez sur Créer.
Pour plus d'informations sur la création de stratégies, reportez-vous à Fonctionnement des stratégies et à Référence de stratégie.
Pour créer un groupe et lui ajouter des utilisateurs, reportez-vous à Gestion des groupes.
Groupe dynamique
Un groupe dynamique est un type spécial de groupe contenant les ressources (par exemple, des instances de calcul) qui correspondent aux règles que vous définissez.
Les règles de correspondance définissent les ressources appartenant au groupe dynamique. Dans la console, vous pouvez saisir la règle manuellement dans la zone de texte fournie ou utiliser le générateur de règles. Pour plus d'informations, reportez-vous à Ecriture de règles de correspondance pour définir des groupes dynamiques. Utilisez la règle match-any
pour mettre en correspondance plusieurs conditions.
DevOpsDynamicGroup
et remplacer compartmentOCID
par l'OCID de votre compartiment : 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'}
Afin d'obtenir plus d'informations sur les groupes dynamiques, y compris les droits d'accès requis pour les créer, reportez-vous à Gestion des groupes dynamiques et à Ecriture de stratégies pour les groupes dynamiques.
DevOpsDynamicGroup
: Allow dynamic-group DevOpsDynamicGroup to manage devops-family in compartment <compartment_name>
Pour les locations dotées de domaines d'identité, le nom de domaine doit précéder le nom de groupe dynamique dans la stratégie. Par exemple,
nom-domaine/{DevOpsDynamicGroup}
Exemples de stratégie
Stratégies DevOps requises pour l'utilisation de diverses ressources DevOps telles que les référentiels de code, les pipelines de build et les pipelines de déploiement.
Les exemples de stratégie suivants sont fournis :
Stratégies d'environnement
Exemple de stratégie de création d'un environnement cible utilisé pour le déploiement.
Reportez-vous aux instructions de création de stratégies à l'aide de la console.
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'}
Stratégies de référentiel de code
Exemples de stratégie pour la création d'un référentiel de code et la connexion à des référentiels de code externes tels que GitHub et GitLab.
Reportez-vous aux instructions pour créer des stratégies, des groupes et des groupes dynamiques à l'aide de la console.
- Autoriser les utilisateurs d'un groupe à accéder au projet DevOps :
Allow group <group-name> to read devops-project in compartment <compartment_name>
- Autoriser les utilisateurs d'un groupe à lire, à créer, à mettre à jour ou à supprimer un référentiel :
Allow group <group-name> to manage devops-repository in compartment <compartment_name>
- Autoriser les utilisateurs d'un groupe à accéder au projet DevOps :
Allow group <group-name> to read devops-project in compartment <compartment_name>
- Autoriser les utilisateurs d'un groupe à lire ou à mettre à jour un référentiel :
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
Pour créer une demande d'extraction, vous devez définir des stratégies en fonction des actions qu'un utilisateur est autorisé à effectuer. Pour obtenir plus d'informations et d'exemples, reportez-vous à Gestion des demandes d'extraction.
Stratégies de pipeline de build
Exemples de stratégie pour la création de pipelines de build et l'ajout de phases au pipeline.
Reportez-vous aux instructions de création de stratégies à l'aide de la console.
- Créez des stratégies IAM pour autoriser le groupe dynamique à accéder aux ressources OCI dans le compartiment :
- Pour distribuer des artefacts, fournissez l'accès au référentiel Container Registry (OCIR) :
Allow dynamic-group DevOpsDynamicGroup to manage repos in compartment <compartment_name>
- Afin d'accéder au coffre pour le jeton d'accès personnel, fournissez l'accès à secret-family. Cette stratégie est requise lors de la phase de build géré pour accéder au jeton d'accès personnel afin de télécharger le code source :
Allow dynamic-group DevOpsDynamicGroup to read secret-family in compartment <compartment_name>
- Fournissez l'accès en lecture aux artefacts de déploiement lors de la phase de distribution d'artefacts, lisez le référentiel de code DevOps lors de la phase de build géré et déclenchez le pipeline de déploiement lors de la phase de déclenchement du déploiement :
Allow dynamic-group DevOpsDynamicGroup to manage devops-family in compartment <compartment_name>
- Pour distribuer des artefacts, fournissez l'accès au référentiel Artifact Registry :
Allow dynamic-group DevOpsDynamicGroup to manage generic-artifacts in compartment <compartment_name>
- Pour envoyer des notifications, fournissez l'accès au pipeline de build :
Allow dynamic-group DevOpsDynamicGroup to use ons-topics in compartment <compartment_name>
- Pour distribuer des artefacts, fournissez l'accès au référentiel Container Registry (OCIR) :
- Créez des stratégies pour autoriser la configuration de l'accès privé lors de la phase de build géré :
Allow dynamic-group DevOpsDynamicGroup to use subnets in compartment <customer subnet compartment>
Allow dynamic-group DevOpsDynamicGroup to use vnics in compartment <customer subnet compartment>
Si des groupes de sécurité réseau sont indiqués dans la configuration de l'accès privé, la stratégie doit accorder l'accès à ces groupes de sécurité réseau :Allow dynamic-group DevOpsDynamicGroup to use network-security-groups in compartment <customer subnet compartment>
- Créez une stratégie permettant au pipeline de build d'accéder à la ressource de groupe d'autorités de certification pour la vérification TLS (Transport Layer Security) :
Allow dynamic-group DevOpsDynamicGroup to use cabundles in compartment <compartment_name>
Stratégies d'accès aux ressources ADM
Exemples de stratégies permettant d'accéder aux ressources du service Application Dependency Management (ADM) à partir du pipeline de build.
Reportez-vous aux instructions de création de stratégies à l'aide de la console.
Allow dynamic-group DevOpsDynamicGroup to use adm-knowledge-bases in tenancy
Allow dynamic-group DevOpsDynamicGroup to manage adm-vulnerability-audits in tenancy
Stratégies de pipeline de déploiement
Exemples de stratégie pour la création de pipelines de déploiement et l'ajout de phases au pipeline.
Reportez-vous aux instructions de création de stratégies à l'aide de la console.
-
Déploiements de cluster OKE :
Allow dynamic-group DevOpsDynamicGroup to read all-artifacts in compartment <compartment_name> Allow dynamic-group DevOpsDynamicGroup to manage cluster in compartment <compartment_name>
- Functions :
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>
- Déploiements de groupe d'instances :
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>
Pour un déploiement de groupe d'instances, vous devez également créer un groupe dynamique pour les instances suivantes et lui accorder certains droits d'accès :- Créez un groupe dynamique pour les instances. Par exemple, vous pouvez nommer le groupe dynamique
DeployComputeDynamicGroup
et remplacercompartmentOCID
par l'OCID de votre compartiment :All {instance.compartment.id = 'compartmentOCID'}
- Créez des stratégies IAM pour accorder l'accès requis aux instances de déploiement :
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>
- Créez un groupe dynamique pour les instances. Par exemple, vous pouvez nommer le groupe dynamique
- Déploiements de phase 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>
- Phase d'approbation :
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'}
- Phase de shell :
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>
Si vous utilisez le groupe de sécurité réseau lors de la création de la phase de shell, ajoutez la stratégie suivante :Allow dynamic-group DevOpsDynamicGroup to use network-security-groups in compartment <compartment_name>
Stratégies d'artefact
Exemples de stratégie permettant d'ajouter la phase de distribution d'artefacts au pipeline de build.
La phase de distribution d'artefacts met en correspondance les sorties de build de la phase de build géré avec la version à distribuer à une ressource d'artefact DevOps, puis au référentiel de code Oracle Cloud Infrastructure (OCI). DevOps prend en charge les artefacts stockés dans les référentiels OCI Container Registry et Artifact Registry. Reportez-vous à Ajout d'une phase de distribution d'artefacts.
Reportez-vous aux instructions de création de stratégies à l'aide de la console.
Créez les stratégies IAM suivantes :
- Pour voir la liste de tous les référentiels dans l'instance Container Registry appartenant à la location ou à un compartiment spécifique :
Allow dynamic-group DevOpsDynamicGroup to inspect repos in tenancy
Allow dynamic-group DevOpsDynamicGroup to inspect repos in compartment <compartment_name>
- Autorisez la propagation des artefacts vers le référentiel Container Registry (OCIR) qui appartient à la location ou à un compartiment spécifique :
Allow dynamic-group DevOpsDynamicGroup to use repos in tenancy
Allow dynamic-group DevOpsDynamicGroup to use repos in compartment <compartment_name>
Reportez-vous à Stratégies de contrôle d'accès au référentiel.
- Donnez la possibilité de visualiser la liste des artefacts génériques dans le référentiel Artifact Registry appartenant à la location ou à un compartiment spécifique :
Allow dynamic-group DevOpsDynamicGroup to inspect generic-artifacts in tenancy
Allow dynamic-group DevOpsDynamicGroup to inspect generic-artifacts in compartment <compartment_name>
- Autorisez la propagation des artefacts génériques vers le référentiel Artifact Registry appartenant à la location ou à un compartiment spécifique :
Allow dynamic-group DevOpsDynamicGroup to use generic-artifacts in tenancy
Allow dynamic-group DevOpsDynamicGroup to use generic-artifacts in compartment <compartment_name>
Reportez-vous à Stratégies pour Artifact Registry.
- Autorisez les utilisateurs à extraire des artefacts génériques appartenant à la location ou à un compartiment spécifique :
Allow dynamic-group DevOpsDynamicGroup to read generic-artifacts in tenancy
Allow dynamic-group DevOpsDynamicGroup to read generic-artifacts in compartment <compartment_name>
Accès à Artifact Registry
Oracle Cloud Infrastructure Artifact Registry est un service de référentiel permettant de stocker, de partager et de gérer des packages de développement logiciel.
Vous pouvez accéder aux artefacts que vous stockez dans Artifact Registry à partir du service DevOps. Vous pouvez créer une référence à trois types d'artefact dans Artifact Registry : configurations de déploiement de groupe d'instances, artefacts généraux et manifestes Kubernetes. L'administrateur doit accorder le droit d'accès read all-artifacts
aux ressources du pipeline.
Reportez-vous aux instructions de création de stratégies à l'aide de la console.
Allow dynamic-group DevOpsDynamicGroup to read all-artifacts in compartment <compartment_name>
Pour plus d'informations, reportez-vous à Stratégies pour Artifact Registry.