Création de modèles de politiques gérés par l'entreprise
La configuration d'une politique d'accès à chaque fois que vous devez accorder l'accès à un groupe d'accès ou à un modèle de profil de confiance peut prendre du temps et être source d'erreurs. Simplifiez le processus et maintenez l'uniformité de vos politiques en utilisant des modèles de politiques d'accès gérés par l'entreprise pour attribuer des accès ou créer des autorisations de service à service.
Les modèles de politique d'accès définissent une politique sans nécessiter de sujet, et vous pouvez les utiliser pour accorder l'accès à plusieurs sujets.
Par exemple, vous devrez peut-être attribuer une politique d'accès qui accorde un accès administrateur à tous les services IAM à plusieurs groupes d'accès ou modèles de profil de confiance afin que les membres puissent créer des instances de services
IAM. Pour réduire les erreurs de configuration des politiques, créez un modèle de politique d'accès appelé « Admin on All IAM enabled services ». Sélectionnez la stratégie préconfigurée lorsque vous devez attribuer ce niveau d'accès
dans un groupe d'accès ou un modèle de profil approuvé.
Bien qu'un sujet de politique ne soit pas nécessaire si vous utilisez l'interface de ligne de commande ou l'API, vous en avez besoin dans la console d' IBM Cloud. Chaque fois que vous attribuez une stratégie d'accès à un profil approuvé ou à un modèle de groupe d'accès dans la console d' IBM Cloud, vous créez un modèle de stratégie. Vous pouvez référencer les modèles de stratégie pour accorder l'accès dans les modèles de profil de confiance et de groupe d'accès à l'aide de la console, de la CLI ou de l'API. Pour afficher la politique, allez dans Gérer > Accès (IAM) > Modèles > Politiques.
Les modèles de politique d'accès ne prennent en charge que le schéma d' v2/policies. Pour plus d'informations, consultez le journal des modifications de l'API de gestion des politiques IAM.
Création d'un modèle de politique à l'aide de la console
Les modèles de stratégie que vous créez dans la console d' IBM Cloud s doivent être associés à un groupe d'accès ou à un modèle de profil approuvé. En savoir plus sur l'ajout de stratégies d'accès aux modèles de groupes d'accès et aux modèles de profils approuvés.
Création d'un modèle de politique autonome
Les modèles de stratégie permettent aux administrateurs des comptes d'entreprise de définir des règles d'accès de manière indépendante, sans les lier directement à un groupe d'accès ou à un modèle de profil de confiance. Ils peuvent être créés, mis à jour, gérés indépendamment et réutilisés. Une fois finalisé, un modèle de politique doit être ajouté à un groupe d'accès ou à un modèle de profil de confiance. Lorsqu'un modèle de politique est lié, il peut être assigné à des sous-comptes, où les règles associées sont appliquées.
Pour créer un modèle de politique autonome dans la console, procédez comme suit :
-
Allez sur Gérer > Accès (IAM) > Entreprise > Modèles > Politiques sur le site IBM Cloud et cliquez sur Créer.
-
Saisissez un nom pour le modèle, puis cliquez sur « Créer ».
-
Cliquez sur Accès et entrez les détails de la police.
-
Sélectionnez un service ou un groupe de services et cliquez sur Suivant.
-
Étendez l'accès à Toutes les ressources ou sélectionnez Ressources spécifiques en fonction des attributs et cliquez sur Suivant.
-
Dans la section Rôles et actions, sélectionnez les rôles qui définissent l'étendue de l'accès. Vous pouvez créer des modèles de rôles personnalisés dans un flux de modèles de politiques et sélectionner un rôle personnalisé à partir des modèles de rôles personnalisés existants pour le service sélectionné.
- Cliquez sur Créer un rôle personnalisé pour définir une combinaison personnalisée d'actions.
- (Facultatif) Saisissez une description du modèle.
- Saisissez un nom pour le rôle personnalisé.
- Saisissez un identifiant pour le rôle personnalisé.
- (Facultatif) Saisissez une description pour le rôle personnalisé.
- Sélectionnez les actions et cliquez sur Créer. Le rôle personnalisé est répertorié et sélectionné avec tous les autres rôles déjà sélectionnés pour la politique.
Utilisez la barre de recherche pour trouver des rôles qui soutiennent des actions particulières. Par exemple, recherchez lecture, modification ou affichage pour afficher la liste des rôles auxquels ces actions s'appliquent.
-
(Facultatif) Ajoutez des conditions pour spécifier quand vous voulez que la politique accorde l'accès.
-
Cliquez sur Sauvegarder.
Révision d'un modèle de politique
Pour verrouiller la version et empêcher toute modification ultérieure, révisez et validez le modèle de politique en suivant les étapes suivantes :
- Cliquez sur Vérifier.
- Vérifiez que le modèle de politique est configuré conformément à vos attentes.
- Cochez la case pour confirmer que la version du modèle de politique est verrouillée et ne peut pas être modifiée.
- Cliquez sur Valider.
Création d'une nouvelle version
Créez une nouvelle version d'un modèle de politique pour mettre à jour vos configurations sans modifier l'installation d'origine. Il vous permet d'améliorer ou d'ajuster les paramètres tout en conservant une trace des versions antérieures.
Pour créer une nouvelle version d'un modèle de politique, procédez comme suit :
-
Cliquez sur Manage > Access (IAM) > Templates > Policies dans la console IBM Cloud.
-
Sélectionnez votre modèle de politique.
-
Cliquez sur l'icône Nouvelle version
.
-
Sélectionnez la version que vous souhaitez utiliser comme base pour votre nouvelle version.
-
Saisissez une nouvelle description pour le modèle et la politique d'accès, ou conservez celles que vous avez déjà.
-
Cliquez sur Créer.
-
Procéder à d'éventuels ajustements de la politique d'accès.
Vous ne pouvez pas modifier le service de la politique d'accès, mais vous pouvez modifier les ressources, les rôles et les conditions.
-
Cliquez sur Sauvegarder.
-
Cliquez sur Review et validez la nouvelle version.
Supprimer un modèle de stratégie dans la console
La suppression d'un modèle de stratégie supprime toutes les versions du modèle. Vous pouvez supprimer un modèle de stratégie référencé dans un modèle de profil approuvé ou de groupe d'accès de type brouillon ou validé. Cependant, la référence au modèle de stratégie devient invalide et vous devez la supprimer avant de pouvoir attribuer le profil de confiance ou le modèle de groupe d'accès aux comptes enfants.
Si vous souhaitez supprimer un modèle de stratégie référencé dans un profil approuvé ou un modèle de groupe d'accès attribué à des comptes enfants, vous devez supprimer l'attribution du profil approuvé ou du modèle de groupe d'accès de ces comptes enfants. Pour plus d'informations, voir Suppression d'une affectation pour les modèles de groupe d'accès et les modèles de profil de confiance.
Pour supprimer un modèle de stratégie dans la console, procédez comme suit :
- Accédez à « Gérer > Accès (IAM) > Modèles » dans l' IBM Cloud.
- Cliquez sur Politiques.
- Cliquez sur l'icône Actions
> Supprimer le modèle.
- Confirmez que vous souhaitez supprimer le modèle.
Supprimer une version de modèle de stratégie dans la console
Pour supprimer uniquement une version spécifique, procédez comme suit :
- Accédez à « Gérer > Accès (IAM) > Modèles » dans l' IBM Cloud.
- Cliquez sur Politiques.
- Cliquez sur l'icône Actions
> Supprimer la version.
- Confirmez que vous souhaitez supprimer cette version.
Créer un modèle de politique d'accès à l'aide de l'interface de ligne de commande
Si plusieurs modèles de groupe d'accès ou de profil approuvé nécessitent la même stratégie, créez un modèle de stratégie d'accès.
Pour créer un modèle de politique d'accès à l'aide de l'interface de ligne de commande (CLI), procédez comme suit :
-
Créer un fichier JSON qui configure la définition du modèle de stratégie. Pour plus d'informations sur les attributs que vous pouvez utiliser dans votre fichier JSON, consultez l'API de gestion des politiques IAM.
L'exemple de fichier JSON suivant spécifie les
names etdescriptions du modèle et lesaccount_ids du compte entreprise. Ensuite, la définition de l'policye est définie. Ce modèle de stratégie accorde une stratégie d'accès avec des autorisations d'éditeur sur le IBM Cloud Security and Compliance Center Workload Protection service. La politique inclut une règle basée sur le temps qui accorde l'accès du lundi au vendredi toute la journée, en se répétant chaque semaine. Pour plus d'informations, voir Conditions basées sur le temps et Limiter l'accès avec des conditions basées sur le temps.{ "name": "SCCWPEditor", "description": "Grant Editor role on Security and Compliance Center Workload Protection service", "account_id": "ACCOUNT_ID", "policy": { "type": "access", "description": "Grant Editor role on Security and Compliance Center Workload Protection service", "control": { "grant": { "roles": [ { "role_id": "crn:v1:bluemix:public:iam::::role:Editor" } ], }, }, "resource": [ { "attributes": [ { "key": "serviceName", "operator": "stringEquals", "value": "compliance" } ] } ], "rule" :{ "key": "{{environment.attributes.day_of_week}}", "operator": "dayOfWeekAnyOf", "value": ["1+00:00", "2+00:00", "3+00:00", "4+00:00", "5+00:00"] }, "pattern": "time-based-conditions:weekly:all-day" } } -
Utilisez la commande
ap-template-createcomme indiqué dans l'exemple de requête suivant :
imcloud iam access-policy-template-create --file /path/to/security_editor_access_policy_template.json
Mise à jour d'un modèle de stratégie d'accès à l'aide de l'interface de ligne de commande
Vous pouvez mettre à jour les rôles, les ressources, le nom et la description d'un modèle de stratégie à tout moment avant de l'enregistrer.
Pour mettre à jour un modèle de stratégie à l'aide de l'interface de ligne de commande (CLI), procédez comme suit :
-
Mettez à jour votre fichier JSON avec la nouvelle définition du modèle de politique. Pour plus d'informations sur les attributs que vous pouvez utiliser dans votre fichier JSON, consultez l'API de gestion des politiques IAM.
Lorsque vous mettez à jour le nom du modèle, le nom de chaque version est également mis à jour.
-
Utilisez la commande
ap-template-version-updatecomme indiqué dans l'exemple de requête suivant :ibmcloud iam access-policy-template-update SCCWPEditor 1 --file /path/to/security_editor_access_policy_template.jsonCela met à jour la version
1du modèle de politique d'SCCWPEditors en faisant référence au fichier JSON mis à jour.
Si vous avez besoin d'effectuer des mises à jour après avoir validé le modèle, créez une nouvelle version.
Engagement d'une version de modèle de politique à l'aide de l'interface de ligne de commande
Passez en revue le modèle de politique et engagez-le afin qu'aucune autre modification ne puisse être apportée à la version. De cette façon, l'administrateur de l'attribution des modèles peut être sûr qu'il n'attribue la version que lorsque vous avez confirmé qu'elle est prête.
-
Examinez le modèle de politique avant de l'adopter en utilisant la méthode
access-policy-template-versionpour afficher la version spécifique.ibmcloud iam access-policy-template-version SCCWPEditor 1 -
Pour valider un modèle de stratégie à l'aide de l'interface de ligne de commande, utilisez la méthode
ap-template-version-commitcomme indiqué dans l'exemple de requête suivant :ibmcloud iam access-policy-template-version-commit SCCWPEditor 1
Accorder l'accès avec un modèle de stratégie en utilisant l'interface de ligne de commande
Contrairement aux stratégies d'accès standard, les modèles de stratégie n'ont pas de sujet explicite auquel vous accordez l'accès lorsque vous les créez.
Vous pouvez référencer un modèle de stratégie pour attribuer un accès dans un groupe d'accès ou un modèle de profil de confiance à l'aide de l'interface de ligne de commande.
-
Listez tous les modèles de politique d'accès et notez l'ID du modèle de politique en utilisant la commande
ap-templatescomme indiqué dans l'exemple de requête suivant :ibmcloud iam access-policy-templates -
Utilisez l'ID du modèle de stratégie pour attribuer des accès dans les modèles de groupe d'accès et les modèles de profil approuvé.
- Dans le fichier JSON qui configure un modèle de groupe d'accès ou un modèle de profil de confiance, il y a un paramètre
policy_template_references. Utilisez les champs «id» et «version» du modèle de politique auquel vous souhaitez faire référence pour accorder l'accès. Pour plus d'informations, consultez la documentation sur les profils de confiance et les groupes d'accès.
- Dans le fichier JSON qui configure un modèle de groupe d'accès ou un modèle de profil de confiance, il y a un paramètre
Création d'une nouvelle version d'un modèle de stratégie d'accès à l'aide de l'interface de ligne de commande
À mesure que les exigences d'accès évoluent pour les équipes de votre entreprise, vous devrez peut-être créer une autre version d'un modèle de stratégie pour répondre à de nouveaux besoins. Pour créer une nouvelle version de modèle de stratégie à l'aide de l'interface de ligne de commande, procédez comme suit :
-
Modifiez votre fichier JSON pour inclure toute mise à jour de la définition du modèle de politique. Pour plus d'informations sur les attributs que vous pouvez utiliser dans votre fichier JSON, consultez l'API IAM Policy Management
-
Utilisez la commande
access-policy-template-version-createcomme indiqué dans l'exemple de requête suivant :ibmcloud iam access-policy-template-version-create SCCWPEditor --file /path/to/security_editor_access_policy_template.json
Suppression des références aux modèles de stratégie à l'aide de l'interface de ligne de commande
La suppression de la référence à un modèle de stratégie d'un groupe d'accès ou d'un modèle de profil approuvé révoque les autorisations que la stratégie accorde aux membres. Vous pouvez supprimer une référence de modèle de règle d'un modèle IAM dans un état Brouillon. Cependant, vous ne pouvez pas supprimer un modèle de stratégie référencé dans un profil de confiance validé ou attribué ou dans un modèle de groupe d'accès.
Si vous souhaitez attribuer une stratégie différente dans un groupe d'accès engagé ou attribué ou dans un modèle de profil approuvé, vous devez créer une nouvelle version. Pour plus d'informations, voir Création d'une nouvelle version des modèles de groupes d'accès et des modèles de profils de confiance.
Vous pouvez supprimer une référence de modèle de stratégie pour un groupe d'accès ou un modèle de profil approuvé à l'aide de l'interface de ligne de commande.
-
Obtenez l'ID du modèle de stratégie en utilisant la commande
ap-templatescomme indiqué dans l'exemple de requête suivant :example command -
Mettez à jour le fichier JSON qui configure le groupe d'accès ou la définition du modèle de profil de confiance et supprimez la référence au modèle de stratégie. Pour plus d'informations, voir.
Suppression d'une version à l'aide de l'interface de ligne de commande (CLI)
Vous pouvez supprimer un modèle de stratégie référencé dans un brouillon ou un modèle de profil ou de groupe d'accès approuvé validé. Cependant, la référence au modèle de stratégie devient invalide et vous devez la supprimer avant de pouvoir attribuer le profil de confiance ou le modèle de groupe d'accès aux comptes enfants.
Si vous souhaitez supprimer un modèle de stratégie référencé dans un profil approuvé ou un modèle de groupe d'accès affecté à des comptes enfants, vous devez supprimer l'affectation du profil approuvé ou du modèle de groupe d'accès de ces comptes enfants. Pour plus d'informations, voir Suppression d'une affectation pour les modèles de groupe d'accès et les modèles de profil de confiance.
Pour supprimer une version de modèle de stratégie à l'aide de l'interface de ligne de commande, utilisez la commande « access-policy-template-version-delete » comme indiqué dans l'exemple de requête suivant :
ibmcloud iam access-policy-template-version-delete SCCWPEditor 2
Cela supprime la version 2 du modèle de politique d' SCCWPEditor.
Création d'un modèle de politique à l'aide de l'API
S'il existe une stratégie qui pourrait nécessiter plusieurs modèles de groupe d'accès ou de profil approuvé, créez un modèle de stratégie d'accès.
Pour créer par programmation un modèle de politique d'accès à l'aide de l'API, appelez l'API de gestion des politiques IAM comme indiqué dans l'exemple de requête suivant :
curl -X POST 'https://iam.cloud.ibm.com/v1/policy_template' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{
"name": "IKSEditor",
"description": "Grant Editor Role on SERVICE_NAME",
"account_id": "ACCOUNT_ID",
"policy": {
"type": "acces",
"description": "Grant Editor Role on SERVICE_NAMEe",
"control": {
"grant": {
"roles": [
{
"role_id": "crn:v1:bluemix:public:iam::::role:Editor"
}
],
},
},
"resource": [
{
"attributes": [
{
"key": "serviceName",
"operator": "stringEquals",
"value": "$SERVICE_NAME"
}
]
}
],
"rule" :{
"key": "{{environment.attributes.day_of_week}}",
"operator": "dayOfWeekAnyOf",
"value": ["1+00:00", "2+00:00", "3+00:00", "4+00:00", "5+00:00"]
},
"pattern": "time-based-conditions:weekly:all-day"
}'
policyRole := &iampolicymanagementv1.Roles{
RoleID: core.StringPtr("crn:v1:bluemix:public:iam::::role:Viewer"),
}
v2PolicyGrant := &iampolicymanagementv1.Grant{
Roles: []iampolicymanagementv1.Roles{*policyRole},
}
v2PolicyControl := &iampolicymanagementv1.Control{
Grant: v2PolicyGrant,
}
serviceNameResourceAttribute := &iampolicymanagementv1.V2PolicyResourceAttribute{
Key: core.StringPtr("serviceName"),
Operator: core.StringPtr("stringEquals"),
Value: core.StringPtr("iam-access-management"),
}
policyResource := &iampolicymanagementv1.V2PolicyResource{
Attributes: []iampolicymanagementv1.V2PolicyResourceAttribute{
*serviceNameResourceAttribute},
}
templatePolicyModel := &iampolicymanagementv1.TemplatePolicy{
Type: core.StringPtr("access"),
Description: core.StringPtr("Test Template"),
Resource: policyResource,
Control: v2PolicyControl,
}
createPolicyTemplateOptions := iamPolicyManagementService.NewCreatePolicyTemplateOptions(
examplePolicyTemplateName,
exampleAccountID,
templatePolicyModel,
)
policyTemplate, response, err := iamPolicyManagementService.CreatePolicyTemplate(createPolicyTemplateOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(policyTemplate, "", " ")
fmt.Println(string(b))
Mise à jour d'une version de modèle de politique à l'aide de l'API
Vous pouvez mettre à jour les rôles, les ressources, le nom et la description d'un modèle de stratégie à tout moment avant de l'enregistrer. Pour mettre à jour le modèle de stratégie par programmation à l'aide de l'API, appelez l'API de gestion des stratégies IAM comme indiqué dans l'exemple de requête suivant :
curl -X PUT 'https://iam.cloud.ibm.com/v1/policy_templates/$TEMPLATE_ID/versions/$TEMPLATE_VERSION' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -H 'If-Match: $ETAG' -d '{
"type": "access",
"description": "Viewer role for for all instances of SERVICE_NAME in the account.",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "$USER_ID"
}
]
}'
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:iam::::role:Viewer"
}
],
"resources":[
{
"attributes": [
{
"name": "accountId",
"value": "$ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "$SERVICE_NAME"
}
]
}
]
}'
v2PolicyGrant := &iampolicymanagementv1.Grant{
Roles: []iampolicymanagementv1.Roles{
{core.StringPtr("crn:v1:bluemix:public:iam::::role:Viewer")},
{core.StringPtr("crn:v1:bluemix:public:iam::::role:Administrator")},
},
}
v2PolicyControl := &iampolicymanagementv1.Control{
Grant: v2PolicyGrant,
}
serviceNameResourceAttribute := &iampolicymanagementv1.V2PolicyResourceAttribute{
Key: core.StringPtr("serviceName"),
Operator: core.StringPtr("stringEquals"),
Value: core.StringPtr("watson"),
}
policyResource := &iampolicymanagementv1.V2PolicyResource{
Attributes: []iampolicymanagementv1.V2PolicyResourceAttribute{
*serviceNameResourceAttribute},
}
templatePolicyModel := &iampolicymanagementv1.TemplatePolicy{
Type: core.StringPtr("access"),
Description: core.StringPtr("Test Template v2"),
Resource: policyResource,
Control: v2PolicyControl,
}
replacePolicyTemplateOptions := iamPolicyManagementService.NewReplacePolicyTemplateOptions(
examplePolicyTemplateID,
examplePolicyTemplateVersion,
examplePolicyTemplateETag,
templatePolicyModel,
)
policyTemplate, response, err := iamPolicyManagementService.ReplacePolicyTemplate(replacePolicyTemplateOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(policyTemplate, "", " ")
fmt.Println(string(b))
Si vous avez besoin d'effectuer des mises à jour après avoir validé le modèle, créez une nouvelle version.
Engagement d'une version modèle de politique
Passez en revue le modèle de politique et engagez-le afin qu'aucune autre modification ne puisse être apportée à la version. De cette façon, l'administrateur de l'attribution des modèles peut être sûr qu'il n'attribue la version que lorsque vous avez confirmé qu'elle est prête. Pour valider par programmation un modèle de politique à l'aide de l'API, appelez l'API de gestion des politiques IAM comme indiqué dans l'exemple de requête suivant :
curl -X PUT 'https://iam.cloud.ibm.com/v1/policy_templates/$TEMPLATE_ID/versions/$TEMLPATE_VERSION/commit' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -H 'If-Match: $ETAG' -d '{}'
commitPolicyTemplateOptions := iamPolicyManagementService.NewCommitPolicyTemplateOptions(
examplePolicyTemplateID,
examplePolicyTemplateVersion,
examplePolicyTemplateETag,
)
response, err := iamPolicyManagementService.CommitPolicyTemplate(commitPolicyTemplateOptions)
if err != nil {
panic(err)
}
if response.StatusCode != 204 {
fmt.Printf("\nUnexpected response status code received from CommitPolicyTemplate(): %d\n", response.StatusCode)
}
Accorder l'accès avec un modèle de politique en utilisant l'API
Contrairement aux stratégies d'accès classiques, un modèle de stratégie d'accès ne comporte pas de sujet explicite auquel vous accordez l'accès lorsque vous le créez. Pour affecter par programmation un modèle de stratégie à un groupe d'accès ou à un modèle de profil approuvé à l'aide de l'API, appelez l'API de gestion des stratégies IAM comme indiqué dans l'exemple de requête suivant :
-
Énumérez tous les modèles de politique d'accès et notez l'ID du modèle de politique dans la réponse :
curl -X GET 'https://iam.cloud.ibm.com/v1/policy_templates?account_id=$ACCOUNT_ID' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -
Utilisez l'ID du modèle de stratégie pour attribuer des accès dans les modèles de groupe d'accès et les modèles de profil approuvé. Pour plus d'informations, consultez la documentation sur les profils de confiance et les groupes d'accès.
Création d'une nouvelle version de modèle de politique à l'aide de l'API
À mesure que les exigences d'accès évoluent pour les équipes de votre entreprise, vous devrez peut-être créer une autre version d'un modèle de stratégie pour répondre à de nouveaux besoins. Pour créer par programmation une nouvelle version de modèle de politique à l'aide de l'API, appelez l'API de gestion des politiques IAM comme indiqué dans l'exemple de requête suivant :
curl -X POST 'https://iam.cloud.ibm.com/v1/policy_template/$TEMPLATE_ID/versions' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{
"name": "IKSEditor",
"description": "Grant Editor Role on SERVICE_NAME",
"account_id": "ACCOUNT_ID",
"policy": {
"type": "acces",
"description": "Grant Editor Role on SERVICE_NAMEe",
"control": {
"grant": {
"roles": [
{
"role_id": "crn:v1:bluemix:public:iam::::role:Editor"
}
],
},
},
"resource": [
{
"attributes": [
{
"key": "serviceName",
"operator": "stringEquals",
"value": "$SERVICE_NAME"
}
]
}
],
"rule" :{
"key": "{{environment.attributes.day_of_week}}",
"operator": "dayOfWeekAnyOf",
"value": ["1+00:00", "2+00:00", "3+00:00", "4+00:00", "5+00:00"]
},
"pattern": "time-based-conditions:weekly:all-day"
}'
v2PolicyGrant := &iampolicymanagementv1.Grant{
Roles: []iampolicymanagementv1.Roles{
{core.StringPtr("crn:v1:bluemix:public:iam::::role:Viewer")},
{core.StringPtr("crn:v1:bluemix:public:iam::::role:Administrator")},
},
}
v2PolicyControl := &iampolicymanagementv1.Control{
Grant: v2PolicyGrant,
}
serviceNameResourceAttribute := &iampolicymanagementv1.V2PolicyResourceAttribute{
Key: core.StringPtr("serviceName"),
Operator: core.StringPtr("stringEquals"),
Value: core.StringPtr("watson"),
}
policyResource := &iampolicymanagementv1.V2PolicyResource{
Attributes: []iampolicymanagementv1.V2PolicyResourceAttribute{
*serviceNameResourceAttribute},
}
templatePolicyModel := &iampolicymanagementv1.TemplatePolicy{
Type: core.StringPtr("access"),
Description: core.StringPtr("Test Template v2"),
Resource: policyResource,
Control: v2PolicyControl,
}
createPolicyTemplateVersionOptions := iamPolicyManagementService.NewCreatePolicyTemplateVersionOptions(
examplePolicyTemplateID,
templatePolicyModel,
)
policyTemplate, response, err := iamPolicyManagementService.CreatePolicyTemplateVersion(createPolicyTemplateVersionOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(policyTemplate, "", " ")
fmt.Println(string(b))
Modèles de politique de liste
Vous pourriez avoir besoin de répertorier les modèles de politique dans votre compte d'entreprise pour plusieurs raisons. Vous pouvez voir les polices disponibles ou récupérer des détails sur une police que vous souhaitez modifier, retirer d'un autre modèle ou supprimer.
Pour répertorier les modèles de stratégie dans votre compte d'entreprise, appelez l'API IAM Policy Management comme indiqué dans l'exemple de requête suivant :
curl -X GET 'https://iam.cloud.ibm.com/v1/policy_templates?account_id=$ACCOUNT_ID' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json'
listPolicyTemplatesOptions := iamPolicyManagementService.NewListPolicyTemplatesOptions(
exampleAccountID,
)
policyTemplateCollection, response, err := iamPolicyManagementService.ListPolicyTemplates(listPolicyTemplatesOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(policyTemplateCollection, "", " ")
fmt.Println(string(b))
Suppression des références aux modèles de politique à l'aide de l'API
La suppression de la référence à un modèle de stratégie d'un groupe d'accès ou d'un modèle de profil approuvé révoque les autorisations que la stratégie accorde aux membres. Vous pouvez supprimer une référence de modèle de règle d'un modèle IAM dans un état Brouillon. Cependant, vous ne pouvez pas supprimer un modèle de stratégie référencé dans un profil de confiance validé ou attribué ou dans un modèle de groupe d'accès.
Si vous souhaitez attribuer une stratégie différente dans un groupe d'accès engagé ou attribué ou dans un modèle de profil approuvé, vous devez créer une nouvelle version. Pour plus d'informations, voir Création d'une nouvelle version des modèles de groupes d'accès et des modèles de profils de confiance.
Pour supprimer un modèle de stratégie du groupe d'accès ou des modèles de profil de confiance, appelez l'API de gestion des stratégies IAM comme indiqué dans l'exemple de requête suivant :
curl -X DELETE 'https://iam.cloud.ibm.com/v1/policy_assignments/$POLICY_ASSIGNMENT_ID' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json'
Suppression d'un modèle de politique à l'aide de l'API
La suppression d'un modèle de stratégie supprime toutes les versions du modèle. Vous pouvez supprimer un modèle de stratégie référencé dans un brouillon ou un modèle de profil ou de groupe d'accès approuvé validé. Cependant, la référence au modèle de stratégie devient invalide et vous devez la supprimer avant de pouvoir attribuer le profil de confiance ou le modèle de groupe d'accès aux comptes enfants.
Si vous souhaitez supprimer un modèle de stratégie référencé dans un profil approuvé ou un modèle de groupe d'accès affecté à des comptes enfants, vous devez supprimer l'affectation du profil approuvé ou du modèle de groupe d'accès de ces comptes enfants. Pour plus d'informations, voir Suppression d'une affectation pour les modèles de groupe d'accès et les modèles de profil de confiance.
Pour supprimer un modèle de stratégie, appelez l'API de gestion des stratégies IAM comme indiqué dans l'exemple de requête suivant :
curl -X DELETE 'https://iam.cloud.ibm.com/v1/policy_templates/$TEMPLATE_ID/versions/$TEMPLATE_VERSION' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json'
deletePolicyTemplateOptions := iamPolicyManagementService.NewDeletePolicyTemplateOptions(
examplePolicyTemplateID,
)
response, err := iamPolicyManagementService.DeletePolicyTemplate(deletePolicyTemplateOptions)
if err != nil {
panic(err)
}
if response.StatusCode != 204 {
fmt.Printf("\nUnexpected response status code received from DeletePolicyTemplate(): %d\n", response.StatusCode)
}
Supprimer une version de modèle de politique à l'aide de l'API
Pour supprimer uniquement une version spécifique, appelez l'API de gestion des politiques IAM comme indiqué dans l'exemple de requête suivant :
curl -X DELETE 'https://iam.cloud.ibm.com/v1/policy_templates/$TEMPLATE_ID/versions/$TEMPLATE_VERSION' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json'
deletePolicyTemplateVersionOptions := iamPolicyManagementService.NewDeletePolicyTemplateVersionOptions(
examplePolicyTemplateID,
examplePolicyTemplateVersion,
)
response, err := iamPolicyManagementService.DeletePolicyTemplateVersion(deletePolicyTemplateVersionOptions)
if err != nil {
panic(err)
}
if response.StatusCode != 204 {
fmt.Printf("\nUnexpected response status code received from DeletePolicyTemplateVersion(): %d\n", response.StatusCode)
}