Basaltic para AWS
Você também pode usar uma sessão Basaltic autenticada de role ou service account. Chame a API de tokens comaudience: "sts.amazonaws.com" e troque o JWT no AWS STS. Na política de confiança AWS abaixo, use o sujeito exato da role ou service account dessa prova. O fluxo de VM abaixo usa o endpoint de metadados e o helper guest.
Você precisa de um administrador na conta AWS de destino, uma VM Basaltic com uma role anexada e o agente guest 1.15.11-1 ou posterior para renovar o arquivo automaticamente. A VM deve alcançar o AWS STS por HTTPS. A AWS deve alcançar os endpoints públicos de descoberta e JWKS do Basaltic.
Permitir que a VM solicite uma prova para AWS
Conceda à role Basaltic anexadaiam:GetWebIdentityToken no próprio CRN, com a restrição basalt:IdentityTokenAudience = sts.amazonaws.com. Use o exemplo de política de identidade de VM e obtenha um token dentro da VM. Seu sujeito tem este formato imutável:
Registrar o Basaltic na AWS
Na conta AWS de destino, registre o emissorhttps://iam.basaltic.sh com o client ID (audiência) sts.amazonaws.com. Um administrador pode executar:
- CLI
sts.amazonaws.com. Use a URL do emissor, não a URL do JWKS. A AWS obtém as chaves de verificação pelo documento de descoberta do Basaltic. Consulte a configuração de provedor OIDC na AWS.
Crie uma role AWS com esta política de confiança, substituindo 123456789012 pelo ID da conta AWS de destino e o sujeito pelo sujeito exato da VM:
aws-trust.json
- CLI
Configurar o workload
Inicie o helper de arquivo de token como o usuário da aplicação. Com o exemplo systemd daquela página, configure o ambiente da aplicação:AWS_EC2_METADATA_DISABLED=true impede que um cliente AWS recorra ao endpoint de credenciais de metadados Basaltic, cujas credenciais são do Basaltic. Não configure chaves de acesso AWS estáticas nem outro perfil de credenciais nessa aplicação: eles podem ter precedência sobre o provedor de identidade web.
A CLI AWS e os SDKs compatíveis trocam o JWT atual do arquivo e renovam as credenciais AWS quando necessário. O helper guest renova o arquivo independentemente. Verifique o suporte do provedor de credenciais assume-role do seu SDK.
BasalticWorker na sua conta AWS. Esse comando comprova qual identidade está em uso; teste também uma operação permitida da aplicação.
Para inspecionar a troca diretamente sem uma credencial AWS existente:
aws-session.json como uma credencial e exclua-o após o uso. A chave de acesso, a chave secreta e o token de sessão retornados são credenciais AWS. O Basaltic não os mantém nem os renova em nome da aplicação.
As sessões AWS duram uma hora por padrão e podem durar de 900 segundos até o máximo da role. Elas podem durar mais que a prova Basaltic de cinco minutos. Remover a role Basaltic da VM impede novas provas; use os controles de revogação AWS para interromper sessões AWS já emitidas. Consulte o comportamento das sessões AWS STS.
AWS para Basaltic
A federação de saída da AWS transforma uma identidade AWS existente em um JWT assinado separado. Um workload EC2 usa as credenciais de seu perfil de instância para autenticar essa requisição. Outras credenciais AWS, incluindo uma role assumida ou sessão do IAM Identity Center, também podem autenticá-la quando permitido.Habilitar a federação de saída AWS
Um administrador AWS habilita isso uma vez para a conta de origem:- CLI
IssuerIdentifier. Ele se parece com https://ACCOUNT-SPECIFIC-ID.tokens.sts.global.api.aws. Não o substitua pelo endpoint comum da API STS. Consulte a configuração de federação de saída AWS.
Conceda à role AWS de origem permissão para emitir provas para a audiência Basaltic. Esta política AWS permite apenas a audiência escolhida e no máximo cinco minutos:
Registrar o emissor AWS no Basaltic
Registre esse emissor exato na conta Basaltic que contém a role de destino.- Console
- API
- CLI
Abra IAM → OIDC providers → Create provider. Informe
aws, o emissor específico da conta e urn:example:basaltic:production como audiência permitida.aws-worker, anexe as políticas de permissão Basaltic necessárias e use esta política de confiança com o ARN real da role IAM AWS de origem:
sub do JWT verificado, incluindo seu caminho. Ele difere do ARN STS arn:aws:sts::...:assumed-role/.../session retornado por GetCallerIdentity. Consulte os claims de token AWS.
Emitir e trocar a partir da AWS
Use um endpoint regional do STS e uma versão da CLI AWS que incluaget-web-identity-token. Execute com a role AWS de origem:
RS256 e ES384. As provas AWS duram de 60 a 3600 segundos, com padrão de 300. O endpoint regional é obrigatório; o endpoint global do STS não atende essa operação de emissão. Consulte GetWebIdentityToken.
Use o token bearer Basaltic retornado nas APIs ou suas credenciais temporárias de chave de acesso no S3 Basaltic. Emita e troque novamente antes de a sessão Basaltic expirar. Mantenha a resposta privada e remova-a quando a sessão não for mais necessária.
Excluir o provedor Basaltic ou alterar suas audiências bloqueia novas trocas. Revogue as sessões Basaltic existentes separadamente. Desabilitar a federação de saída AWS é uma alteração para toda a conta; faça isso somente quando nenhuma outra integração precisar dela. JWTs de saída emitidos pela AWS não podem ser trocados de volta na AWS por AssumeRoleWithWebIdentity.

