Establecimiento de la autorización de servicio a servicio

Para configurar el uso compartido de DNS para puertas de enlace VPE entre VPC de concentrador y VPC de DNS compartido en cuentas diferentes, el administrador de VPC de concentrador debe establecer una política de autorización de servicio a servicio de IAM ( s2s ). Para obtener más información, consulte Uso de autorizaciones para otorgar acceso entre servicios.

Notas:

  • Si una VPC compartida por DNS y la VPC concentrador utilizan las mismas cuentas o cuentas diferentes, como administrador de VPC concentrador, debe crear una política de autorización de servicio a servicio de IAM que otorgue a esta VPC compartida por DNS el permiso DNSBindingConnector en la VPC concentrador.
  • Actualmente, la interfaz de usuario solo permite que Todas las instancias de VPC tengan el permiso DNSBindingConnector en la VPC concentrador. Para indicar una VPC "específica", debe utilizar la API o envolver una solicitud de API en un archivo JSON para utilizarla con la CLI. Se proporciona un código de ejemplo para su uso con la CLI y la API.

Puede establecer la autorización de s2s con la consola, CLI, API o Terraform.

Creación de una política de autorización IAM s2s en la consola

Para crear una política de autorización IAM s2s en la consola, siga estos pasos:

  1. En la consola de IBM Cloud, ve a «Gestionar» > «Acceso» (IAM). Aparece la página « IBM Cloud® Identity and Access Management ».

  2. En el panel lateral, seleccione Autorizaciones.

  3. En la página «Gestionar autorizaciones», haz clic en « Crear ».

  4. En la página «Conceder autorización de servicio», selecciona una cuenta de origen:

    • Si está configurando la autorización en su cuenta, seleccione Esta cuenta.

    • Si está configurando la autorización en la cuenta de empresa, seleccione Otra cuenta.

      Sólo para configuraciones entre cuentas, especifique la cuenta de origen para la autorización introduciendo el ID de cuenta.

  5. Para el servicio de origen, seleccione Servicios de infraestructura de VPC en la lista.

  6. Seleccione el ámbito. Elija Recursos específicos.

  7. Seleccione Tipo de recurso. En la lista, seleccione Virtual Private Cloud.

  8. Selecciona la instancia del servicio de origen. Elija Todas las instancias.

    Para seleccionar una instancia específica, debe utilizar las instrucciones de CLI o API. Se trata de una limitación conocida.

  9. Para el servicio de destino, seleccione Servicios de infraestructura de VPC en la lista.

  10. Para el ámbito, seleccione Recursos específicos.

  11. Seleccione Tipo de recurso. En la lista, seleccione Virtual Private Cloud.

    Si desea proporcionar la VPC de destino, seleccione ID de VPC. Operador: Seleccione cadena igual e introduzca el valor VPC.

  12. En la sección Roles bajo Acceso de servicio, seleccione DNSBindingConnector.

  13. Pulse Autorizar.

  14. Cuando vuelva a la página Gestionar autorizaciones, pulse Crear de nuevo y siga los mismos pasos para configurar las autorizaciones para los otros dos servicios.

Creación de una política de autorización s2s de IAM desde la CLI

Para crear una política de autorización s2s de IAM desde la CLI, siga estos pasos:

  1. Configure el entorno de la CLI.

  2. Inicia sesión en tu cuenta a través de la CLI. Después de especificar la contraseña, el sistema solicita qué cuenta y región desea utilizar:

    ibmcloud login --sso
    
  3. Cree una política de autorización s2s de IAM:

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

Indicación de una instancia de VPC específica desde la CLI

Si una VPC compartida por DNS y la VPC concentrador utilizan la misma cuenta, como administrador de VPC concentrador, debe crear una política de autorización de servicio a servicio de IAM que otorgue a esta VPC compartida por DNS el permiso DNSBindingConnector en la VPC concentrador.

Actualmente, la interfaz de usuario Source service instance sólo permite que Todas las instancias de VPC tengan el permiso DNSBindingConnector en la VPC concentrador.

Para indicar una VPC específica desde la CLI, debe utilizar un archivo JSON con contenido de solicitud de API. Por ejemplo:

ibmcloud iam authorization-policy-create --file JSON_FILE

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

Creación de una política de autorización s2s de IAM con la API

Para crear una política de autorización s2s de IAM con la API, siga estos pasos:

  1. Configure el entorno de la API.

  2. Guarda los siguientes valores en variables para utilizarlos en los comandos de la 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. Para crear y eliminar un enlace de resolución de DNS entre el concentrador y las VPC compartidas de DNS en diferentes cuentas, un s2s La política debe existir en la cuenta de VPC central. Esto otorga a la VPC compartida por DNS un rol DNSBindingConnector en la VPC concentrador. para crear el s2s política, consulte la policies método en el API de gestión de políticas de IAM

Solicitud de ejemplo

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

Ejemplo de mandato

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

Indicación de una instancia de VPC específica con la API

Si una VPC compartida por DNS y la VPC concentrador utilizan la misma cuenta, como administrador de VPC concentrador, debe crear una política de autorización de servicio a servicio de IAM que otorgue a esta VPC compartida por DNS el permiso DNSBindingConnector en la VPC concentrador.

Actualmente, la interfaz de usuario Source service instance sólo permite que Todas las instancias de VPC tengan el permiso DNSBindingConnector en la VPC concentrador.

A continuación se muestra una API de ejemplo para otorgar a la VPC compartida por DNS el permiso DNSBindingConnector en la VPC concentrador. Tenga en cuenta que role_id es 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" }
 ]
}
]
}

Creación de una política de autorización s2s de IAM con Terraform

Puede utilizar Terraform para crear una política de autorización s2s de IAM.

Para utilizar Terraform, descargue Terraform CLI y configure el complemento IBM Cloud Provider. Para obtener más información, consulte Iniciación a Terraform.

Los servicios de infraestructura de VPC utilizan un punto final específico regional, que tiene como destino us-south de forma predeterminada. Si crea la VPC en otra región, asegúrese de que tiene como destino la región adecuada en el bloque de proveedor del archivo provider.tf.

Consulte el ejemplo siguiente de destino de una región que no sea la predeterminada 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

   }

}