Configuración del acceso a buckets de Amazon S3 - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración del acceso a buckets de Amazon S3

Varias características de Amazon Bedrock requieren acceso a los datos almacenados en buckets de Amazon S3. Para acceder a estos datos, debe configurar los siguientes permisos:

Caso de uso Permisos
Permisos para recuperar datos del bucket de S3 s3: GetObject

s3: ListBucket

Permisos para escribir datos en el bucket de S3 s3: PutObject
Permisos para descifrar la clave de KMS que cifró el bucket de S3 kms:Decrypt

km: DescribeKey

Las identidades o los recursos a los que debe asociar los permisos anteriores dependen de los siguientes factores:

  • Varias características de Amazon Bedrock utilizan roles de servicio. Si una característica usa un rol de servicio, debe configurar los permisos de manera que el rol de servicio, y no la identidad de IAM del usuario, tenga acceso a los datos de S3. Algunas características de Amazon Bedrock pueden crear automáticamente un rol de servicio para usted y asociar los permisos basados en identidad necesarios al rol de servicio, si utiliza la Consola de administración de AWS.

  • Algunas características de Amazon Bedrock permiten que una identidad acceda a un bucket de S3 en una cuenta diferente. Si es necesario acceder a los datos de S3 desde una cuenta diferente, el propietario del bucket debe incluir los permisos basados en recursos mencionados anteriormente en una política de bucket de S3 asociada al bucket de S3.

A continuación, se describe cómo determinar dónde se deben asociar los permisos necesarios para acceder a los datos de S3:

  • Permisos de identidad de IAM

    • Si puede crear automáticamente un rol de servicio en la consola, los permisos se configurarán para el rol de servicio, por lo que no tendrá que configurarlo usted mismo.

    • Si prefiere usar un rol de servicio personalizado o la identidad a la que requiere acceso no es un rol de servicio, vaya a Asociación de permisos a una identidad IAM para permitir el acceso a un bucket de Amazon S3 para obtener información sobre cómo crear una política basada en identidad con los permisos adecuados.

  • Permisos basados en recursos

    • Si la identidad requiere acceso a los datos de S3 de la misma cuenta, no es necesario asociar una política de bucket de S3 al bucket que contiene los datos.

    • Si la identidad requiere acceso a los datos de S3 de una cuenta diferente, vaya a Asociación de una política de bucket a un bucket de Amazon S3 para permitir el acceso de otra cuenta para obtener información sobre cómo crear una política de bucket de S3 con los permisos adecuados.

      importante

      La creación automática de un rol de servicio en Consola de administración de AWS el rol asocia los permisos basados en la identidad adecuados al rol, pero aun así debe configurar la política de bucket de S3 si la identidad que requiere acceso a él está en otra. Cuenta de AWS

Para obtener más información, consulte los enlaces siguientes:

  • Para obtener más información sobre cómo controlar el acceso a los datos en Amazon S3, consulte Control de acceso en Amazon S3.

  • Para obtener más información acerca de los permisos de Amazon S3, consulte Acciones definidas por Amazon S3.

  • Para obtener más información sobre AWS KMS los permisos, consulte Acciones definidas por. AWS Key Management Service

Continúe con los temas relacionados con su caso de uso:

Asociación de permisos a una identidad IAM para permitir el acceso a un bucket de Amazon S3

En este tema, se proporciona una plantilla para asociar una política a una identidad de IAM. La política incluye las siguientes instrucciones que definen los permisos para conceder a una identidad de IAM acceso a un bucket de S3:

  1. Permisos para recuperar datos de un bucket de S3. Esta instrucción también incluye una condición que utiliza la clave de condición s3:prefix para restringir el acceso a una carpeta específica del bucket. Para obtener más información sobre esta condición, consulte la sección Política de usuario en Ejemplo 2: obtención de una lista de objetos de un bucket con un prefijo específico.

  2. (Si necesita escribir datos en una ubicación de S3) Permisos para escribir datos en un bucket de S3. Esta declaración también incluye una condición que utiliza la clave de aws:ResourceAccount condición para restringir el acceso a las solicitudes enviadas desde una persona específicaCuenta de AWS.

  3. (Si el bucket de S3 está cifrado con una clave de KMS) Permisos para describir y descifrar la clave de KMS que cifró el bucket de S3.

    nota

    Si su bucket de S3 tiene activado el control de versiones, cada versión del objeto que cargue utilizando esta característica tendrá su propia clave de cifrado. Usted debe responsabilizarse de realizar un seguimiento de qué clave de cifrado utilizó en cada versión del objeto.

Agregue, modifique y elimine las declaraciones, los recursos y las condiciones de la siguiente política y sustitúyalos ${values} según sea necesario:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ReadS3Bucket", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${S3Bucket}", "arn:aws:s3:::${S3Bucket}/*" ] }, { "Sid": "WriteToS3Bucket", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${S3Bucket}", "arn:aws:s3:::${S3Bucket}/*" ] }, { "Sid": "DecryptKMSKey", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/${KMSKeyId}" } ] }

Tras modificar la política para su caso de uso, asóciela al rol de servicio (o identidad de IAM) que requiere acceso al bucket de S3. Para obtener información sobre cómo asociar permisos a una identidad de IAM, consulte Adición y eliminación de permisos de identidad de IAM.

Asociación de una política de bucket a un bucket de Amazon S3 para permitir el acceso de otra cuenta

En este tema, se proporciona una plantilla para asociar una política basada en recursos a un bucket de S3 para permitir el acceso de una identidad de IAM a los datos del bucket. La política incluye las siguientes instrucciones que definen los permisos para conceder a una identidad acceso al bucket:

  1. Permisos para recuperar datos de un bucket de S3.

  2. (Si necesita escribir datos en una ubicación de S3) Permisos para escribir datos en un bucket de S3.

  3. (Si el bucket de S3 está cifrado con una clave de KMS) Permisos para describir y descifrar la clave de KMS que cifró el bucket de S3.

    nota

    Si su bucket de S3 tiene activado el control de versiones, cada versión del objeto que cargue utilizando esta característica tendrá su propia clave de cifrado. Usted debe responsabilizarse de realizar un seguimiento de qué clave de cifrado utilizó en cada versión del objeto.

Los permisos son similares a los permisos basados en identidad que se describen en Asociación de permisos a una identidad IAM para permitir el acceso a un bucket de Amazon S3. Sin embargo, cada instrucción también requiere que especifique la identidad para la que se van a conceder los permisos al recurso en el campo Principal. Especifique la identidad (en la mayoría de las características de Amazon Bedrock, este es el rol de servicio) en el campo Principal. Agregue, modifique y elimine las declaraciones, los recursos y las condiciones de la siguiente política y sustitúyalos ${values} según sea necesario:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ReadS3Bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ServiceRole" }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${S3Bucket}", "arn:aws:s3:::${S3Bucket}/*" ] }, { "Sid": "WriteToS3Bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ServiceRole" }, "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${S3Bucket}", "arn:aws:s3:::${S3Bucket}/*" ] }, { "Sid": "DecryptKMSKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ServiceRole" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/${KMSKeyId}" } ] }

Tras modificar la política para su caso de uso, asóciela al bucket de S3. Para obtener información sobre cómo asociar una política de bucket a un bucket S3, consulte Adición de una política de bucket mediante la consola de Amazon S3.

(Opción de seguridad avanzada) Incluya las condiciones en una instrucción para un acceso más detallado

Para tener un mayor control sobre las identidades que pueden acceder a sus recursos, puede incluir condiciones en una instrucción de política. La política de este tema proporciona un ejemplo en el que se utilizan las siguientes claves de condición:

  • s3:prefix: una clave de condición de S3 que restringe el acceso a una carpeta específica de un bucket de S3. Para obtener más información sobre esta clave de condición, consulte la sección Política de usuario en Ejemplo 2: obtención de una lista de objetos de un bucket con un prefijo específico.

  • aws:ResourceAccount— Una clave de condición global que restringe el acceso a las solicitudes de una persona específicaCuenta de AWS.

La siguiente política restringe el acceso de lectura a la my-folder carpeta del bucket de amzn-s3-demo-bucket S3 y restringe el acceso de escritura del bucket de amzn-s3-demo-destination-bucket S3 a las solicitudes que vienen Cuenta de AWS con el identificador: 111122223333

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ReadS3Bucket", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition" : { "StringEquals" : { "s3:prefix": "my-folder" } } }, { "Sid": "WriteToS3Bucket", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket", "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" } } } ] }

Para obtener más información acerca de las condiciones y claves de condición, consulte los siguientes enlaces: