amazon-web-services - iam - cual es el id de amazon
Cómo obtener el ID canónico del usuario para agregar un permiso S3 (6)
Quiero agregar un permiso S3 para un usuario específico. La consola de AWS me pide la ID canónica para el usuario. Utilicé el comando AWS CLI aws iam list-users
para recuperar la lista de usuarios, pero no había un campo de "Identificación canónica" y no se reconoce la "Identificación de usuario", lo que me da un mensaje de "Identificación no válida". Intenté también con ARN y no funcionó.
¡Asegúrese de tener *
al final de la línea para otorgar permisos a todo!
arn:aws:s3:::daniels-stuff/images/*
Hay dos soluciones que puede utilizar para otorgar a este usuario acceso a un grupo y contenido de Amazon S3.
{ "Version": "2012-10-17", "Id": "9758b97b-6fe0-4ba3-b5bd-3d0fe8896a83", "Statement": [ { "Sid": "AllowMyUser", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::YOUR bucket name /*" } ] }
{ "Version": "2012-10-17", "Id": "9758b97b-6fe0-4ba3-b5bd-3d0fe8896a83", "Statement": [{ "Sid": "AllowMyUser", "Effect": "Allow", "Principal": { "AWS": "YOUR IAM User AWSId" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::YOUR bucket name /*" }] }
Usuario de AWS CLI iam Devuelve el ID de usuario que, en los estados de documentación de la API , se puede utilizar en S3
Por ejemplo, puede crear un usuario IAM llamado David. Su empresa utiliza Amazon S3 y tiene un grupo con carpetas para cada empleado; El grupo tiene una política basada en recursos (una política de grupo) que permite a los usuarios acceder solo a sus propias carpetas en el grupo. Supongamos que el empleado llamado David abandona su empresa y usted elimina el usuario de IAM correspondiente. Pero más tarde, otro empleado llamado David comienza y usted crea un nuevo usuario de IAM llamado David. Si la política del grupo especifica el usuario de IAM llamado David, la política podría terminar otorgándole al nuevo David acceso a la información en el grupo de Amazon S3 que dejó el anterior David.
https://docs.aws.amazon.com/IAM/latest/APIReference/API_User.html
Hay otra manera de encontrar su nombre canónico en caso de que no sea el usuario ROOT,
Necesitará iniciar sesión usando CLI (usando su clave de acceso y clave secreta) luego solo escriba
aws iam list-users
y mostrará la siguiente información
{
"Users": [
{
"UserName": "yoda",
"PasswordLastUsed": "2018-02-24T17:47:15Z",
"CreateDate": "2018-02-11T02:23:11Z",
"UserId": "AIDASDY9WSX6QD", <== Canonical Name
"Path": "/",
"Arn": "arn:aws:iam::7783412456453:user/yoda"
}
]
Nota: Los ID de usuario y los originales de ARN fueron editados :-)
Espero que esto sea de ayuda
Neo
La ID canónica del usuario es más fácil de encontrar llamando, ya que el usuario cuya ID desea encontrar, aws s3api list-buckets:
aws --profile PROD s3api list-buckets
{
"Owner": {
"DisplayName": "a-display-name",
"ID": "a-64?-char-hex-string" <<-- this HERE is the canonical user ID
},
"Buckets": [
{
"CreationDate": "2018-03-28T21:50:56.000Z",
"Name": "bucket-1"
},
{
"CreationDate": "2018-03-22T14:08:48.000Z",
"Name": "bucket-2"
}
]
}
Con este ID, puede llamar a s3api para otorgar acceso, por ejemplo, para dar acceso de lectura, como esto:
aws --profile OTHER s3api put-object-acl /
--bucket bucket-3 /
--key path/to/file /
--grant-read id="the-64-char-hex"
Para obtener la ID canónica, una de las formas más sencillas es usar CLI y ejecutar el aws s3api list-buckets
. Obtendrá el ID en la salida.
También hay otras formas de obtener la ID canónica y se describen claramente en los documentos de aws: https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html
list-buckets aws docs: https://docs.aws.amazon.com/cli/latest/reference/s3api/list-buckets.html
Para otorgar permisos a un usuario de IAM en un depósito, deberá crear una Política de Bucket, que es un documento JSON. La opción "Acceso para otras cuentas de AWS" en la ACL es para otorgar acceso a otras cuentas de AWS raíz (totalmente separadas), no para otorgar acceso a los usuarios de IAM dentro de su propia cuenta de raíz.
Creación / Edición de una Política
Para acceder a la política de depósito, vaya a un depósito en la consola web de S3. Allí verá las pestañas de Información general / Propiedades / Permisos / Administración. Bajo Permisos hay una subpestaña llamada "Política de Bucket". En la parte inferior de la página de Política de Bucket hay un enlace a un "Generador de Políticas", que generará el JSON para usted. (o el enlace directo es http://awspolicygen.s3.amazonaws.com/policygen.html )
Identificación de un usuario IAM para asignar derechos a
Para identificar el usuario IAM al que desea otorgar permisos, utilizará un ARN (Nombre de recurso de Amazon). El formato de ARN para los usuarios de IAM es el siguiente: "arn: aws: iam :: {Account-ID}: user / {Username}" (tenga en cuenta que las llaves no son parte del formato). Un ejemplo de IAM ARN se ve así: arn: aws: iam :: 100123456789: usuario / Daniel
Para obtener su ID de cuenta numérica, inicie sesión como usuario root y haga clic en su nombre de usuario en la esquina superior derecha de la página y seleccione "Mi cuenta" (que lo lleva a https://console.aws.amazon.com/billing/home?#/account ). La identificación de la cuenta se encuentra en "Configuración de la cuenta" en la parte superior de la página.
Conecte ese ARN de usuario en el campo "Principal" del generador de políticas, y elija qué acción (es) conceder al usuario de la lista desplegable.
Especificando en qué otorgar permisos
Para otorgar permisos a un grupo, o un conjunto de archivos (objetos) dentro de un grupo, debe ingresar un ARN que identifica el grupo, o algún subconjunto de objetos dentro del grupo en el campo "Nombre de recurso de Amazon" (por ejemplo, si tuviera un cubo llamado daniels-stuff y una carpeta en ese cubo llamada imágenes a las que quería concederles el acceso, entonces podría proporcionar un ARN como arn: aws: s3 ::: daniels-stuff / images / *
Haga clic en "Agregar declaración" cuando haya ingresado la información necesaria y luego presione "Generar política". Tenga en cuenta que puede colocar varias declaraciones (acceso a asignaciones de derechos) en una política.
Más información
Finalmente, hay una buena introducción a las políticas de s3 bucket en https://brandonwamboldt.ca/understanding-s3-permissions-1662/ que incluye algunas políticas de ejemplo.
Buena suerte (aunque supongo que probablemente haya resuelto su problema ahora, a otros les puede resultar útil).