Service-zu-Service-Autorisierung einrichten

Um die DNS-Freigabe für VPE-Gateways zwischen Hub und DNS-freigegebenen VPCs auf verschiedenen Konten zu konfigurieren, muss der Hub-VPC-Administrator eine IAM-Service-to-Service ( s2s )-Autorisierungsrichtlinie erstellen. Weitere Informationen finden Sie in Zugriffsberechtigungen zwischen Services mithilfe von Autorisierungen erteilen.

Hinweise:

  • Wenn eine gemeinsam genutzte DNS-VPC und die Hub-VPC dieselben oder unterschiedliche Konten verwenden, müssen Sie als Hub-VPC-Administrator eine IAM-Service-zu-Service-Berechtigungsrichtlinie erstellen, die dieser gemeinsam genutzten DNS-VPC die Berechtigung DNSBindingConnector auf der Hub-VPC erteilt.
  • Derzeit lässt die Benutzerschnittstelle nur Alle VPC-Instanzen die Berechtigung DNSBindingConnector für die Hub-VPC zu. Um eine "spezifische" VPC anzugeben, müssen Sie die API verwenden oder eine API-Anforderung in eine JSON-Datei einschließen, die mit der CLI verwendet werden kann. Beispielcode wird zur Verwendung mit der -CLI und der -API bereitgestellt.

Sie können die s2s Autorisierung über die Konsole, CLI, API oder Terraform einrichten.

Erstellen einer IAM s2s Autorisierungsrichtlinie in der Konsole

Gehen Sie folgendermaßen vor, um eine IAM s2s Autorisierungsrichtlinie in der Konsole zu erstellen:

  1. Wechseln Sie in der „ IBM Cloud “-Konsole zu „Verwalten“ > „Zugriff (IAM) “. Die Seite „ IBM Cloud® Identity and Access Management “ wird angezeigt.

  2. Wählen Sie im seitlichen Anzeigebereich die Option Berechtigungen aus.

  3. Klicken Sie auf der Seite „Berechtigungen verwalten“ auf „ Erstellen “.

  4. Wählen Sie auf der Seite „Dienstberechtigung erteilen“ ein Quellkonto aus:

    • Wenn Sie die Autorisierung in Ihrem Konto einrichten, wählen Sie Dieses Konto aus.

    • Wenn Sie die Autorisierung im Unternehmenskonto einrichten, wählen Sie Anderes Konto.

      Nur bei kontenübergreifenden Konfigurationen geben Sie das Quellkonto für die Autorisierung an, indem Sie die Konto-ID eingeben.

  5. Wählen Sie für den Quellenservice in der Liste VPC-Infrastrukturservices aus.

  6. Wählen Sie den Geltungsbereich aus. Wählen Sie Bestimmte Ressourcen aus.

  7. Wählen Sie Ressourcentyp aus. Wählen Sie in der Liste Virtual Private Cloud aus.

  8. Wählen Sie die Instanz des Quelldienstes aus. Wählen Sie Alle Instanzen aus.

    Um eine bestimmte Instanz auszuwählen, müssen Sie die Befehlszeilenschnittstelle oder API-Anweisungen verwenden. Dies ist eine bekannte Einschränkung.

  9. Wählen Sie als Zielservice VPC-Infrastrukturservices in der Liste aus.

  10. Wählen Sie für den Bereich Spezifische Ressourcen.

  11. Wählen Sie Ressourcentyp aus. Wählen Sie in der Liste Virtual Private Cloud aus.

    Wenn Sie die Ziel-VPC angeben möchten, wählen Sie VPC ID. Operator: Wählen Sie " String gleich" und geben Sie den VPC-Wert ein.

  12. Wählen Sie im Abschnitt "Rollen" unter "Servicezugriff" DNSBindingConnector aus.

  13. Klicken Sie auf Autorisieren.

  14. Wenn Sie zur Seite Berechtigungen verwalten zurückkehren, klicken Sie erneut auf Create und führen Sie dieselben Schritte aus, um Berechtigungen für die beiden anderen Services einzurichten.

IAM- s2s-Berechtigungsrichtlinie über die Befehlszeilenschnittstelle erstellen

Führen Sie die folgenden Schritte aus, um eine IAM- s2s-Berechtigungsrichtlinie über die Befehlszeilenschnittstelle zu erstellen:

  1. Konfigurieren Sie die Umgebung der Befehlszeilenschnittstelle.

  2. Melden Sie sich über die CLI bei Ihrem Konto an. Nach der Eingabe des Kennworts werden Sie vom System aufgefordert, anzugeben, welches Konto und welche Region verwendet werden soll:

    ibmcloud login --sso
    
  3. Erstellen Sie eine IAM- s2s-Berechtigungsrichtlinie:

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

Bestimmte VPC-Instanz über die Befehlszeilenschnittstelle angeben

Wenn eine gemeinsam genutzte DNS-VPC und die Hub-VPC dasselbe Konto verwenden, müssen Sie als Hub-VPC-Administrator eine IAM-Service-zu-Service-Berechtigungsrichtlinie erstellen, die dieser gemeinsam genutzten DNS-VPC die Berechtigung DNSBindingConnector für die Hub-VPC erteilt.

Derzeit erlaubt die Benutzerschnittstelle Source service instance nur allen VPC-Instanzen die Berechtigung DNSBindingConnector für die Hub-VPC.

Um eine bestimmte VPC über die Befehlszeilenschnittstelle anzugeben, müssen Sie eine JSON-Datei mit API-Anforderungsinhalt verwenden. Zum Beispiel:

ibmcloud iam authorization-policy-create --file JSON_FILE

Dabei enthält JSON_FILE Folgendes:

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

IAM- s2s-Berechtigungsrichtlinie mit der API erstellen

Führen Sie die folgenden Schritte aus, um eine IAM- s2s-Berechtigungsrichtlinie mit der API zu erstellen:

  1. Richten Sie die API-Umgebung ein.

  2. Speichern Sie die folgenden Werte in Variablen, die in den API-Befehlen verwendet werden sollen:

    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. Um eine DNS-Auflösungsbindung zwischen Hub und DNS-gemeinsamen VPCs über verschiedene Konten hinweg zu erstellen und zu löschen, s2s Die Richtlinie muss im Hub-VPC-Konto vorhanden sein. Dadurch erhält die gemeinsam genutzte DNS-VPC eine DNSBindingConnector-Rolle auf der Hub-VPC. Zum Erstellen der s2s finden Sie im policies Methode in der API zur IAM-Richtlinienverwaltung

Beispielanforderung

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

Befehlsbeispiel

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

Bestimmte VPC-Instanz mit der API angeben

Wenn eine gemeinsam genutzte DNS-VPC und die Hub-VPC dasselbe Konto verwenden, müssen Sie als Hub-VPC-Administrator eine IAM-Service-zu-Service-Berechtigungsrichtlinie erstellen, die dieser gemeinsam genutzten DNS-VPC die Berechtigung DNSBindingConnector für die Hub-VPC erteilt.

Derzeit erlaubt die Benutzerschnittstelle Source service instance nur allen VPC-Instanzen die Berechtigung DNSBindingConnector für die Hub-VPC.

Im Folgenden sehen Sie eine Beispiel-API, um der gemeinsam genutzten DNS-VPC die Berechtigung DNSBindingConnector für die Hub-VPC zu erteilen. Beachten Sie, dass role_id crn:v1:bluemix:public:is::::serviceRole:DNSBindingConnector ist.

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

IAM- s2s-Berechtigungsrichtlinie mit Terraform erstellen

Sie können Terraform verwenden, um eine IAM- s2s-Berechtigungsrichtlinie zu erstellen.

Um Terraform zu verwenden, laden Sie die Terraform CLI herunter und konfigurieren Sie das IBM Cloud Provider Plug-in. Weitere Informationen finden Sie unter Einführung in Terraform.

VPC-Infrastrukturservices verwenden einen regionalen spezifischen Endpunkt, der standardmäßig auf us-south ausgerichtet ist. Wenn Sie Ihre VPC in einer anderen Region erstellen, stellen Sie sicher, dass Sie die entsprechende Region im Providerblock der Datei provider.tf als Ziel auswählen.

Sehen Sie sich das folgende Beispiel für eine andere Region als die Standardregion us-south an.

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

   }

}