[AWS] [Seguridad] Gestión de granularidad mínima de políticas de IAM-Lab1

Descripción del experimento:

Tarea1: crear un usuario de IAM para acceder a un depósito específico
Tarea2: a través de un método variable, un usuario de IAM dinámico accede a una carpeta específica en un depósito específico (prefijo).

Escenas:

1. Un usuario solo puede cargar y descargar, pero no puede actualizar archivos en el depósito.
2. Se espera que el usuario A pueda acceder a la carpeta A debajo del depósito, y el usuario B pueda acceder a la carpeta B, y así sucesivamente. Será más problemático crear una política para cada usuario por separado. La buena noticia es que la política de IAM admite variables. Podemos usar la variable $ {aws: username} para permitir que los usuarios solo accedan a depósitos que sean exactamente iguales a sus nombres de usuario.

Tarea 1: crear un usuario de IAM para acceder a un depósito específico

En este experimento, crearemos un usuario de IAM, de modo que el usuario tenga permiso para cargar y descargar objetos a un bucket de S3 específico, pero no tenga derecho a modificar las propiedades del objeto (como: modificar la categoría de almacenamiento de objetos , no puede hacer público el objeto, etc.)
Pasos de la operación:
Primero cree un depósito, en la interfaz de la consola de AWS, haga clic en "Servicios" en la esquina superior izquierda y seleccione "S3" en la lista de todos los servicios. En la interfaz de S3, haga clic en "Crear depósito".

Ingrese el nombre del depósito que se creará, como awsdemo2018. Tenga en cuenta: El nombre del bucket de S3 es único a nivel mundial, lo que significa que si un usuario de AWS usa este nombre de bucket, ya no podrá usarlo. Si aparece el mensaje "El nombre del depósito ya existe", intente ingresar otro nombre de depósito. Una vez completada la entrada, haga clic en el botón "Crear" en la esquina inferior izquierda.

En la interfaz de la consola de AWS, haga clic en "Servicios" en la esquina superior izquierda, seleccione "IAM" en la lista de todos los servicios y luego haga clic en usuarios en la interfaz de IAM para ver los usuarios actuales. Al mismo tiempo, haga clic en el botón "Agregar usuario", primero agreguemos un usuario.

En la configuración de la interfaz de detalles de usuario, ingrese el nombre de usuario que se creará, como demo2018, marque el tipo de acceso "Acceso de programación" y "Acceso a la consola de administración de AWS", el resto está configurado de manera predeterminada y luego haga clic en "Siguiente: Permisos"

En la interfaz de configuración de permisos, no realice ninguna operación, simplemente haga clic en "Siguiente: Tabulador", lo que también significa que el usuario no tiene ningún permiso para acceder a los recursos de AWS, y lo autorizaremos a través de una política personalizada más adelante.

Haga clic en "Siguiente: Revisar" en la página de la pestaña, haga clic en "Crear usuario" en la interfaz de revisión y registre la dirección de inicio de sesión, el ID de la clave de acceso, la clave de acceso privada y la contraseña en la interfaz de creación de usuario (mantenga la clave secreta y la contraseña) .

De vuelta a la interfaz de IAM, haga clic en "Política" - "Crear política", esta vez creamos una política que permite a los usuarios de IAM acceder a un depósito de S3 específico.

Hay dos métodos de edición en la interfaz de la estrategia de creación, uno es "editor visual" y el otro es JSON. Este experimento es fácil de operar, puede consultar la estrategia de cubos a continuación. Más adelante, si no está particularmente familiarizado con la estrategia, pero desea crear su propia estrategia de depósito, puede crearla a través del editor visual.
Seleccione "JSON" esta vez, elimine la información en la ventana de edición de JSON y luego copie la siguiente política en el cuadro de edición de JSON. Al mismo tiempo, cambie el nombre del depósito marcado en rojo por el nombre del depósito que creó anteriormente.

{ “Versión”: “2012-10-17”, “Declaración”: [ { “Sid”: "AllowSpecifyBucket", “Efecto”: “Permitir”, “Acción”: [ “s3: PutObject”, “s3: GetObject ”,“ S3: ListBucket ” ],“ Recurso ”: [ “ arn: aws-cn: s3 ::: awsdemo2018 / * ”,“ arn: aws-cn: s3 ::: awsdemo2018 ”






]
}
]
}
Haga clic en "Revisar política" en la esquina inferior derecha, en la siguiente interfaz, asigne un nombre a la política, como demo-s3- policy, deje la descripción en blanco y haga clic en "Crear política".

Una vez creada la política, vuelva a la interfaz de usuario de IAM, seleccione el usuario creado antes y haga clic en "Agregar permiso".

En la interfaz de autorización, haga clic en "Adjuntar una política existente directamente", filtre la política, busque el nombre de la política que acaba de crear, como "demo-s3-policy", luego marque la política y haga clic en "Siguiente: Revisar "

Haga clic en "Agregar permiso" para terminar de agregar permisos.
Ahora que hemos creado un usuario de IAM, una política que puede cargar archivos y descargar archivos a un depósito de S3 específico, verifiquemos si la política funciona correctamente.
Necesitamos instalar la herramienta de línea de comandos de AWS CLI. AWS CLI es una herramienta unificada para administrar los servicios de AWS. Los paquetes de instalación se proporcionan en los sistemas Windows / Mac / Linux. Haga clic en el enlace a continuación para descargar: https://aws.amazon.com/cn/cli/ Una vez
completada la descarga, abra el terminal (Mac / Linux abre el terminal Terminal, los usuarios de Windows abren cmd) y luego ingrese aws - en la versión de terminal Compruebe si aws está instalado normalmente. Si la versión de aws puede aparecer en la lista, significa que aws está instalado normalmente.

Si el usuario de Windows le indica que no se puede encontrar el comando aws después de la instalación, cierre la sesión del sistema de Windows, inicie sesión nuevamente e intente nuevamente.
Una vez completada la instalación, debemos configurar la herramienta de línea de comandos de la AWS CLI. Ingrese el comando aws configure para configurar. Ingrese el "ID de clave de acceso" guardado al crear el usuario de IAM en el campo Clave de acceso y luego presione Enter . Ingrese "clave de acceso privada" para la clave de acceso secreta, ingrese cn-north-1 (región de Beijing) o cn-noroeste-1 (región de Ningxia) para el nombre de la región, ingrese json en el formato de salida predeterminado, el ejemplo es el siguiente:

➜ ~ aws configure
AWS Access Key ID [Ninguno]: AKIAO5ZXXXXXXXX
AWS Secret Access Key [Ninguno]: ZEXxAXQJ + XXXXXXXXXXXXXXXXXXX
Nombre de región predeterminado [Ninguno]: cn-north-1
Formato de salida predeterminado [Ninguno]: Una vez completada la
configuración json , podremos cargar y descargar archivos, como cargar el archivo abc.txt en la ruta actual al depósito awsdemo2018:
➜ ~ aws s3 cp abc.txt s3: // awsdemo2018 / upload: ./abc.txt a s3: // awsdemo2018 /abc.txt ➜ ~ Una vez
completada la carga, utilice aws s3 ls s3: // awsdemo2018 / para comprobarlo➜
~ aws s3 ls s3: // awsdemo2018 / 2018-11-30 14:35:05 0 abc.txt ➜ ~
if Para descargar abc.txt a la ruta local / tmp /, aún puede usar el comando cp:

➜ ~ aws s3 cp s3: //awsdemo2018/abc.txt / tmp / download: s3: //awsdemo2018/abc.txt a… /… / tmp / abc.txt ➜ ~
Intenté cargar el archivo en otro depósito y Se encontraron Permisos insuficientes. Esto se debe a que la política vinculada al usuario de IAM solo permite el acceso a depósitos específicos y, por lo tanto, no tiene permiso para acceder a otros depósitos.
➜ ~ aws s3 cp / tmp / file20M s3: // xlaws /
upload fall:… /… / tmp / file20M to s3: // xlaws / file20M Se produjo un error (AccessDenied) al llamar a la operación CreateMultipartUpload: Acceso denegado
➜ ~
Usar El usuario de IAM inicia sesión en demo2018 en la Consola de IAM: http://console.amazonaws.cn/console, y luego hace clic en "Servicio" - "S3", encontraremos que el depósito al que queremos acceder no se puede enumerar en IAM. Consola. Esto se debe a que cuando se creó la política antes, no se otorgó el permiso al usuario s3: ListAllMyBuckets.

Usamos el usuario administrador para iniciar sesión en la consola de IAM, modificar la política demo-s3- policy del usuario de IAM demo2018 y agregar s3: ListAllMyBuckets a la política

{ "Versión": "2012-10-17", "Declaración": [ { "Sid": "AllowSpecifyBucket", "Efecto": "Permitir", "Acción": [ "s3: PutObject", "s3: GetObject ”,“ S3: ListBucket ” ], “ Recurso ”: [ “ arn: aws-cn: s3 ::: awsdemo2018 / * ”, “ arn: aws-cn: s3 ::: awsdemo2018 ”] },









{ "Sid": "AllowListAllBuckets", "Effect": "Allow", "Action": "s3: ListAllMyBuckets", "Resource": "*" } ] }




Después de guardar la política, cierre la sesión del usuario administrador actual en la Consola de AWS e inicie sesión con el usuario demo2018 creado originalmente. Después de iniciar sesión, visite la Consola S3 nuevamente, y podemos ver que se enumeran todos los depósitos, pero actualmente solo el awsdemo2018 está disponible. Las operaciones se realizan en un depósito específico. Aunque otros depósitos pueden verlo, no pueden acceder al contenido. Ingrese el depósito awsdemo2018 (el depósito que creó al comienzo de este experimento) y luego haga clic con el botón derecho en un archivo creado previamente como público y haga que el archivo sea público. En este momento, verá que la publicidad falla.

Tarea 2: a través de variables, los usuarios de IAM dinámicos acceden a una carpeta específica (prefijo) en un depósito específico.

En algunos escenarios específicos, queremos que el usuario A acceda a la carpeta A debajo del depósito, y que el usuario B acceda a la carpeta B, y así sucesivamente. Sería más problemático crear una política para cada usuario por separado. La buena noticia es que la política de IAM admite variables. Podemos usar la variable aws: username para permitir a los usuarios acceder solo a los depósitos que son exactamente iguales a su nombre de usuario. Verifiquémoslo: modifique la política de demostración de la política de IAM creada anteriormente (s 3) de la siguiente manera. Cabe señalar que hemos modificado el recurso y el recurso especificado es la variable {aws: username} debajo del depósito para que el usuario solo pueda acceder Al cubo que coincide exactamente con el nombre de usuario. Verifiquémoslo a continuación: Modifique la política de IAM previamente creada demo-s3-policy de la siguiente manera, debe tenerse en cuenta que hemos modificado el recurso y el recurso especificado está debajo del depósito.a w s:U S E R ^ n- A m E variable de cantidad para habilitar un usuario solamente puede acceder pedido a y un usuario nombre completamente lleno uno accionador de memoria de almacenamiento bañera . Bajo la superficie que tengo para verificar la licencia de un menor:Revisado modificado primero antes de crear la construcción de la estrategia de política I A M D E m O-s 3-P O L I C Y como inferior , requerido para nota significado de que I han revisado cambio el R & lt E S O U R & lt C E , se refiere a un conjunto de recursos de fuente de la memoria de almacenamiento bañera bajo las {AWS: nombre de usuario } carpeta.

{ "Versión": "2012-10-17", "Declaración": [ { "Sid": "AllowSpecifyBucket", "Efecto": "Permitir", "Acción": [ "s3: PutObject",




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

Luego, creamos un usuario demo2019 en la interfaz de usuario de IAM y le asignamos la misma política. Luego, use los usuarios de demo2018 y demo2019 para cargar un archivo en s3, encontraremos que los usuarios de demo2018 solo pueden cargar objetos en la carpeta demo2018, y los usuarios de demo2019 solo pueden cargar objetos en la carpeta demo2019:

➜ ~ aws s3 cp hello.mp3 s3: // awsdemo2018 / demo2018 /
upload: ./hello.mp3 to s3: //awsdemo2018/demo2018/hello.mp3
➜ ~ aws s3 cp hello.mp3 s3: // awsdemo2018 / demo2019 /
upload failed: ./hello.mp3 to s3: //awsdemo2018/demo2019/hello.mp3 Se produjo un error (AccessDenied) al llamar a la operación PutObject: Access Denied
➜ ~

En conclusión:

A partir de este experimento, creamos una política de depósito y solo permitimos a los usuarios subir y descargar objetos en un depósito específico. La política no puede modificar los permisos de los objetos ni eliminar los objetos del depósito. Posteriormente, modificamos la política de usuario de IAM para permitir que los usuarios enumeren otros buckets en la consola web de AWS, pero aún así no pueden operar con otros buckets. En nuestro propio entorno de producción, podemos crear una estrategia que se adapte a nuestras necesidades de acuerdo a nuestras necesidades, como permitir que solo los usuarios carguen, solo permitir que los usuarios accedan a AWS S3 bajo una dirección IP específica, o solo dentro de una determinada VPC S3. Además de los permisos de carga y descarga, IAM también tiene una administración más detallada de las políticas de S3. Al crear una política, puede ver los detalles de la política a través del "editor visual" y crear su propia política detallada.

Este experimento solo usa el acceso al depósito de S3 como ejemplo. También puede crear políticas para otros servicios, como permitir solo a los usuarios de IAM activar y desactivar una instancia EC2 y controlar los permisos basados ​​en etiquetas.

Consulte el video tutorial detallado de IAM: https://edu.51cto.com/center/course/lesson/index?id=533838

Supongo que te gusta

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