[AWS] [Segurança] Gerenciamento de granularidade mínima da política IAM-Lab1

Descrição do experimento:

Tarefa1: Crie um usuário IAM para acessar um intervalo específico
Tarefa2: Por meio de um método de variável, um usuário IAM dinâmico acessa uma pasta específica em um intervalo específico (prefixo).

Cenas:

1. Um usuário pode apenas fazer upload e download, mas não pode atualizar arquivos no intervalo.
2. Espera-se que o usuário A possa acessar a pasta A no intervalo e o usuário B possa acessar a pasta B e assim por diante. Será mais problemático criar uma política para cada usuário separadamente. A boa notícia é que a política do IAM oferece suporte a variáveis. Podemos usar a variável $ {aws: username} para permitir que os usuários acessem apenas intervalos que sejam exatamente iguais aos seus nomes de usuário.

Tarefa 1: crie um usuário IAM para acessar um intervalo específico

Neste experimento, criaremos um usuário IAM, de forma que o usuário tenha permissão para fazer upload e download de objetos para um intervalo S3 específico, mas não tem o direito de modificar as propriedades do objeto (como: modificar a categoria de armazenamento do objeto , não pode tornar o objeto público, etc.)
Etapas da operação:
primeiro crie um bucket, na interface do console AWS, clique em "Serviços" no canto superior esquerdo e selecione "S3" na lista de todos os serviços. Na interface S3, clique em "Create Bucket"

Insira o nome do intervalo a ser criado, como awsdemo2018. Observe: O nome do intervalo S3 é globalmente exclusivo, o que significa que se um usuário da AWS usar esse nome do intervalo, você não poderá mais usá-lo. Se você encontrar a mensagem "O nome do intervalo já existe", tente inserir outro nome de intervalo. Depois que a entrada for concluída, clique no botão "Criar" no canto esquerdo inferior.

Na interface do console AWS, clique em "Serviços" no canto superior esquerdo, selecione "IAM" na lista de todos os serviços e clique em usuários na interface IAM para ver os usuários atuais. Ao mesmo tempo, clique no botão "Adicionar usuário", vamos adicionar um usuário primeiro.

Na interface de configuração de detalhes do usuário, insira o nome do usuário a ser criado, como demo2018, marque o tipo de acesso "Acesso à programação" e "Acesso ao console de gerenciamento da AWS", o restante é definido por padrão e clique em "Próximo: Permissões"

Na interface de configuração de permissões, não execute nenhuma operação, apenas clique em "Next: Tab", o que também significa que o usuário não tem nenhuma permissão para acessar os recursos da AWS, e iremos autorizá-lo por meio de uma política personalizada posteriormente.

Clique em "Avançar: Revisão" na página da guia, clique em "Criar usuário" na interface de revisão e registre o endereço de login, ID da chave de acesso, chave de acesso privada e senha na interface de criação do usuário (mantenha a chave secreta e a senha) .

De volta à interface do IAM, clique em "Política" - "Criar Política", desta vez criamos uma política que permite que os usuários do IAM acessem um bucket S3 específico.

Existem dois métodos de edição na interface da estratégia de criação, um é o "editor visual" e o outro é JSON. Este experimento é fácil de operar, você pode consultar a estratégia de balde abaixo. Posteriormente, se você não estiver particularmente familiarizado com a estratégia, mas quiser criar sua própria estratégia de intervalo, poderá criá-la por meio do editor visual.
Selecione "JSON" desta vez, exclua as informações na janela de edição JSON e copie a política a seguir para a caixa de edição JSON. Ao mesmo tempo, altere o nome do intervalo marcado em vermelho para o nome do intervalo que você criou anteriormente.

{ “Versão”: “2012-10-17”, “Declaração”: [ { “Sid”: "AllowSpecifyBucket", “Efeito”: “Permitir”, “Ação”: [ “s3: PutObject”, “s3: GetObject ”,“ S3: ListBucket ” ],“ Recurso ”: [ “ arn: aws-cn: s3 ::: awsdemo2018 / * ”,“ arn: aws-cn: s3 ::: awsdemo2018 ”






]
}
]
}
Clique em "Revisar política" no canto inferior direito, na próxima interface, dê um nome à política, como demo-s3- política, deixe a descrição em branco e clique em "Criar política".

Depois que a política for criada, volte para a interface do usuário IAM, selecione o usuário criado antes e clique em "Adicionar permissão"

Na interface de autorização, clique em "Anexar uma política existente diretamente", filtre a política, pesquise o nome da política que você acabou de criar, como "demo-s3-policy", verifique a política e clique em "Avançar: Revisar "

Clique em "Adicionar permissão" para terminar de adicionar permissões.
Agora que criamos um usuário IAM, uma política que pode fazer upload e download de arquivos para um bucket S3 específico, vamos verificar se a política funciona corretamente.
Precisamos instalar a ferramenta de linha de comando AWS CLI. AWS CLI é uma ferramenta unificada para gerenciar serviços AWS. Os pacotes de instalação são fornecidos em sistemas Windows / Mac / Linux. Clique no link abaixo para fazer o download: https://aws.amazon.com/cn/cli/ Após a conclusão do
download, abra o terminal (Mac / Linux abre o terminal Terminal, usuários do Windows abrem cmd) e, em seguida, digite aws - na versão do terminal Verifique se o aws está instalado normalmente.Se a versão do aws puder ser listada, significa que o aws está instalado normalmente.

Se o usuário do Windows avisar que o comando aws não foi encontrado após a instalação, saia do sistema Windows, faça login novamente e tente novamente.
Após a conclusão da instalação, precisamos configurar a ferramenta de linha de comando AWS CLI. Insira o comando aws configure para configurar. Insira o "ID da chave de acesso" salvo ao criar o usuário IAM no campo Chave de acesso e pressione Enter . Insira "chave de acesso privada" para Chave de acesso secreta, insira cn-north-1 (região de Pequim) ou cn-noroeste-1 (região de Ningxia) para o nome da região, insira json no formato de saída padrão, o exemplo é o seguinte:

➜ ~ aws configurar
AWS Access Key ID [Nenhum]: AKIAO5ZXXXXXXXX
Chave de acesso secreto AWS [Nenhum]: ZEXxAXQJ + XXXXXXXXXXXXXXXXXXX
Nome da região padrão [Nenhum]: cn-north-1
Formato de saída padrão [Nenhum]: Depois que a
configuração json for concluída, nós faremos Você pode fazer upload e download de arquivos, como o upload do arquivo abc.txt no caminho atual para o intervalo awsdemo2018:
➜ ~ aws s3 cp abc.txt s3: // awsdemo2018 / upload: ./abc.txt para s3: // awsdemo2018 /abc.txt ➜ ~ Após a conclusão do
upload, use aws s3 ls s3: // awsdemo2018 / para verificar check
~ aws s3 ls s3: // awsdemo2018 / 2018-11-30 14:35:05 0 abc.txt ➜ ~
if Para baixar abc.txt no caminho / tmp / local, você ainda pode usar o comando cp:

➜ ~ aws s3 cp s3: //awsdemo2018/abc.txt / tmp / download: s3: //awsdemo2018/abc.txt para… /… / tmp / abc.txt ➜ ~
Tentei enviar o arquivo para outro intervalo e encontrado Permissões insuficientes. Isso ocorre porque a política vinculada ao usuário IAM só permite o acesso a intervalos específicos e, portanto, não tem permissão para acessar outros intervalos.
➜ ~ aws s3 cp / tmp / file20M s3: // xlaws /
upload falhou:… /… / tmp / file20M para s3: // xlaws / file20M Ocorreu um erro (AccessDenied) ao chamar a operação CreateMultipartUpload: Acesso negado
➜ ~
Use O usuário IAM faz login demo2018 no console IAM: http://console.amazonaws.cn/console e, em seguida, clica em "Serviço" - "S3", descobriremos que o intervalo que desejamos acessar não pode ser listado no IAM Console. Isso ocorre porque quando a política foi criada antes, o usuário s3: a permissão ListAllMyBuckets não foi concedida.

Usamos o usuário administrador para fazer login no console do IAM, modificar a política demo-s3-policy do usuário IAM demo2018 e adicionar s3: ListAllMyBuckets à política

{ “Version”: “2012-10-17”, “Statement”: [ { “Sid”: “AllowSpecifyBucket”, “Effect”: “Allow”, “Action”: [ “s3: PutObject”, “s3: GetObject ”,“ S3: ListBucket ” ], “ Recurso ”: [ “ arn: aws-cn: s3 ::: awsdemo2018 / * ”, “ arn: aws-cn: s3 ::: awsdemo2018 ”] },









{ “Sid”: “AllowListAllBuckets”, “Efeito”: “Permitir”, “Ação”: “s3: ListAllMyBuckets”, “Recurso”: “*” } ] }




Depois de salvar a política, faça logout do usuário administrador atual no Console AWS e faça login com o usuário demo2018 criado originalmente. Depois de fazer login, visite o Console S3 novamente e podemos ver que todos os buckets estão listados, mas atualmente apenas o awsdemo2018 está disponível. As operações são realizadas em um intervalo específico. Embora outros intervalos possam vê-lo, eles não podem acessar o conteúdo. Insira o intervalo awsdemo2018 (o intervalo que você criou no início deste experimento) e, a seguir, clique com o botão direito em um arquivo criado anteriormente público e torne o arquivo público. Neste momento, você verá que a publicação falha.

Tarefa 2: Por meio de variáveis, os usuários IAM dinâmicos acessam uma pasta específica (prefixo) em um intervalo específico.

Em alguns cenários específicos, queremos que o usuário A acesse a pasta A no intervalo e o usuário B acesse a pasta B e assim por diante. Seria mais problemático criar uma política para cada usuário separadamente. A boa notícia é que a política do IAM oferece suporte a variáveis. Podemos usar a variável aws: username para permitir que os usuários acessem apenas intervalos que sejam exatamente iguais aos seus nomes de usuário. Vamos verificá-lo: Modifique a demonstração de política IAM criada anteriormente - s 3 - política da seguinte maneira. Deve-se observar que modificamos Resource e o recurso especificado é a variável {aws: username} no intervalo para que o usuário só possa acessar Para o balde que corresponde exatamente ao nome de usuário. Vamos verificá-lo abaixo: Modifique a política demo-s3-policy do IAM criada anteriormente da seguinte forma, deve-se observar que modificamos o Recurso e o recurso especificado está no intervaloa w s:L S E P & lt n- Um m E variável quantidade para permitir um utilizador única pode acessar pediu para e um utilizador nome completamente cheio um actuador de memória de armazenamento de banheira . Sob a superfície, eu tenho que verificar uma licença inferior:Revisado modificado primeiro antes de criar a construção da estratégia de política I A M D E m O-s 3-P S L I C Y como inferior , necessária para nota significado de que I têm revisto mudança o I & lt E S S L R & lt C E , refere-se a um conjunto de recursos fonte de memória de armazenamento banheira sob as {AWS: nome de utilizador } pasta.

{ “Versão”: “2012-10-17”, “Declaração”: [ { “Sid”: “AllowSpecifyBucket”, “Efeito”: “Permitir”, “Ação”: [ “s3: PutObject”,




“S3: GetObject”,
“s3: ListBucket”],
“Resource”: [“arn: aws-cn: s3 ::: awsdemo2018 / $ {aws: username} / *”,
“arn: aws-cn: s3: :: awsdemo2018 ”]
},} }] }

Em seguida, criamos um usuário demo2019 na interface de usuário do IAM e atribuímos a mesma política. Em seguida, use os usuários demo2018 e demo2019 para fazer upload de um arquivo para s3, descobriremos que os usuários demo2018 só podem fazer upload de objetos para a pasta demo2018 e os usuários demo2019 só podem fazer upload de objetos para a pasta demo2019:

➜ ~ aws s3 cp hello.mp3 s3: // awsdemo2018 / demo2018 /
upload: ./hello.mp3 para s3: //awsdemo2018/demo2018/hello.mp3
➜ ~ aws s3 cp hello.mp3 s3: // awsdemo2018 / demo2019 /
upload falhou: ./hello.mp3 para s3: //awsdemo2018/demo2019/hello.mp3 Ocorreu um erro (AccessDenied) ao chamar a operação PutObject: Acesso negado
➜ ~

Em conclusão:

A partir desse experimento, criamos uma política de intervalo e permitimos apenas que os usuários carreguem e baixem objetos em um intervalo específico. A política não pode modificar as permissões dos objetos, nem pode excluir os objetos no intervalo. Posteriormente, modificamos a política de usuário do IAM para permitir que os usuários listem outros depósitos no console da web AWS, mas ainda não podem operar outros depósitos. Em nosso próprio ambiente de produção, podemos criar uma estratégia que atenda às nossas necessidades de acordo com as nossas necessidades, como permitir apenas que os usuários façam upload, permitir apenas que os usuários acessem o AWS S3 em um endereço IP específico ou apenas em um determinado VPC S3. Além das permissões de upload e download, o IAM também tem um gerenciamento mais refinado de políticas S3. Ao criar uma política, você pode visualizar os detalhes da política por meio do "editor visual" e criar sua própria política detalhada.

Este experimento usa apenas o acesso ao intervalo S3 como exemplo. Você também pode criar políticas para outros serviços, como permitir apenas que os usuários do IAM liguem e desliguem uma instância EC2 e controlar as permissões com base em tags.

Consulte o tutorial de vídeo IAM detalhado: https://edu.51cto.com/center/course/lesson/index?id=533838

Acho que você gosta

Origin blog.csdn.net/u010478127/article/details/106810523
Recomendado
Clasificación