Configurando o mecanismo de credenciais do IAM
É possível definir credenciais do IAM para a sua instância de serviço do IBM Cloud® Secrets Manager configurando o mecanismo de credenciais do IAM.
No Secrets Manager, o mecanismo de credenciais do IAM serve como back-end para o tipo de segredo iam_credentials. Antes de criar credenciais do IAM, deve-se configurar o mecanismo de credenciais do IAM para sua instância de serviço.
Você pode ativar sua instância criando uma autorização de serviço IAM ou inserindo uma chave API associada a um ID de serviço em sua IBM Cloud conta.
Ao usar uma chave de API para a configuração do mecanismo, o token de acesso gerado dura 60 minutos e continuará funcionando mesmo que a chave de API seja excluída do IAM. Isso pode ser modificado alterando a expiração do token nas configurações do IAM Saiba mais. Observe que se a entidade relacionada à chave de API for excluída, o token será invalidado imediatamente.
Ao usar a autorização de serviço do IAM para a configuração do mecanismo, você pode criar e gerenciar segredos de credenciais do IAM na mesma conta IBM Cloud que a instância Secrets Manager, bem como em outras contas. A configuração da chave de API funciona somente com a conta à qual a instância Secrets Manager pertence.
Antes de Iniciar
Para configurar o mecanismo de credenciais do IAM, certifique-se de que você tenha atribuído o Gerente função de serviço na instância Secrets Manager.
Se estiver configurando o mecanismo de credenciais do IAM com uma chave de API, você precisará de uma chave de API de ID de serviço com o seguinte acesso:
- Função de plataforma Editor no Serviço de Grupos de Acesso do IAM.
- Função de plataforma de Operador no Serviço de Identidade do IAM.
- Função de serviço do criador do ID de serviço no IAM Identity Service. A função de serviço do criador do ID do serviço só é necessária quando você desabilitar a criação de IDs de serviço em suas configurações do IAM.
Se estiver configurando o mecanismo de credenciais do IAM com autorização de serviço do IAM, o site Secrets Manager adicionará as duas políticas de autorização a seguir em seu nome.
- Groups Service Member Manage função de plataforma no serviço IAM Access Groups Service.
- Operador função da plataforma para o serviço IAM Identity Service.
- Função de serviço do criador do ID de serviço no IAM Identity Service. A função de serviço do criador do ID do serviço só é necessária quando você desabilitar a criação de IDs de serviço em suas configurações do IAM.
Se a conta na qual você deseja gerar credenciais do IAM permitir o acesso de endereços IP específicos, você também deverá atualizar as configurações de endereço IP na conta para permitir solicitações de entrada de Secrets Manager. Para obter mais informações, consulte Gerenciando o acesso com restrições baseadas em contexto.
Configurando o mecanismo de credenciais do IAM na IU
Uso da autorização de serviço do IAM
Conclua as etapas a seguir para configurar o mecanismo de credenciais do IAM usando a autorização de serviço do IAM.
Para gerenciar as credenciais do IAM na mesma conta IBM Cloud da sua instância Secrets Manager:
- Na página mecanismos de segredo, clique na guia credenciais do IAM.
- Clique em Autorizar.
- Clique em Configurar.
Para gerenciar as credenciais do IAM de outra conta IBM Cloud, crie manualmente as autorizações de serviço do IAM.
Para a política de autorização IAM Identity Service:
- Na conta em que você deseja gerenciar as credenciais do IAM, vá para Manage > Access (IAM).
- Selecione Autorizações no menu do painel esquerdo.
- Clique em Criar.
- Em Origem, selecione Conta específica e forneça o ID da conta à qual a instância Secrets Manager pertence.
- Serviço: Secrets Manager.
- Recursos: Specific resources > Service instance (Recursos específicos > Instância de serviço ) e forneça o ID da instância de serviço para sua instância Secrets Manager.
- Em Target, selecione
- Serviço: IAM Identity Service
- Recursos: Todos
- Funções: Operador
Para a política de autorização do serviço IAM Access Groups Service:
- Na conta em que você deseja gerenciar as credenciais do IAM, vá para Manage > Access (IAM).
- Selecione Autorizações no menu do painel esquerdo.
- Clique em Criar.
- Em Origem, selecione Conta específica e forneça o ID da conta à qual a instância Secrets Manager pertence.
- Serviço: Secrets Manager.
- Recursos: Specific resources > Service instance (Recursos específicos > Instância de serviço ) e forneça o ID da instância de serviço para sua instância Secrets Manager.
- Em Target, selecione
- Serviço: Serviço de grupos de acesso IAM
- Recursos: Todos
- Funções: Grupos que os membros do serviço gerenciam
Usando a chave de API
Conclua as etapas a seguir para configurar o mecanismo de credenciais do IAM usando uma chave de API do Service ID.
- Na página mecanismos de segredo, clique na guia credenciais do IAM.
- Clique em Configure IAM credentials engine with API key (Configurar mecanismo de credenciais IAM com chave de API ).
- Insira uma chave de API que tenha acesso para criar e gerenciar outras chaves API em sua conta.
- Clique em Configurar.
Configurando o mecanismo de credenciais do IAM a partir da CLI
Uso da autorização de serviço do IAM
Conclua as etapas a seguir para configurar o mecanismo de credenciais do IAM usando uma autorização de serviço do IAM.
Para gerenciar as credenciais do IAM na mesma conta IBM Cloud da instância Secrets Manager, execute os seguintes comandos para adicionar as políticas de autorização de serviço do IAM necessárias:
ibmcloud iam authorization-policy-create secrets-manager iam-identity "Service ID Creator, Operator" --source-service-instance-id SOURCE_SERVICE_INSTANCE_GUID
ibmcloud iam authorization-policy-create secrets-manager iam-groups "Groups Service Member Manage" --source-service-account SOURCE_SERVICE_INSTANCE_GUID
- Substitua SOURCE_SERVICE_INSTANCE_GUID pela Secrets Manager ID do serviço de instância. Se não for fornecida, a autorização se aplicará a todas as instâncias de Secrets Manager
Para gerenciar credenciais IAM de outra conta IBM Cloud: inclua também o parâmetro ACCOUNT_GUID.
- Faça login na conta IBM Cloud com as IDs de serviço que você deseja gerenciar.
- Execute os seguintes comandos para adicionar as políticas de autorização de serviço IAM necessárias:
ibmcloud iam authorization-policy-create secrets-manager iam-identity "Service ID Creator, Operator" --source-service-instance-id SOURCE_SERVICE_INSTANCE_GUID --source-service-account ACCOUNT_GUID
ibmcloud iam authorization-policy-create secrets-manager iam-groups "Groups Service Member Manage" --source-service-account SOURCE_SERVICE_INSTANCE_GUID --source-service-instance-id ACCOUNT_GUID
- Substitua SOURCE_SERVICE_INSTANCE_GUID pela Secrets Manager ID do serviço de instância. Se não for fornecida, a autorização se aplicará a todas as instâncias de Secrets Manager
- Substitua ACCOUNT_GUID pela IBM Cloud ID da conta em que você deseja criar segredos de credenciais do IAM.
Usando a chave de API
Conclua as etapas a seguir para configurar o mecanismo de credenciais do IAM usando uma chave de API do Service ID.
-
Em uma janela do terminal, efetue login no IBM Cloud por meio da CLI do IBM Cloud.
ibmcloud login -
Selecione a conta, a região e o grupo de recursos nos quais sua instância de serviço do Secrets Manager está localizada.
-
Crie um ID de serviço e configure-o como uma variável de ambiente.
export SERVICE_ID=`ibmcloud iam service-id-create <service_ID_name> --description "<description>" --output json | jq -r ".id"`; echo $SERVICE_ID -
Gerencie o acesso ao ID de serviço.
Designe as permissões de ID de serviço para criar e gerenciar outros IDs de serviço.
ibmcloud iam service-policy-create $SERVICE_ID --roles Operator --service-name "iam-identity"Designe as permissões de ID de serviço para visualizar e atualizar grupos de acesso em sua conta.
ibmcloud iam access-group-policy-create $SERVICE_ID --roles Editor --service-name "iam-groups"Inclua o ID de serviço em um grupo de acesso em sua conta.
ibmcloud iam access-group-service-id-add <access_group_name> $SERVICE_IDCrie uma chave de API IBM Cloud para o seu ID de serviço.
export IBM_CLOUD_API_KEY=`ibmcloud iam service-api-key-create <API_key_name> $SERVICE_ID --description "<description>" --output json | jq -r ".apikey"` -
Use a chave de API para configurar o mecanismo de credenciais do IAM para sua instância.
Para configurar um mecanismo de segredos na CLI do site IBM Cloud, execute o comando
ibmcloud secrets-manager configuration-createcomando.ibmcloud secrets-manager configuration-create --configuration-prototype='{"config_type": "iam_credentials_configuration","name": "iam-configuration","api_key": "'$IBM_CLOUD_API_KEY'"}'Usando um prompt de comandos do Windows™ (
cmd.exe) ou PowerShell? Se você encontrar erros ao transmitir conteúdo JSON na linha de comandos, poderá ser necessário ajustar as sequências para os requisitos de escape de aspas específicos de seu sistema operacional. Para obter mais informações, consulte Usando aspas com sequências de caracteres na CLI do IBM Cloud.
Configuração do mecanismo de credenciais do IAM com a API
Para obter instruções passo a passo para criar uma chave de API da IBM Cloud com o nível de acesso correto, alterne para as etapas IU ou CLI.
Uso da autorização de serviço do IAM
O exemplo a seguir mostra uma consulta que você pode usar para configurar o mecanismo de credenciais do IAM para sua instância ao usar a autorização de serviço do IAM. Saiba mais em IBM Cloud nos Documentos da API do IAM.
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -d '{
"type": "authorization",
"subjects": [
{
"attributes": [
{
"name": "accountId",
"value": "$SOURCE_ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "secrets-manager"
},
{
"name": "serviceInstance",
"value": "$INSTANCE_GUID"
}
]
}
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:iam-identity::::serviceRole:ServiceIdCreator"
},
{
"role_id": "crn:v1:bluemix:public:iam::::role:Operator"
}
],
"resources":[
{
"attributes": [
{
"name": "accountId",
"value": "$TARGET_ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "iam-identity"
}
]
}
]
}'
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' -d '{
"type": "authorization",
"subjects": [
{
"attributes": [
{
"name": "accountId",
"value": "$SOURCE_ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "secrets-manager"
},
{
"name": "serviceInstance",
"value": "$INSTANCE_GUID"
}
]
}
],
"roles":[
{
"role_id": "crn:v1:bluemix:public:iam-groups::::serviceRole:MemberManage"
}
],
"resources":[
{
"attributes": [
{
"name":"$TARGET_ACCOUNT_ID",
"value": "791f5fb10986423e97aa8512f18b7e65"
},
{
"name": "serviceName",
"value": "iam-groups"
}
]
}
]
}'
O atributo serviceInstance é opcional. Se omitida, a autorização se aplica a todas as instâncias do Secrets Manager. O SOURCE_ACCOOUNT_ID e TARGET_ACCOUNT_ID são necessários para criar a autorização para a conta atual ou para uma conta específica.
Usando a chave de API
O exemplo a seguir mostra uma consulta que você pode usar para configurar o mecanismo de credenciais do IAM para sua instância usando uma chave de API. Ao chamar a API, substitua as variáveis de chave de API e o token do IAM pelos valores que são específicos para a sua instância do Secrets Manager.
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d '{
"api_key": "{iam_apikey}", "config_type": "iam_credentials_configuration",
"name": "iam-configuration"
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"
Uma resposta bem-sucedida retorna o valor de ID do segredo, além de outros metadados. Para obter mais informações sobre os parâmetros de solicitação obrigatórios e opcionais, consulte Criar um segredo.
Configurando o mecanismo de credenciais do IAM com o Terraform
Uso da autorização de serviço do IAM
O exemplo a seguir mostra uma consulta que você pode usar para configurar o mecanismo de credenciais do IAM para a instância Secrets Manager ao usar uma autorização de serviço do IAM.
resource "ibm_iam_authorization_policy" "sm_to_iam_identity" {
source_service_name = "secrets-manager"
source_service_account = local.source_account_id
source_resource_instance_id = local.instance_id
target_service_name = "iam-identity"
roles = ["Service ID creator", "Operator"]
}
resource "ibm_iam_authorization_policy" "sm_to_iam_groups" {
source_service_name = "secrets-manager"
source_service_account = local.source_account_id
source_resource_instance_id = local.instance_id
target_service_name = "iam-groups"
roles = ["Groups Service Member Manage"]
}
O atributo source_resource_instance_id é opcional. Se omitida, a autorização se aplica a todas as instâncias do Secrets Manager. O atributo source_service_account é opcional. Pode
ser omitido se a conta de origem for a mesma que a conta corrente.
Usando a chave de API
Para obter instruções passo a passo para criar uma chave de API da IBM Cloud com o nível de acesso correto, alterne para as etapas IU ou CLI.
O exemplo a seguir mostra uma configuração que pode ser usada para configurar o mecanismo de credenciais do IAM usando a chave de API de um ID de serviço.
resource "ibm_sm_iam_credentials_configuration" "iam_credentials_configuration" {
instance_id = local.instance_id
region = local.region
name = "iam_credentials_config"
api_key = var.ibmcloud_api_key
}
Configure o mecanismo de credenciais do IAM programaticamente com o Secrets Manager IAM Engine. Consulte Terraform IBM Modules para obter exemplos de configuração.
Recuperação do valor de configuração de um mecanismo de credenciais do IAM na interface do usuário
É possível recuperar a configuração de um mecanismo usando a IU do Secrets Manager. A recuperação de uma configuração é válida somente ao configurar o mecanismo de credenciais do IAM com uma chave de API.
- No mecanismo de segredo Credenciais do IAM, clique no menu Ações
para abrir uma lista de opções para sua configuração de mecanismo
- Para visualizar o valor de configuração, clique em Visualizar configuração.
- Clique em Confirmar depois de assegurar que você esteja em um ambiente seguro.
O valor secreto é exibido por 15 segundos, em seguida, o diálogo é fechado.
Recuperando um valor de configuração do mecanismo usando a CLI
É possível recuperar uma configuração do mecanismo usando a CLI do Secrets Manager. No comando de exemplo a seguir, substitua o nome da configuração do mecanismo pelo nome da sua configuração A recuperação de uma configuração é válida somente ao configurar o mecanismo de credenciais do IAM com uma chave de API.
ibmcloud secrets-manager configuration --name EXAMPLE_CONFIG --service-url https://{instance_ID}.{region}.secrets-manager.appdomain.cloud
Substitua {instance_ID} e {region} pelos valores que se aplicam à sua instância de serviço do Secrets Manager. Para localizar a URL de terminal específica para sua instância, é possível copiá-la da página Terminais na IU do Secrets Manager. Para obter mais informações, consulte Visualizando suas URLs de terminal
Recuperando o valor de configuração de um mecanismo usando API
É possível recuperar uma configuração do mecanismo usando a API Secrets Manager. Na solicitação de exemplo a seguir, substitua o nome de configuração do mecanismo por seu nome de configuração. A recuperação de uma configuração é válida somente ao configurar o mecanismo de credenciais do IAM com uma chave de API.
curl -X GET --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/{name}"
Substitua {instance_ID} e {region} pelos valores que se aplicam à sua instância de serviço do Secrets Manager. Para localizar a URL de terminal específica para sua instância, é possível copiá-la da página Terminais na IU do Secrets Manager. Para obter mais informações, consulte Visualizando suas URLs de terminal
Uma resposta bem-sucedida retorna o valor da configuração do mecanismo, juntamente com outros metadados. Para obter mais informações sobre os parâmetros de solicitação obrigatórios e opcionais, consulte Obter configuração.
Próximas etapas
Agora você pode usar Secrets Manager para gerar credenciais do IAM. Na IU do Secrets Manager, clique em Segredos > Incluir > Credenciais do IAM para começar a criar segredos.
- Criando credenciais do IAM
- Automatize a configuração do mecanismo IAM do Secrets Manager usando o módulo Secrets Manager IAM Engine.