Ejemplo 1: propietario del bucket que concede permisos de bucket a sus usuarios - Amazon Simple Storage Service

Ejemplo 1: propietario del bucket que concede permisos de bucket a sus usuarios

importante

Conceder permisos a roles de IAM es preferible a conceder permisos a usuarios individuales. Para obtener información sobre como hacer esto, consulte Introducción: permisos a otras cuentas y uso de roles de IAM.

En este ejercicio, una Cuenta de AWS es la propietaria de un bucket y tiene a un usuario de IAM en la cuenta. De forma predeterminada, el usuario no tiene permisos. La cuenta principal debe conceder permisos al usuario para realizar cualquier tarea. El propietario del bucket y la cuenta principal son el mismo. Por tanto, para conceder permisos al usuario en el bucket, la Cuenta de AWS puede utilizar una política de bucket, una política de usuario o ambas. El propietario de la cuenta concederá algunos permisos utilizando una política de bucket y otros permisos mediante una política de usuario.

En los siguientes pasos se resume el tutorial:

  1. El administrador de la cuenta crea una política de bucket en la que se concede un conjunto de permisos al usuario.

  2. El administrador de la cuenta adjunta una política de usuario al usuario, en la que se conceden permisos adicionales.

  3. A continuación, el usuario prueba los permisos concedidos tanto mediante la política de bucket como mediante la política de usuario.

Para este ejemplo, necesitará una Cuenta de AWS. En lugar de usar las credenciales de usuario raíz de la cuenta, creará un usuario administrador (consulte Acerca del uso de un usuario administrador para crear recursos y conceder permisos). Nos referimos a la Cuenta de AWS y al usuario administrador de la siguiente manera:

ID de cuenta Cuenta denominada Usuario administrador de la cuenta

1111-1111-1111

Cuenta A

AccountAadmin

nota

El usuario administrador de este ejemplo es AccountAdmin, que hace referencia a la cuenta A y no AccountAdmin.

Todas las tareas de creación de usuarios y concesión de permisos se realizan en la AWS Management Console. Para verificar los permisos, en la explicación se utilizan herramientas de línea de comandos, AWS Command Line Interface (CLI) y AWS Tools for Windows PowerShell, por lo que no necesita escribir código.

Paso 0: Prepararse para el tutorial

  1. Asegúrese de tener una Cuenta de AWS que cuente con un usuario con privilegios de administrador.

    1. Si lo necesita, inscríbase para obtener una cuenta. Nos referiremos a esta cuenta como Cuenta A.

      1. Vaya a https://aws.amazon.com/s3 y haga clic en Registrarse.

      2. Siga las instrucciones en pantalla.

        AWSCuando la cuenta esté activada y lista para usar, lo notificará por email.

    2. En la Cuenta A, cree un usuario administrador AccountAadmin. Con las credenciales de la Cuenta A, inicie sesión en la consola de IAM y realice los siguientes pasos:

      1. Cree al usuario AccountAadmin y anote las credenciales de seguridad del mismo.

        Para obtener instrucciones, consulte Creación de un usuario de IAM en la Cuenta de AWS en la Guía del usuario de IAM.

      2. Conceda privilegios de administrador a AccountAadmin adjuntando una política de usuario que le conceda acceso total.

        Para obtener instrucciones, consulte Uso de políticas en la guía del usuario de IAM.

      3. Anote la URL de inicio de sesión de usuario de IAM para AccountAadmin. Tendrá que usar esta dirección URL al iniciar sesión en la AWS Management Console. Para obtener más información sobre dónde encontrarla, consulte Cómo los usuarios inician sesión en la cuenta en la Guía del usuario de IAM. Anote la URL de cada una de las cuentas.

  2. Configure AWS Command Line Interface (CLI) o AWS Tools for Windows PowerShell. Asegúrese de guardar las credenciales del usuario administrador de la siguiente manera:

    • Si usa la AWS CLI, cree un perfil, AccountAadmin, en el archivo de configuración.

    • Si usa AWS Tools for Windows PowerShell, asegúrese de almacenar las credenciales para la sesión como AccountAadmin.

    Para obtener instrucciones, consulte Configuración de las herramientas para los tutoriales de ejemplo.

Paso 1: crear recursos (un bucket y un usuario de IAM) en la cuenta A y conceder permisos

Con las credenciales del usuario AccountAadmin en la cuenta A y la dirección URL especial de inicio de sesión del usuario de IAM, inicie sesión en la AWS Management Console y realice los siguientes pasos:

  1. Cree recursos (un bucket y un usuario de IAM)

    1. En la consola de Amazon S3, cree un bucket. Anote la Región de AWS en la que lo haya creado. Para obtener instrucciones, consulte Crear un bucket.

    2. En la consola de IAM, haga lo siguiente:

      1. Cree un usuario, Dave.

        Para obtener instrucciones paso a paso, consulte Creación de usuarios de IAM (AWS Management Console) en la Guía del usuario de IAM.

      2. Anote las credenciales del usuario Dave.

      3. Anote el nombre de recurso de Amazon (ARN) para el usuario Dave. En la consola de IAM, seleccione el usuario y en la pestaña Resumen podrá ver el ARN del usuario.

  2. Concesión de permisos.

    Dado que la cuenta propietaria del bucket y la cuenta principal a la que pertenece el usuario coinciden, la Cuenta de AWS puede conceder permisos al usuario mediante una política de bucket, una política de usuario o ambas. En este ejemplo, usará ambas. Si el objeto también es propiedad de la misma cuenta, el propietario del bucket puede conceder permisos de objeto en la política del bucket (o una política de IAM).

    1. En la consola de Amazon S3, asocie la siguiente política de bucket a awsexamplebucket1.

      La política tiene dos instrucciones:

      • En la primera instrucción se conceden a Dave los permisos de operación en el bucket s3:GetBucketLocation y s3:ListBucket.

      • En la segunda instrucción se concede el permiso s3:GetObject. Dado que la Cuenta A también es propietaria del objeto, el administrador de la cuenta puede conceder el permiso s3:GetObject.

      En la instrucción Principal, el ARN del usuario es lo que identifica a Dave. Para obtener más información sobre los elementos de las políticas, consulte Políticas de bucket y de usuario.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountA-ID:user/Dave" }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1" ] }, { "Sid": "statement2", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountA-ID:user/Dave" }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ] } ] }
    2. Cree una política en línea para el usuario Dave utilizando la siguiente política. La política concede a Dave el permiso s3:PutObject. Tendrá que actualizar la política proporcionando el nombre del bucket.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "PermissionForObjectOperations", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ] } ] }

      Para obtener instrucciones, consulte Uso de políticas insertadas en la guía de usuario de IAM. Tenga en cuenta que tendrá que iniciar sesión en la consola con las credenciales de la Cuenta A.

Paso 2: Probar los permisos

Compruebe que los permisos funcionan con las credenciales de Dave. Puede utilizar uno de los dos procedimientos siguientes.

Probar con la AWS CLI
  1. Actualice el archivo de configuración de la AWS CLI con el siguiente perfil, UserDaveAccountA. Para obtener más información, consulte Configuración de las herramientas para los tutoriales de ejemplo.

    [profile UserDaveAccountA] aws_access_key_id = access-key aws_secret_access_key = secret-access-key region = us-east-1
  2. Compruebe que Dave pueda realizar las operaciones según los permisos concedidos en la política de usuario. Cargue un objeto de muestra con el comando de la AWS CLI put-object.

    El parámetro --body en el comando identifica el archivo de origen para cargar. Por ejemplo, si el archivo está en el directorio raíz del disco C: en un equipo Windows, debe especificar c:\HappyFace.jpg. El parámetro --key brinda el nombre de clave para el objeto.

    aws s3api put-object --bucket awsexamplebucket1 --key HappyFace.jpg --body HappyFace.jpg --profile UserDaveAccountA

    Ejecute el siguiente comando de la AWS CLI para obtener el objeto.

    aws s3api get-object --bucket awsexamplebucket1 --key HappyFace.jpg OutputFile.jpg --profile UserDaveAccountA
Probar con la AWS Tools for Windows PowerShell
  1. Guarde las credenciales de Dave como AccountADave. A continuación, use estas credenciales para someter a un objeto a las operaciones PUT y GET.

    set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountADave
  2. Cargue un objeto de muestra con el comando Write-S3Object de AWS Tools for Windows PowerShell con las credenciales almacenadas de Dave.

    Write-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file HappyFace.jpg -StoredCredentials AccountADave

    Descargue el objeto que cargó en el paso anterior.

    Read-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file Output.jpg -StoredCredentials AccountADave