Estabelecendo autorização de serviço a serviço
Para configurar o compartilhamento de DNS para gateways VPE entre VPCs de hub e compartilhados por DNS em contas diferentes, o administrador de VPC de hub deve estabelecer uma política de autorização de serviço para serviço do IAM (s2s). Para obter mais informações, consulte Usando autorizações para conceder acesso entre os serviços.
Notas:
- Se uma VPC compartilhada por DNS e a VPC de hub estiverem usando as mesmas contas, ou contas diferentes, como o administrador da VPC de hub, deve-se criar uma política de autorização de serviço para serviço do IAM que forneça a essa VPC compartilhada
por DNS a permissão do
DNSBindingConnector
na VPC de hub - Atualmente, a IU permite que apenas Todas as instâncias do VPC tenham a permissão
DNSBindingConnector
no VPC do hub Para indicar um VPC "específico", deve-se usar a API ou agrupar uma solicitação de API em um arquivo JSON para usar com a CLI.. O código de exemplo é fornecido para uso com a CLI e a API.
É possível estabelecer a autorização s2s com o console, a CLI, a API ou o Terraform.
Criação de uma política de autorização do IAM s2s no console
Para criar uma política de autorização do IAM s2s no console, siga estas etapas:
-
No console IBM Cloud, vá para Gerenciar > Acesso (IAM). A página IBM Cloud Identity and Access Management é exibida.
-
No painel lateral, selecione Autorizações.
-
Na página Gerenciar autorizações, clique em Criar.
-
Na página Conceder uma autorização de serviço, selecione a conta de origem.
- Se você estiver configurando a autorização em sua conta, selecione Esta conta
- Se estiver configurando autorização na conta corporativa, selecione Outra conta.
-
Para o serviço de origem, selecione VPC Infrastructure Services na lista.
-
Selecione o escopo. Escolha Recursos específicos..
-
Selecione Tipo de recurso. Na lista, selecione Nuvem privada virtual.
-
Selecione Instância de serviço de origem. Escolha Todas as instâncias..
Para selecionar uma instância específica, deve-se usar as instruções CLI ou API. Essa é uma limitação conhecida.
-
Para o serviço de destino, selecione VPC Infrastructure Services na lista.
-
Selecione o escopo. Escolha Recursos específicos..
-
Clique em Tipo de recurso Na lista, selecione Nuvem privada virtual.
-
Na seção Funções sob o acesso de Serviço, selecione DNSBindingConnector
-
Clique em Autorizar.
-
Quando você retornar à página Gerenciar autorizações, clique em Criar novamente e siga as mesmas etapas para configurar autorizações para os outros dois serviços.
Criando uma política de autorização do IAM s2s por meio da CLI
Para criar uma política de autorização s2s do IAM por meio da CLI, siga estas etapas:
-
Configure seu ambiente da CLI.
-
Faça login na sua conta com a CLI. Depois de inserir a senha, o sistema pergunta qual conta e região você deseja usar:
ibmcloud login --sso
-
Crie uma política de autorização s2s do IAM:
ibmcloud iam authorization-policy-create is DNSBindingConnector --source-resource-type vpc --target-resource-type vpc
Indicando uma instância de VPC específica da CLI
Se uma VPC compartilhada por DNS e a VPC de hub estiverem usando a mesma conta, como o administrador da VPC de hub, deve-se criar uma política de autorização de serviço para serviço do IAM que forneça a essa VPC compartilhada por DNS a permissão
do DNSBindingConnector
na VPC de hub
Atualmente, a UI Source service instance
permite que Todas as instâncias do VPC tenham a permissão DNSBindingConnector
no VPC de hub.
Para indicar um VPC específico da CLI, deve-se usar um arquivo JSON com conteúdo de solicitação de API. Por exemplo:
ibmcloud iam authorization-policy-create --file JSON_FILE
Em que o JSON_FILE
contém:
{"type":"authorization","subjects":[{"attributes":[{"name":"accountId","value":"e38cfd44b6e44b249ac75dd5de0cc8aa"},{"name":"serviceName","value":"is"},{"name":"resourceType","value":"vpc"},{"name":"resource","value":"r134-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":"r134-ffaedf75-4f44-4ead-989d-cd37816a13d2"}]}]}
Criando uma política de autorização s2s do IAM com a API
Para criar uma política de autorização do IAM s2s com a API, siga estas etapas:
-
Configure o seu Ambiente de API.
-
Armazene os seguintes valores em variáveis a serem usadas nos comandos da 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>
-
Para criar e excluir uma vinculação de resolução de DNS entre o hub e VPCs compartilhadas por DNS em contas diferentes, um s2s a política deve existir na conta VPC do hub. Isso fornece ao VPC compartilhado por DNS uma função do
DNSBindingConnector
no VPC de hub Para criar o s2s política, consulte opolicies
método no API de gerenciamento de políticas IAM
Exemplo de solicitação
{
"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'"
}
]
}
]
}
Exemplo de comando
curl -sX POST "$iam_api_endpoint/v1/policies" -H "Authorization: Bearer ${iam_token}" -d '$request_body'
Indicando uma instância VPC específica com a API
Se uma VPC compartilhada por DNS e a VPC de hub estiverem usando a mesma conta, como o administrador da VPC de hub, deve-se criar uma política de autorização de serviço para serviço do IAM que forneça a essa VPC compartilhada por DNS a permissão
do DNSBindingConnector
na VPC de hub
Atualmente, a UI Source service instance
permite que Todas as instâncias do VPC tenham a permissão DNSBindingConnector
no VPC de hub.
Aqui está uma API de amostra para conceder à VPC compartilhada pelo DNS para ter permissão do DNSBindingConnector
na VPC do hub. Observe que o 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" }
]
}
]
}