Etablissement de l'autorisation de service à service

Pour configurer le partage de DNS pour les passerelles VPE entre le hub et les VPC partagés par DNS sur des comptes différents, l'administrateur du VPC hub doit établir une politique d'autorisation IAM de service à service ( s2s ). Pour plus d'informations, voir Utilisation des autorisations d'octroi d'accès entre services.

**Remarques : **

  • Si un VPC partagé par DNS et le VPC concentrateur utilisent les mêmes comptes ou des comptes différents, en tant qu'administrateur VPC concentrateur, vous devez créer une règle d'autorisation de service à service IAM qui donne à ce VPC partagé par DNS le droit DNSBindingConnector sur le VPC concentrateur.
  • Actuellement, l'interface utilisateur autorise uniquement Toutes les instances VPC à disposer du droit DNSBindingConnector sur le VPC concentrateur. Pour indiquer un VPC "spécifique", vous devez utiliser l'API ou encapsuler une demande d'API dans un fichier JSON à utiliser avec l'interface de ligne de commande. Un exemple de code est fourni pour être utilisé avec l'interface de ligne de commande et l'API.

Vous pouvez établir l'autorisation s2s avec la console, le CLI, l'API ou Terraform.

Création d'une politique d'autorisation IAM s2s dans la console

Pour créer une politique d'autorisation IAM s2s dans la console, procédez comme suit :

  1. Dans la console d' IBM Cloud, accédez à « Gérer » > « Accès (IAM) ». La page « IBM Cloud® Identity and Access Management » s'affiche.

  2. Dans le panneau latéral, sélectionnez Autorisations.

  3. Sur la page « Gérer les autorisations », cliquez sur « Créer ».

  4. Sur la page « Accorder une autorisation de service », sélectionnez un compte source :

    • Si vous configurez l'autorisation dans votre compte, sélectionnez Ce compte.

    • Si vous configurez l'autorisation dans le compte d'entreprise, sélectionnez Autre compte.

      Pour les configurations inter-comptes uniquement, indiquez le compte source de l'autorisation en saisissant l'ID du compte.

  5. Pour le service source, sélectionnez Services d'infrastructure VPC dans la liste.

  6. Sélectionnez la portée. Choisissez Ressources spécifiques.

  7. Sélectionnez Type de ressource. Dans la liste, sélectionnez Virtual Private Cloud.

  8. Sélectionnez l'instance du service source. Sélectionnez Toutes les instances.

    Pour sélectionner une instance spécifique, vous devez utiliser les instructions de l'interface de ligne de commande ou de l' API. Il s'agit d'une limitation connue.

  9. Pour le service cible, sélectionnez Services d'infrastructure VPC dans la liste.

  10. Pour l'étendue, sélectionnez Ressources spécifiques.

  11. Sélectionnez Type de ressource. Dans la liste, sélectionnez Virtual Private Cloud.

    Si vous souhaitez fournir le VPC cible, sélectionnez VPC ID. Opérateur : Sélectionnez string equals et saisissez la valeur VPC.

  12. Dans la section Rôles sous Accès au service, sélectionnez DNSBindingConnector.

  13. Cliquez sur Autoriser.

  14. Lorsque vous revenez à la page Gérer les autorisations, cliquez à nouveau sur Créer et suivez les mêmes étapes pour configurer les autorisations pour les deux autres services.

Création d'une règle d'autorisation IAM s2s à partir de l'interface de ligne de commande

Pour créer une règle d'autorisation IAM s2s à partir de l'interface de ligne de commande, procédez comme suit:

  1. Configurez votre environnement d'interface de ligne de commande.

  2. Connectez-vous à votre compte via l'interface CLI. Une fois que vous avez saisi le mot de passe, le système vous invite à indiquer le compte et la région à utiliser :

    ibmcloud login --sso
    
  3. Créez une règle d'autorisation IAM s2s:

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

Indication d'une instance VPC spécifique à partir de l'interface de ligne de commande

Si un VPC partagé par DNS et le VPC concentrateur utilisent le même compte que l'administrateur VPC concentrateur, vous devez créer une règle d'autorisation de service à service IAM qui donne à ce VPC partagé par DNS le droit DNSBindingConnector sur le VPC concentrateur.

Actuellement, l'interface utilisateur Source service instance autorise uniquement Toutes les instances VPC à disposer du droit DNSBindingConnector sur le VPC concentrateur.

Pour indiquer un VPC spécifique à partir de l'interface de ligne de commande, vous devez utiliser un fichier JSON avec le contenu de la demande d'API. Exemple :

ibmcloud iam authorization-policy-create --file JSON_FILE

JSON_FILE contient:

{"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"}]}]}

Création d'une règle d'autorisation s2s IAM avec l'API

Pour créer une règle d'autorisation IAM s2s avec l'API, procédez comme suit:

  1. Configurez votre environnement d'API.

  2. Enregistrez les valeurs suivantes dans des variables qui seront utilisées dans les commandes de l'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. Pour créer et supprimer une liaison de résolution DNS entre le hub et les VPC partagés DNS sur différents comptes, un s2s La stratégie doit exister dans le compte VPC hub. Cela donne au VPC partagé par DNS un rôle DNSBindingConnector sur le VPC concentrateur. Pour créer le s2s politique, reportez-vous à la policies méthode dans le API de gestion des stratégies IAM

Exemple de demande

{
  "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'"
        }
      ]
    }
  ]
}

Exemple de commande

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

Indication d'une instance VPC spécifique avec l'API

Si un VPC partagé par DNS et le VPC concentrateur utilisent le même compte que l'administrateur VPC concentrateur, vous devez créer une règle d'autorisation de service à service IAM qui donne à ce VPC partagé par DNS le droit DNSBindingConnector sur le VPC concentrateur.

Actuellement, l'interface utilisateur Source service instance autorise uniquement Toutes les instances VPC à disposer du droit DNSBindingConnector sur le VPC concentrateur.

Voici un exemple d'API permettant d'accorder au VPC partagé par DNS le droit DNSBindingConnector sur le VPC concentrateur. Notez que role_id est 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" }
 ]
}
]
}

Création d'une règle d'autorisation s2s IAM avec Terraform

Vous pouvez utiliser Terraform pour créer une règle d'autorisation IAM s2s.

Pour utiliser Terraform, téléchargez le CLI Terraform et configurez le plug-in IBM Cloud Provider. Pour plus d'informations, voir Initiation à Terraform.

Les services d'infrastructure VPC utilisent un noeud final spécifique à la région, qui cible us-south par défaut. Si vous créez votre VPC dans une autre région, veillez à cibler la région appropriée dans le bloc fournisseur du fichier provider.tf.

Consultez l'exemple suivant de ciblage d'une région autre que la région par défaut 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

   }

}