Colocando credenciais confidenciais no atributo userdata da instância do AWS

3

Estou injetando credenciais confidenciais em userdata e não tenho certeza se isso é seguro.

Estou usando o atributo userdata para executar um script que associa a instância a um domínio quando ele fica on-line

E passando os creds assim:

$ADUser = 'me'
$ADPassword = 'Pass'
$ADPassword  = $ADPassword | ConvertTo-SecureString -AsPlainText -Force
$ADCred = New-Object System.Management.Automation.PSCredential -ArgumentList $ADUser, $ADPassword

Add-Computer -Credential $ADCred -DomainName mydom.local -NewName testing
Restart-Computer -force

Estou usando o cmdlet New-EC2Instance para iniciá-lo e passar esse script como userdata

Meus credenciais poderão aparecer na saída de erro nos logs do aws? Ou em outro lugar? Os credentails estão seguros antes de serem injetados no comando do PS, e estão preocupados sobre onde ele mora na AWS.

    
por red888 31.10.2016 / 21:36

1 resposta

5

Não coloque credenciais e outros dados confidenciais no script de dados do usuário.

A documentação da AWS enfatiza:

Important

Although you can only access instance metadata and user data from within the instance itself, the data is not protected by cryptographic methods. Anyone who can access the instance can view its metadata. Therefore, you should take suitable precautions to protect sensitive data (such as long-lived encryption keys). You should not store sensitive data, such as passwords, as user data.

Fonte: link

Em vez disso, crie uma função do IAM para instâncias do EC2 e conceda-lhe permissões para executar o que precisa ser executado. Em seguida, quando a instância do EC2 for iniciada, atribua a função do IAM à instância do EC2 (ela não poderá ser atribuída posteriormente).

    
por 02.11.2016 / 23:16