Estabelecendo autorização de serviço a serviço
Para configurar o compartilhamento de DNS para gateways VPE entre VPCs compartilhadas pelo hub e pelo DNS em contas diferentes, o administrador da VPC do hub deve estabelecer uma política de autorização de serviço a 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
DNSBindingConnectorna VPC de hub - Atualmente, a IU permite que apenas Todas as instâncias do VPC tenham a permissão
DNSBindingConnectorno 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 site IBM Cloud console, acesse 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 autorização de serviço”, selecione uma conta de origem:
-
Se você estiver configurando a autorização em sua conta, selecione Esta conta
-
Se estiver configurando a autorização na conta corporativa, selecione Outra conta.
Somente para configurações entre contas, especifique a conta de origem da autorização inserindo o ID da 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 a instância do 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.
-
Para o escopo, selecione Recursos específicos.
-
Selecione Tipo de recurso. Na lista, selecione Nuvem privada virtual.
Se você quiser fornecer a VPC de destino, selecione VPC ID. Operador: Selecione string equals e digite o valor VPC.
-
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 usando 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":"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"}]}]}
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 para serem usados 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
DNSBindingConnectorno VPC de hub Para criar o s2s política, consulte opoliciesmé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" }
]
}
]
}