Creazione di modelli di criteri gestiti dall'azienda

Configurare una politica di accesso ogni volta che è necessario concedere l'accesso in un gruppo di accesso o in un modello di profilo attendibile può richiedere molto tempo ed essere soggetto a errori. Semplifica il processo e mantieni l'uniformità nelle tue politiche utilizzando modelli di politiche di accesso gestiti dall'azienda per assegnare l'accesso o creare autorizzazioni da servizio a servizio.

I modelli di criteri di accesso definiscono un criterio senza richiedere un soggetto e possono essere utilizzati per concedere l'accesso a più soggetti.

Ad esempio, potrebbe essere necessario assegnare una politica di accesso che conceda l'accesso di amministratore su tutti i servizi abilitati IAM a più gruppi di accesso o modelli di profilo attendibili in modo che i membri possano creare istanze di servizi abilitati IAM. Per ridurre le configurazioni errate delle policy, creare un modello di policy di accesso denominato " Admin on All IAM enabled services". Selezionare la policy preconfigurata quando è necessario assegnare quel livello di accesso in un gruppo di accesso o in un modello di profilo attendibile.

Mentre un argomento di policy non è necessario se si utilizza la CLI o l'API, è necessario nella console dell' IBM Cloud. Ogni volta che si assegna una policy di accesso a un profilo attendibile o a un modello di gruppo di accesso nella console di gestione degli accessi ( IBM Cloud ), si crea un modello di policy. È possibile fare riferimento ai modelli di criterio per concedere l'accesso nei modelli di profilo e di gruppo di accesso affidabili utilizzando la console, la CLI o l'API. Visualizza la policy andando su Gestisci > Accesso (IAM) > Modelli > Policy.

I modelli di policy di accesso supportano solo lo schema " v2/policies ". Per ulteriori informazioni, consultare il registro delle modifiche dell'API di gestione delle politiche IAM.

Creazione di un modello di criterio tramite la console

IBM Cloud I modelli di policy creati nella console di amministrazione di Active Directory devono essere associati a un gruppo di accesso o a un modello di profilo attendibile. Scopri di più sull'aggiunta di criteri di accesso ai modelli di gruppo di accesso e ai modelli di profilo attendibili.

Creazione di un modello di criterio autonomo

I modelli di criterio consentono agli amministratori degli account aziendali di definire le regole di accesso in modo indipendente, senza collegarle direttamente a un gruppo di accesso o a un modello di profilo attendibile. Possono essere creati, aggiornati, gestiti in modo indipendente e riutilizzati. Una volta finalizzato, il modello di criterio deve essere aggiunto a un gruppo di accesso o a un modello di profilo attendibile. Quando un modello di criterio è collegato, può essere assegnato ai sottoconti, dove vengono applicate le regole associate.

Per creare un modello di criterio autonomo nella console, completare i seguenti passaggi:

  1. Andate su Gestione > Accesso (IAM) > Impresa > Modelli > Criteri nel sito IBM Cloud e fate clic su Crea.

  2. Inserisci un nome per il modello e fai clic su Crea.

  3. Fare clic su Accesso e inserire i dettagli della polizza.

  4. Selezionare un servizio o un gruppo di servizi e fare clic su Avanti.

  5. Scegliere l'accesso a Tutte le risorse o selezionare Risorse specifiche in base agli attributi e fare clic su Avanti.

  6. Nella sezione Ruoli e azioni, selezionare i ruoli che definiscono l'ambito di accesso. È possibile creare modelli di ruolo personalizzati all'interno di un flusso di modelli di criterio e anche selezionare un ruolo personalizzato dai modelli di ruolo personalizzati esistenti per il servizio selezionato.

    1. Fare clic su Crea ruolo personalizzato per definire una combinazione personalizzata di azioni.
    2. (Facoltativo) Inserisci una descrizione del modello.
    3. Inserisci un nome per il ruolo personalizzato.
    4. Inserire un ID per il ruolo personalizzato.
    5. (Facoltativo) Inserisci una descrizione per il ruolo personalizzato.
    6. Seleziona le azioni e fai clic su Crea. Il ruolo personalizzato viene elencato e selezionato insieme ad altri ruoli già selezionati per il criterio.

    Utilizzare la barra di ricerca per cercare i ruoli che supportano determinate azioni. Ad esempio, cercare lettura, modifica o visualizzazione per visualizzare l'elenco dei ruoli a cui si applicano queste azioni.

  7. (Facoltativo) Aggiungere condizioni per specificare quando si vuole che il criterio conceda l'accesso.

  8. Fare clic su Salva.

Revisione di un modello di politica

Per bloccare la versione e impedire ulteriori modifiche, rivedere e impegnare il modello di criterio completando i passaggi seguenti:

  1. Cliccare sulla recensione.
  2. Verificare che il modello di criterio sia configurato secondo le aspettative.
  3. Selezionare la casella di controllo per confermare che la versione del modello di criterio è bloccata e non può essere modificata.
  4. Fai clic su Commit.

Creare una nuova versione

Creare una nuova versione di un modello di criterio per aggiornare le configurazioni senza modificare l'impostazione originale. Consente di migliorare o regolare le impostazioni e di mantenere un registro delle versioni precedenti.

Per creare una nuova versione di un modello di criterio, completare i seguenti passaggi:

  1. Fare clic su Gestione > Accesso (IAM) > Modelli > Criteri nella console IBM Cloud.

  2. Selezionare il modello di polizza.

  3. Fare clic sull'icona Nuova versione Icona Nuova versione.

  4. Selezionare la versione che si desidera utilizzare come base per la nuova versione.

  5. Inserire una nuova descrizione per il modello e il criterio di accesso, oppure mantenere quelle già presenti.

  6. Fai clic su Crea.

  7. Apportare eventuali modifiche alla politica di accesso.

    Non è possibile modificare il servizio del criterio di accesso, ma è possibile modificare Risorse, Ruoli e Condizioni.

  8. Fare clic su Salva.

  9. Fare clic su Revisiona e fare il commit della nuova versione.

Eliminazione di un modello di criterio nella console

L'eliminazione di un modello di criterio comporta l'eliminazione di tutte le versioni del modello. È possibile eliminare un modello di policy a cui si fa riferimento in un modello di profilo attendibile o di gruppo di accesso in versione bozza o confermata. Tuttavia, il riferimento al modello di policy non è più valido e devi rimuover lo prima di poter assegnare il profilo attendibile o il modello di gruppo di accesso agli account figlio.

Nel caso in cui si desideri eliminare un modello di policy a cui si fa riferimento in un profilo attendibile o in un modello di gruppo di accesso assegnato ad account secondari, è necessario rimuovere l'assegnazione del profilo attendibile o del modello di gruppo di accesso da tali account secondari. Per ulteriori informazioni, vedere Rimozione di un'assegnazione per i modelli di gruppo di accesso e i modelli di profilo attendibili.

Per eliminare un modello di policy nella console, completare i seguenti passaggi:

  1. Vai a Gestione > Accesso (IAM) > Modelli nell' IBM Cloud.
  2. Fai clic su Policies.
  3. Fare clic sull'icona Azioni Icona Azioni > Elimina modello.
  4. Conferma che desideri eliminare il modello.

Eliminazione di una versione del modello di criterio nella console

Per eliminare solo una versione specifica, completare i seguenti passaggi:

  1. Vai a Gestione > Accesso (IAM) > Modelli nell' IBM Cloud.
  2. Fai clic su Policies.
  3. Fare clic sull'icona Azioni Icona Azioni > Elimina versione.
  4. Conferma che desideri eliminare la versione.

Creare un modello di policy di accesso utilizzando la CLI

Se più modelli di gruppo di accesso o di profilo attendibile richiedono la stessa policy, creare un modello di policy di accesso.

Per creare un modello di policy di accesso utilizzando la CLI, completare i seguenti passaggi:

  1. Creare un file JSON che configuri la definizione del modello di policy. Per ulteriori informazioni sugli attributi che è possibile utilizzare nel file JSON, consultare l'API di gestione delle politiche IAM.

    Il seguente file JSON di esempio specifica l' name e e l' description e del modello e l' account_id e dell'account aziendale. Quindi, viene definita la definizione dell' policy. Questo modello di policy concede una policy di accesso con autorizzazioni di Editor sul IBM Cloud Security and Compliance Center Workload Protection servizio. La politica include una regola basata sul tempo che garantisce l'accesso dal lunedì al venerdì per tutto il giorno, ripetendosi settimanalmente. Per ulteriori informazioni, vedere Condizioni basate sul tempo e Limitare l'accesso con condizioni basate sul tempo.

    {
      "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"
      }
    }
    
  2. Utilizzare il comando " ap-template-create " come mostrato nella seguente richiesta di esempio:

imcloud iam access-policy-template-create --file /path/to/security_editor_access_policy_template.json

Aggiornamento di un modello di policy di accesso utilizzando la CLI

È possibile aggiornare i ruoli, le risorse, il nome e la descrizione di un modello di policy in qualsiasi momento prima di confermarlo.

Per aggiornare il modello di policy tramite la CLI, procedere come segue:

  1. Aggiorna il tuo file JSON con la nuova definizione del modello di policy. Per ulteriori informazioni sugli attributi che è possibile utilizzare nel file JSON, consultare l'API di gestione delle politiche IAM.

    Quando si aggiorna il nome del modello, questo aggiorna il nome per ogni versione.

  2. Utilizzare il comando " ap-template-version-update " come mostrato nella seguente richiesta di esempio:

    ibmcloud iam access-policy-template-update SCCWPEditor 1 --file /path/to/security_editor_access_policy_template.json
    

    Questo aggiorna la versione 1 del modello di politica dell' SCCWPEditor, facendo riferimento al file JSON aggiornato.

Se è necessario effettuare aggiornamenti dopo aver confermato il modello, creare una nuova versione.

Impegnare una versione del modello di policy utilizzando la CLI

Rivedere il modello di policy e confermarlo in modo che non possano essere apportate ulteriori modifiche alla versione. In questo modo, l'amministratore dell'assegnazione dei modelli può essere sicuro di assegnare la versione solo quando hai confermato che è pronta.

  1. Rivedi il modello di policy prima di impegnarti utilizzando il metodo access-policy-template-version per visualizzare la versione specifica.

    ibmcloud iam access-policy-template-version SCCWPEditor 1
    
  2. Per eseguire un modello di policy utilizzando la CLI, utilizzare il metodo " ap-template-version-commit " come mostrato nella seguente richiesta di esempio:

    ibmcloud iam access-policy-template-version-commit SCCWPEditor 1
    

Concessione dell'accesso con un modello di policy utilizzando la CLI

A differenza delle normali politiche di accesso, i modelli di politica non hanno un soggetto esplicito a cui si sta concedendo l'accesso quando li si crea.

È possibile fare riferimento a un modello di policy per assegnare l'accesso in un gruppo di accesso o in un modello di profilo attendibile utilizzando la CLI.

  1. Elenca tutti i modelli di policy di accesso e annota l'ID del modello di policy utilizzando il comando ap-templates come mostrato nella seguente richiesta di esempio:

    ibmcloud iam access-policy-templates
    
  2. Utilizzare l'ID modello di policy per assegnare l'accesso nei modelli di gruppo di accesso e nei modelli di profilo attendibile.

    1. Nel file JSON che configura un modello di gruppo di accesso o un modello di profilo attendibile, è presente un parametro policy_template_references. Utilizza i campi " id " e " version " del modello di policy a cui vuoi fare riferimento per concedere l'accesso. Per ulteriori informazioni, consultare la documentazione sui profili di fiducia e sui gruppi di accesso.

Creazione di una nuova versione di un modello di policy di accesso utilizzando la CLI

Man mano che i requisiti di accesso per i team della tua azienda si evolvono, potrebbe essere necessario creare un'altra versione di un modello di policy per soddisfare le nuove esigenze. Per creare una nuova versione del modello di policy utilizzando la CLI, completare i seguenti passaggi:

  1. Modifica il file JSON per includere eventuali aggiornamenti alla definizione del modello di policy. Per ulteriori informazioni sugli attributi che è possibile utilizzare nel file JSON, consultare l'API di gestione delle politiche IAM

  2. Utilizzare il comando " access-policy-template-version-create " come mostrato nella seguente richiesta di esempio:

    ibmcloud iam access-policy-template-version-create SCCWPEditor --file /path/to/security_editor_access_policy_template.json
    

Rimozione dei riferimenti ai modelli di criteri utilizzando la CLI

Rimuovendo il riferimento a un modello di policy da un gruppo di accesso o da un modello di profilo attendibile, vengono revocate le autorizzazioni che la policy concede ai membri. È possibile rimuovere un riferimento a un modello di policy da un modello IAM in stato di bozza. Tuttavia, non è possibile rimuovere un modello di policy a cui si fa riferimento in un modello di profilo o gruppo di accesso affidabile assegnato o confermato.

Se si desidera assegnare una policy diversa in un gruppo di accesso impegnato o assegnato o in un modello di profilo attendibile, è necessario creare una nuova versione. Per ulteriori informazioni, vedere Creazione di una nuova versione dei modelli di gruppo di accesso e dei modelli di profilo attendibile.

È possibile rimuovere un riferimento a un modello di policy per un gruppo di accesso o un modello di profilo attendibile utilizzando la CLI.

  1. Ottenere l'ID del modello di policy utilizzando il comando ap-templates come mostrato nella seguente richiesta di esempio:

    example command
    
  2. Aggiorna il file JSON che configura il gruppo di accesso o la definizione del modello di profilo attendibile e rimuovi il riferimento al modello di policy. Per ulteriori informazioni, vedere.

Eliminazione di una versione tramite la CLI

È possibile eliminare un modello di criterio a cui si fa riferimento in una bozza o in un modello di profilo attendibile o di gruppo di accesso confermato. Tuttavia, il riferimento al modello di policy diventa non valido e devi rimuover lo prima di poter assegnare il profilo attendibile o il modello di gruppo di accesso agli account figlio.

Nel caso in cui si desideri eliminare un modello di policy a cui si fa riferimento in un profilo attendibile o in un modello di gruppo di accesso assegnato ad account secondari, è necessario rimuovere l'assegnazione del profilo attendibile o del modello di gruppo di accesso da tali account secondari. Per ulteriori informazioni, vedere Rimozione di un'assegnazione per i modelli di gruppo di accesso e i modelli di profilo attendibili.

Per eliminare una versione del modello di policy utilizzando la CLI, utilizzare il comando " access-policy-template-version-delete " come mostrato nella seguente richiesta di esempio:

ibmcloud iam access-policy-template-version-delete SCCWPEditor 2

Questo elimina la versione 2 del modello di politica dell' SCCWPEditor.

Creazione di un modello di policy utilizzando l'API

Se è necessaria una policy che richieda più gruppi di accesso o modelli di profili attendibili, creare un modello di policy di accesso.

Per creare programmaticamente un modello di policy di accesso utilizzando l'API, chiamare l'API di gestione delle policy IAM come mostrato nella seguente richiesta di esempio:

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))

Aggiornamento di una versione del modello di policy utilizzando l'API

È possibile aggiornare i ruoli, le risorse, il nome e la descrizione di un modello di policy in qualsiasi momento prima di confermarlo. Per aggiornare programmaticamente il modello di policy utilizzando l'API, chiamare l'API di gestione delle policy IAM come mostrato nella seguente richiesta di esempio:

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))

Se è necessario effettuare aggiornamenti dopo aver confermato il modello, creare una nuova versione.

Impegnare una versione del modello di policy

Rivedere il modello di policy e confermarlo in modo che non possano essere apportate ulteriori modifiche alla versione. In questo modo, l'amministratore dell'assegnazione dei modelli può essere sicuro di assegnare la versione solo quando hai confermato che è pronta. Per impegnare programmaticamente un modello di policy utilizzando l'API, chiamare l'API di gestione delle policy IAM come mostrato nella seguente richiesta di esempio:

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)
}

Concessione dell'accesso con un modello di policy utilizzando l'API

A differenza delle normali politiche di accesso, un modello di politica di accesso non ha un soggetto esplicito a cui si sta concedendo l'accesso quando lo si crea. Per assegnare programmaticamente un modello di policy a un gruppo di accesso o a un modello di profilo attendibile utilizzando l'API, chiamare l'API di gestione delle policy IAM come mostrato nella seguente richiesta di esempio:

  1. Elenca tutti i modelli di policy di accesso e annota l'ID del modello di policy nella risposta:

    curl -X GET 'https://iam.cloud.ibm.com/v1/policy_templates?account_id=$ACCOUNT_ID' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json'
    
  2. Utilizzare l'ID modello di policy per assegnare l'accesso nei modelli di gruppo di accesso e nei modelli di profilo attendibile. Per ulteriori informazioni, consultare la documentazione sui profili di fiducia e sui gruppi di accesso.

Creazione di una nuova versione del modello di policy utilizzando l'API

Man mano che i requisiti di accesso per i team della tua azienda si evolvono, potrebbe essere necessario creare un'altra versione di un modello di policy per soddisfare le nuove esigenze. Per creare programmaticamente una nuova versione del modello di policy utilizzando l'API, chiamare l'API di gestione delle policy IAM come mostrato nella seguente richiesta di esempio:

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))

Elenco modelli di policy

Potrebbe essere necessario elencare i modelli di polizza nel proprio account aziendale per diversi motivi. È possibile vedere quali polizze sono disponibili o recuperare i dettagli di una polizza che si desidera modificare, rimuovere da un altro modello o eliminare.

Per elencare i modelli di policy nel tuo account aziendale, chiama l'API di gestione delle policy IAM come mostrato nella seguente richiesta di esempio:

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))

Rimozione dei riferimenti ai modelli di policy utilizzando l'API

Rimuovendo il riferimento a un modello di policy da un gruppo di accesso o da un modello di profilo attendibile, vengono revocate le autorizzazioni che la policy concede ai membri. È possibile rimuovere un riferimento a un modello di policy da un modello IAM in stato di bozza. Tuttavia, non è possibile rimuovere un modello di policy a cui si fa riferimento in un modello di profilo o gruppo di accesso affidabile assegnato o confermato.

Se si desidera assegnare una policy diversa in un gruppo di accesso impegnato o assegnato o in un modello di profilo attendibile, è necessario creare una nuova versione. Per ulteriori informazioni, vedere Creazione di una nuova versione dei modelli di gruppo di accesso e dei modelli di profilo attendibile.

Per rimuovere un modello di policy dal gruppo di accesso o dai modelli di profilo attendibili, chiamare l'API di gestione delle policy IAM come mostrato nella seguente richiesta di esempio:

curl -X DELETE 'https://iam.cloud.ibm.com/v1/policy_assignments/$POLICY_ASSIGNMENT_ID' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json'

Eliminazione di un modello di criterio utilizzando l'API

L'eliminazione di un modello di criterio comporta l'eliminazione di tutte le versioni del modello. È possibile eliminare un modello di criterio a cui si fa riferimento in una bozza o in un modello di profilo attendibile o di gruppo di accesso confermato. Tuttavia, il riferimento al modello di policy diventa non valido e devi rimuover lo prima di poter assegnare il profilo attendibile o il modello di gruppo di accesso agli account figlio.

Nel caso in cui si desideri eliminare un modello di policy a cui si fa riferimento in un profilo attendibile o in un modello di gruppo di accesso assegnato ad account secondari, è necessario rimuovere l'assegnazione del profilo attendibile o del modello di gruppo di accesso da tali account secondari. Per ulteriori informazioni, vedere Rimozione di un'assegnazione per i modelli di gruppo di accesso e i modelli di profilo attendibili.

Per eliminare un modello di policy, chiama l'API di gestione delle policy IAM come mostrato nella seguente richiesta di esempio:

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)
}

Eliminazione di una versione del modello di criterio utilizzando l'API

Per eliminare solo una versione specifica, chiamare l'API di gestione delle politiche IAM come mostrato nella seguente richiesta di esempio:

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)
}