Em 2011, a Amazon anunciou a disponibilidade do suporte ao AWS Identity & Access Management (IAM) para o CloudFront. O IAM foi lançado em 2010 e incluiu o suporte ao S3. O AWS Identity & Access Management (IAM) permite que você tenha vários usuários em uma conta da AWS. Se você usou o Amazon Web Services (AWS), está ciente de que a única maneira de gerenciar conteúdo na AWS envolvia fornecer seu nome de usuário e senha ou teclas de acesso. Esta é uma preocupação real de segurança para a maioria de nós. O IAM elimina a necessidade de compartilhar senhas e chaves de acesso.
Alterar constantemente a senha principal da AWS ou gerar novas chaves é apenas uma solução confusa quando um funcionário deixa a equipe. O AWS Identity & Access Management (IAM) foi um bom começo, permitindo contas de usuários individuais com chaves individuais. No entanto, somos um usuário do S3 / CloudFront, por isso estamos observando o CloudFront ser adicionado ao IAM, o que finalmente aconteceu.
Eu achei a documentação deste serviço um pouco dispersa. Existem alguns produtos de terceiros que oferecem uma gama de suporte para o Identity & Access Management (IAM). Mas os desenvolvedores geralmente são econômicos, então busquei uma solução gratuita para gerenciar o IAM com nosso serviço Amazon S3.
Este artigo analisa o processo de configuração da interface de linha de comando que suporta o IAM e a configuração de um grupo / usuário com acesso ao S3. Você precisa ter uma configuração de conta do Amazon AWS S3 antes de começar a configurar o Identity & Access Management (IAM). Meu artigo, Usando o Amazon Simple Storage Service (S3), orientará você no processo de configuração de uma conta do AWS S3.
Aqui estão os passos envolvidos na configuração e implementação de um usuário no IAM. Isso é escrito para o Windows, mas você pode ajustar para uso no Linux, UNIX e / ou Mac OSX.
- Instalar e configurar a interface de linha de comando (CLI)
- Crie um grupo
- Conceda acesso de grupo ao S3 Bucket e ao CloudFront
- Criar usuário e adicionar ao grupo
- Criar perfil de login e criar chaves
- Acesso de teste
Instalar e configurar a interface de linha de comando (CLI)
O Kit de Ferramentas de Linha de Comando do IAM é um programa Java disponível nas Ferramentas para Desenvolvedores da AWS da Amazon. A ferramenta permite executar comandos da API do IAM a partir de um utilitário de shell (DOS para Windows).
- Você precisa estar executando o Java 1.6 ou superior. Você pode baixar a versão mais recente do Java.com. Para ver qual versão está instalada em seu sistema Windows, abra o Prompt de Comando e digite java -version. Isso pressupõe que o java.exe esteja no seu PATH.
- Faça o download do kit de ferramentas IAM CLI e descompacte em algum lugar na sua unidade local.
- Existem 2 arquivos na raiz do kit de ferramentas CLI que você precisa atualizar.
- aws-credential.template: Este arquivo contém suas credenciais da AWS. Adicione seu AWSAccessKeyId e sua AWSSecretKey, salve e feche o arquivo.
- client-config.template: Você só precisa atualizar este arquivo se precisar de um servidor proxy. Remova os # sinais e atualize ClientProxyHost, ClientProxyPort, ClientProxyUsername e ClientProxyPassword. Salve e feche o arquivo.
- O próximo passo envolve adicionar variáveis de ambiente. Vá ao Painel de Controle | Propriedades do sistema | Configurações avançadas do sistema | Variáveis ambientais. Adicione as seguintes variáveis:
- AWS_IAM_HOME: Defina essa variável para o diretório em que você descompactou o kit de ferramentas da CLI. Se você estiver executando o Windows e descompactou-o na raiz da sua unidade C, a variável seria C: IAMCli-1.2.0.
- JAVA_HOME: Configure esta variável para o diretório em que o Java está instalado. Este seria o local do arquivo java.exe. Em uma instalação Java normal do Windows 7, isso seria algo como C: Arquivos de Programas (x86) Java jre6.
- AWS_CREDENTIAL_FILE: Configure esta variável para o caminho e o nome do arquivo do aws-credential.template que você atualizou acima. Se você estiver executando o Windows e o descompactou na raiz da sua unidade C, a variável seria C: IAMCli-1.2.0 aws-credential.template.
- CLIENT_CONFIG_FILE: Você só precisa adicionar essa variável de ambiente se precisar de um servidor proxy. Se você estiver executando o Windows e descompactou-o na raiz da sua unidade C, a variável seria C: IAMCli-1.2.0 client-config.template. Não adicione essa variável, a menos que você precise dela.
- Teste a instalação indo até o prompt de comando e digitando iam-userlistbypath. Contanto que você não receba um erro, você deve estar pronto para ir.
Todos os comandos do IAM podem ser executados no prompt de comando. Todos os comandos começam com "iam-".
Crie um grupo
Há no máximo 100 grupos que podem ser criados para cada conta da AWS. Embora você possa definir permissões no IAM no nível do usuário, o uso de grupos seria a melhor prática. Aqui está o processo para criar um grupo no IAM.
- A sintaxe para criar um grupo é iam-groupcreate -g GROUPNAME -p PATH -v onde -p e -v são opções. A documentação completa na interface da linha de comando está disponível no AWS Docs.
- Se você quisesse criar um grupo chamado "awesomeusers", você digitaria iam-groupcreate -g awesomeusers no prompt de comando.
- Você pode verificar se o grupo foi criado corretamente, inserindo iam-grouplistbypath no prompt de comando. Se você tivesse criado esse grupo, a saída seria algo como "arn: aws: iam :: 123456789012: group / awesomeusers", em que o número é o número da sua conta da AWS.
Conceda acesso de grupo ao S3 Bucket e ao CloudFront
Políticas controlam o que seu grupo é capaz de fazer no S3 ou no CloudFront. Por padrão, seu grupo não teria acesso a nada na AWS.Eu achei a documentação sobre políticas ok, mas ao criar um punhado de políticas, fiz um pouco de tentativa e erro para fazer as coisas funcionarem do jeito que eu queria que elas funcionassem.
Você tem algumas opções para criar políticas. Uma opção é você pode inseri-los diretamente no Prompt de Comando. Como você pode estar criando uma política e aprimorando-a, pareceu-me mais fácil adicionar a política em um arquivo de texto e, em seguida, carregar o arquivo de texto como um parâmetro com o comando iam-groupuploadpolicy. Aqui está o processo usando um arquivo de texto e fazendo o upload para o IAM.
- Use algo como o Bloco de notas e digite o seguinte texto e salve o arquivo:
- {
- "Declaração":{
- "Efeito": "Permitir",
- "Ação": "s3: *",
- "Recurso":
- "arn: aws: s3 ::: BUCKETNAME",
- "arn: aws: s3 ::: BUCKETNAME / *"
- },
- {
- "Efeito": "Permitir",
- "Ação": "s3: ListAllMyBuckets",
- "Recurso": "arn: aws: s3 ::: *"
- },
- {
- "Efeito": "Permitir",
- "Ação": "cloudfront: *",
- "Recurso":"*"
- }
- }
- Existem 3 seções para esta política. O efeito é usado para permitir ou negar algum tipo de acesso. A ação é as coisas específicas que o grupo pode fazer. O recurso seria usado para fornecer acesso a intervalos individuais.
- Você pode limitar as ações individualmente. Neste exemplo, "Ação": "s3: GetObject", "s3: ListBucket", "s3: GetObjectVersion", o grupo seria capaz de listar o conteúdo de um bloco e baixar objetos.
- A primeira seção "Permite" que o grupo realize todas as ações do S3 para o bucket "BUCKETNAME".
- A segunda seção "Permite" ao grupo listar todos os buckets no S3. Você precisa disso para poder ver a lista de depósitos se usar algo como o AWS Console.
- A terceira seção dá ao grupo acesso total ao CloudFront.
Existem muitas opções quando se trata de políticas do IAM. A Amazon tem uma ferramenta muito legal disponível, chamada AWS Policy Generator. Essa ferramenta fornece uma GUI na qual você pode criar suas políticas e gerar o código real necessário para implementar a política. Você também pode verificar a seção Linguagem de política de acesso da documentação on-line do Gerenciamento de acesso e identidades da AWS.
Criar usuário e adicionar ao grupo
O processo de criar um novo usuário e adicioná-lo a um grupo para fornecer acesso envolve algumas etapas.
- A sintaxe para criar um usuário é iam-usercreate -u USERNAME -p PATH -gGRUPOS … -k -v onde as opções -p, -g, -k e -v são opções. A documentação completa na interface da linha de comando está disponível no AWS Docs.
- Se você quisesse criar um usuário "bob", você digitaria iam-usercreate -u bob -g awesomeusers no prompt de comando.
- Você pode verificar se o usuário foi criado corretamente inserindo iam-grouplistusers -g awesomeusers no prompt de comando. Se você tivesse criado esse usuário, a saída seria algo como "arn: aws: iam :: 123456789012: user / bob", em que o número é o número da sua conta da AWS.
Criar perfil de logon e criar chaves
Neste ponto, você criou um usuário, mas precisa fornecer a ele uma maneira de realmente adicionar e remover objetos do S3. Existem 2 opções disponíveis para fornecer aos usuários acesso ao S3 usando o IAM. Você pode criar um perfil de login e fornecer uma senha aos usuários. Eles podem usar suas credenciais para efetuar login no Amazon AWS Console. A outra opção é fornecer aos seus usuários uma chave de acesso e uma chave secreta. Eles podem usar essas chaves em ferramentas de terceiros, como o S3 Fox, o CloudBerry S3 Explorer ou o S3 Browser.
Criar perfil de login
A criação de um Perfil de Login para seus usuários do S3 fornece a eles um nome de usuário e uma senha que podem ser usados para efetuar login no Amazon AWS Console.
- A sintaxe para criar um perfil de login é iam-useraddloginprofile -u USERNAME -p PASSWORD. A documentação completa na interface da linha de comando está disponível no AWS Docs.
- Se você quiser criar um perfil de login para o usuário "bob", insira iam-useraddloginprofile -u bob -p PASSWORD no prompt de comando.
- Você pode verificar se o perfil de login foi criado corretamente, inserindo iam-usergetloginprofile -u bob no prompt de comando. Se você tivesse criado um perfil de login para bob, a saída seria algo como "Perfil de login existe para o usuário bob".
Crie chaves
A criação de uma Chave de acesso secreto da AWS e a respectiva ID de chave de acesso da AWS permitirão que os usuários usem software de terceiros, como os mencionados anteriormente. Tenha em mente que, como medida de segurança, você só pode obter essas chaves durante o processo de adicionar o perfil do usuário. Certifique-se de copiar e colar a saída do Prompt de Comando e salvar em um arquivo de texto. Você pode enviar o arquivo para o seu usuário.
- A sintaxe para adicionar chaves para um usuário é iam-useraddkey -u USERNAME. A documentação completa na interface da linha de comando está disponível no AWS Docs.
- Se você quisesse criar chaves para o usuário "bob", você digitaria iam-useraddkey -u bob no prompt de comando.
- O comando irá mostrar as chaves que se parecem com isto:
- AKIACOOB5BQVEXAMPLE
- BvQW1IpqVzRdbwPUirD3pK6L8ngoX4PTEXAMPLE
- A primeira linha é o ID da Chave de Acesso e a segunda linha é a Chave de Acesso Secreta. Você precisa de ambos para software de terceiros.
Acesso de teste
Agora que você criou grupos / usuários do IAM e recebeu acesso aos grupos usando políticas, é necessário testar o acesso.
Acesso ao Console
Seus usuários podem usar seu nome de usuário e senha para fazer login no AWS Console. No entanto, essa não é a página de login do console comum que é usada para a conta principal da AWS. Há um URL especial que você pode usar e fornecerá um formulário de login somente para sua conta do Amazon AWS. Aqui está o URL para fazer login no S3 para seus usuários do IAM.
https://AWS-ACCOUNT-NUMBER.signin.aws.amazon.com/console/s3
O AWS-ACCOUNT-NUMBER é seu número de conta comum da AWS. Você pode obter isso fazendo login no formulário de Logon do Amazon Web Service. Faça o login e clique em Account | Atividade da conta. O número da sua conta está no canto superior direito. Certifique-se de remover os traços. O URL seria algo como https://123456789012.signin.aws.amazon.com/console/s3.
Usando as chaves de acesso
Você pode baixar e instalar qualquer uma das ferramentas de terceiros já mencionadas neste artigo. Insira sua ID de chave de acesso e a chave de acesso secreta de acordo com a documentação da ferramenta de terceiros.
Eu recomendo fortemente que você crie um usuário inicial e faça com que o usuário teste completamente que eles podem fazer tudo o que precisam fazer no S3. Depois de verificar um dos seus usuários, você pode continuar configurando todos os usuários do S3.