Come stabilire l'autorizzazione service - to - service

Per configurare la condivisione DNS per i gateway VPE tra hub e VPC con condivisione DNS su account diversi, l'amministratore della VPC hub deve stabilire un criterio di autorizzazione IAM service-to-service ( s2s ). Per ulteriori informazioni, vedi il documento relativo all'utilizzo delle autorizzazioni per concedere l'accesso tra i servizi.

Note:

  • Se un VPC condiviso da DNS e il VPC hub utilizzano gli stessi account o account differenti, come amministratore del VPC hub, devi creare una politica di autorizzazione service - to - service IAM che fornisca a questo VPC condiviso da DNS l'autorizzazione DNSBindingConnector sul VPC hub.
  • Attualmente, l'IU consente solo a Tutte le istanze VPC di disporre dell'autorizzazione DNSBindingConnector sul VPC hub. Per indicare un VPC "specifico", devi utilizzare l'API o impacchettare una richiesta API in un file JSON da utilizzare con la CLI. Il codice di esempio viene fornito per l'utilizzo con la CLI e API.

È possibile stabilire l'autorizzazione di s2s con la console, la CLI, l'API o Terraform.

Creazione di un criterio di autorizzazione IAM s2s nella console

Per creare un criterio di autorizzazione IAM s2s nella console, procedere come segue:

  1. Nella consoleIBM Cloud, vai a Manage> Access (IAM). Viene visualizzata la pagina " IBM Cloud® Identity and Access Management ".

  2. Dal riquadro laterale, selezionare Autorizzazioni.

  3. Nella pagina Gestisci autorizzazioni, fare clic su Crea.

  4. Nella pagina "Autorizzazione al servizio" di Grant, selezionare un account di origine:

    • Se stai configurando l'autorizzazione nel tuo account, seleziona Questo account.

    • Se si sta impostando l'autorizzazione nell'account aziendale, selezionare Un altro account.

      Solo per le configurazioni di conti incrociati, specificare il conto di origine dell'autorizzazione inserendo l'ID del conto.

  5. Per il servizio di origine, selezionare VPC Infrastructure Services dall'elenco.

  6. Selezionare l'ambito. Scegliere Risorse specifiche.

  7. Selezionare il tipo di risorsa. Dall'elenco, selezionare Virtual Private Cloud.

  8. Selezionare l'istanza del servizio di origine. Scegliere Tutte le istanze.

    Per selezionare un'istanza specifica, devi utilizzare le istruzioni CLI o API. Si tratta di una limitazione nota.

  9. Per il servizio di destinazione, seleziona VPC Infrastructure Services dall'elenco.

  10. Per l'ambito, selezionare Risorse specifiche.

  11. Selezionare il tipo di risorsa. Dall'elenco, selezionare Virtual Private Cloud.

    Se si desidera fornire il VPC di destinazione, selezionare ID VPC. Operatore: Selezionare stringa uguale e inserire il valore VPC.

  12. Nella sezione Ruoli in Accesso servizio, selezionare DNSBindingConnector.

  13. Fai clic su Autorizza.

  14. Quando si ritorna alla pagina Gestisci autorizzazioni, fare nuovamente clic su Crea e seguire la stessa procedura per configurare le autorizzazioni per gli altri due servizi.

Creazione di una politica di autorizzazione s2s IAM dalla CLI

Per creare una politica di autorizzazione s2s IAM dalla CLI, attieniti alla seguente procedura:

  1. Configura il tuo ambiente CLI.

  2. Accedi al tuo account tramite la CLI. Dopo aver immesso la password, il sistema richiede l'account e la regione che si desidera utilizzare:

    ibmcloud login --sso
    
  3. Crea una politica di autorizzazione s2s IAM:

    ibmcloud iam authorization-policy-create is DNSBindingConnector --source-resource-type vpc --target-resource-type vpc
    

Indicazione di un'istanza VPC specifica dalla CLI

Se un VPC condiviso da DNS e il VPC hub utilizzano lo stesso account, come l'amministratore del VPC hub, devi creare una politica di autorizzazione service - to - service IAM che fornisca a questo VPC condiviso da DNS l'autorizzazione DNSBindingConnector sul VPC hub.

Attualmente, l'IU Source service instance consente solo a Tutte le istanze VPC di disporre dell'autorizzazione DNSBindingConnector sul VPC hub.

Per indicare uno specifico VPC dalla CLI, devi utilizzare un file JSON con il contenuto della richiesta API. Ad esempio:

ibmcloud iam authorization-policy-create --file JSON_FILE

Dove JSON_FILE contiene:

{"type":"authorization","subjects":[{"attributes":[{"name":"accountId","value":"e38cfd44b6e44b249ac75dd5de0cc8aa"},{"name":"serviceName","value":"is"},{"name":"resourceType","value":"vpc"},{"name":"resource","value":"r006-fd189c4f-52a0-4694-abfd-186cb6011a3c"}]}],"roles":[{"role_id":"crn:v1:bluemix:public:is::::serviceRole:DNSBindingConnector"}],"resources":[{"attributes":[{"name":"accountId","value":"e38cfd44b6e44b249ac75dd5de0cc8aa"},{"name":"serviceName","value":"is"},{"name":"vpcId","value":"r006-ffaedf75-4f44-4ead-989d-cd37816a13d2"}]}]}

Creazione di una politica di autorizzazione s2s IAM con l'API

Per creare una politica di autorizzazione s2s IAM con l'API, attieniti alla seguente procedura:

  1. Imposta il tuo Ambiente API.

  2. Memorizzare i seguenti valori nelle variabili da utilizzare nei comandi API:

    export dns_shared_account_id=<dns_shared_vpc_account_id>
    export hub_account_id=<hub_vpc_account_id>
    export dns_shared_vpc_id=<dns_shared_vpc_id>
    export hub_vpc_id=<hub_vpc_id>
    
  3. Per creare ed eliminare un'associazione di risoluzione DNS tra hub e VPC condivisi DNS su account diversi, a s2s la policy deve esistere nell'account VPC dell'hub. Ciò conferisce al VPC condiviso dal DNS un ruolo di DNSBindingConnector sul VPC hub. Per creare il s2s politica, fare riferimento alla policies metodo nel API di gestione delle policy IAM

Richiesta di esempio

{
  "type": "authorization",
  "subjects": [
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "'$dns_shared_account_id'"
        },
        {
          "name": "serviceName",
          "value": "is"
        },
        {
          "name": "resourceType",
          "value": "vpc"
        },
        {
          "name": "resource",
          "value": "'$dns_shared_vpc_id'"
        }
      ]
    }
  ],
  "roles": [
    {
      "role_id": "crn:v1:bluemix:public:is::::serviceRole:DNSBindingConnector"
    }
  ],
  "resources": [
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "'$hub_account_id'"
        },
        {
          "name": "serviceName",
          "value": "is"
        },
        {
          "name": "vpcId",
          "value": "'$hub_vpc_id'"
        }
      ]
    }
  ]
}

Esempio di comando

curl -sX POST "$iam_api_endpoint/v1/policies" -H "Authorization: Bearer ${iam_token}" -d '$request_body'

Indicazione di un'istanza VPC specifica con l'API

Se un VPC condiviso da DNS e il VPC hub utilizzano lo stesso account, come l'amministratore del VPC hub, devi creare una politica di autorizzazione service - to - service IAM che fornisca a questo VPC condiviso da DNS l'autorizzazione DNSBindingConnector sul VPC hub.

Attualmente, l'IU Source service instance consente solo a Tutte le istanze VPC di disporre dell'autorizzazione DNSBindingConnector sul VPC hub.

Di seguito è riportata un'API di esempio per concedere al VPC condiviso da DNS l'autorizzazione DNSBindingConnector sul VPC hub. Notare che role_id è crn:v1:bluemix:public:is::::serviceRole:DNSBindingConnector.

{
"type": "authorization",
"subjects": [
{
"attributes": [
{ "name": "accountId", "value": "Account S (Spoke)" }
 ,
   { "name": "serviceName", "value": "is" }
 ,
{ "name": "resourceType", "value": "vpc" }
 ,
{ "name": "resource", "value": "Spoke VPC ID" }
 ]
}
],
"roles": [
{ "role_id": "crn:v1:bluemix:public:is::::serviceRole:DNSBindingConnector" }
 ],
"resources": [
{
"attributes": [
{ "name": "accountId", "value": "Account H (Hub)" }
 ,
{ "name": "serviceName", "value": "is" }
 ,
{ "name": "vpcId", "value": "Hub VPC ID" }
 ]
}
]
}

Creazione di una politica di autorizzazione IAM s2s con Terraform

Puoi utilizzare Terraform per creare la politica di autorizzazione s2s IAM.

Per utilizzare Terraform, scaricare la CLI di Terraform e configurare il plug-in IBM Cloud Provider. Per ulteriori informazioni, vedi Introduzione a Terraform.

I servizi dell'infrastruttura VPC utilizzano un endpoint specifico regionale, che specifica us-south per impostazione predefinita. Se crei il tuo VPC in un'altra regione, assicurati di indicare la regione appropriata nel blocco del provider del file provider.tf.

Vedi il seguente esempio di destinazione di una regione diversa da quella predefinita us-south.

resource "ibm_iam_authorization_policy" "policy" {

  #"DNSBindingConnector",

  roles = [

    "DNS Binding Connector",

  ]

    subject_attributes {

        name  = "accountId"

        value = "var.accountId1"

    }

    subject_attributes {

        name  = "serviceName"

        value = "is"

    }

     subject_attributes {

        name  = "resourceType"

        value = "vpc"

    }

    subject_attributes {

        name  = "resource"

        value = ibm_is_vpc.spoke_vpc.id

    }

    resource_attributes {

        name     = "accountId"

        value    =  "var.accountId2"

    }

    resource_attributes {

        name     = "serviceName"

        value    = "is"

    }

   resource_attributes {

      name  =  "vpcId"

      value =  ibm_is_vpc.hub_vpc.id

   }

}