Usando credenciais HMAC
As credenciais HMAC consistem em uma chave de acesso e uma chave secreta emparelhadas para uso com ferramentas e bibliotecas S3-compatible que requerem autenticação.
Credenciais HMAC definidas
A API do IBM Cloud® Object Storage é uma API baseada em REST para objetos de leitura e composição. Ela usa o IBM Cloud® Identity and Access Management para autenticação e autorização e suporta um subconjunto da API S3 para fácil migração de aplicativos para o IBM Cloud.
Criar credenciais HMAC no console
Os usuários podem criar um conjunto de credenciais HMAC como parte de uma Credencial de serviço alternando o Include HMAC Credential para
On durante a criação de credenciais no console. A Figura 1 mostra a opção para configurar o parâmetro HMAC escolhendo "Opções avançadas".
Após a criação da Credencial de serviço, a chave HMAC é incluída no campo cos_hmac_keys. Essas chaves HMAC são, então, associadas a um ID de serviço e podem ser usadas
para acessar quaisquer recursos ou operações permitidos pela função do ID de serviço.
Ao criar uma credencial de serviço, é possível fornecer um valor de None para a função. Isso evitará a criação de políticas de acesso do IAM indesejadas ou desnecessárias.. Qualquer política de acesso para o ID de serviço associado
precisará ser gerenciada usando o console ou as APIs do IAM.
Criar credenciais HMAC usando a CLI
Também é possível usar a CLI do IBM Cloud® Object Storage para criar suas credenciais. Deve-se ter o IBM Cloud Platform Command Line Instructions já instalado antes de poder usar o exemplo.
ibmcloud resource service-key-create <key-name-without-spaces> Writer --instance-name "<instance name--use quotes if your instance name has spaces>" --parameters '{"HMAC":true}'
Um exemplo de credenciais HMAC
Se desejar armazenar os resultados da chave gerada, será possível anexar > file.skey ao final do exemplo. Para os propósitos deste conjunto de instruções, é necessário apenas localizar o título cos_hmac_keys com
as chaves filhas, access_key_id e secret_access_key.
cos_hmac_keys:
access_key_id: 7exampledonotusea6440da12685eee02
secret_access_key: 8not8ed850cddbece407exampledonotuse43r2d2586
Configurando credenciais HMAC como variáveis de ambiente
Depois de ter criado suas credenciais, é possível configurá-las como variáveis de ambiente (cujas instruções são específicas para o sistema operacional envolvido). Por exemplo, no Exemplo 3, um script .bash_profile contém COS_HMAC_ACCESS_KEY_ID e COS_HMAC_SECRET_ACCESS_KEY que são exportados ao iniciar um shell e usados no desenvolvimento.
export COS_HMAC_ACCESS_KEY_ID="7exampledonotusea6440da12685eee02"
export COS_HMAC_SECRET_ACCESS_KEY="8not8ed850cddbece407exampledonotuse43r2d2586"
Próximas etapas
Observe que ao usar credenciais HMAC para criar assinaturas a serem usadas com chamadas de API de REST diretas, estes cabeçalhos extras são necessários:
- Todas as solicitações devem ter um cabeçalho
x-amz-datecom a data no formato%Y%m%dT%H%M%SZ. - Qualquer solicitação que possua uma carga útil (uploads de objetos, exclusão de vários objetos e assim por diante) deve fornecer um cabeçalho
x-amz-content-sha256com um hash SHA256 do conteúdo da carga útil - As ACLs (diferentes de
public-read) não são suportadas.
Nem todas as ferramentas compatíveis com S3 são suportadas atualmente. Algumas ferramentas tentam configurar ACLs diferentes de public-read na criação do depósito. A criação do depósito por meio dessas ferramentas falhará. Se uma
solicitação " PUT bucket falhar com um erro de ACL não suportado, primeiro use o console, conforme mostrado na introdução, com IBM Cloud Object Storage para criar o bucket e, em seguida, configure a ferramenta para ler e gravar objetos nesse bucket. As ferramentas que configuram ACLs em gravações de objetos não são suportadas atualmente.