Quiero conceder a un usuario de AWS Identity and Access Management (IAM) de otra cuenta el acceso a mi bucket de Amazon Simple Storage Service (Amazon S3). Además, quiero conceder acceso entre cuentas para que el usuario pueda cargar objetos a mi bucket de Amazon S3.
Resolución
Para conceder a un usuario de IAM de la cuenta A acceso para cargar objetos a un bucket de S3 en la cuenta B, siga estos pasos:
-
Desde la cuenta A, adjunte una política al usuario de IAM. La política debe permitir al usuario ejecutar las acciones s3:PutObject y s3:PutObjectAcl en el bucket de la cuenta B:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET",
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
]
}
]
}
Nota: Antes de especificar una lista de control de acceso (ACL) a objetos para la carga, debe tener el permiso s3:PutObjectAcl. De lo contrario, aparecerá un error de acceso denegado al cargar un objeto con una ACL, como la ACL bucket-owner-full control.
-
En la cuenta A, obtenga el nombre de recurso de Amazon (ARN) del usuario de IAM.
-
En la cuenta B, adjunte una política de bucket que conceda al usuario de IAM de la cuenta A permiso para ejecutar las acciones s3:PutObject y s3:PutObjectAcl:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DelegateS3Access",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::999999999999:user/UploadData"
},
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET",
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
]
}
]
}
Importante: Para el valor del elemento Principal, asegúrese de introducir el ARN del usuario de IAM en la cuenta A.
El usuario de IAM ya puede cargar objetos a Amazon S3.
Información relacionada
Ejemplo 2: propietario del bucket que concede permisos de bucket entre cuentas