

# Uso de Operaciones por lotes de S3 con el modo de control de la retención de Bloqueo de objetos en S3
<a name="batch-ops-governance-mode"></a>

El siguiente ejemplo se basa en el ejemplo anterior de creación de una política de confianza y en establecer permisos de configuración de Operaciones por lotes de S3 y Bloqueo de objetos en S3. Este ejemplo muestra cómo aplicar la gobernanza de la retención de Bloqueo de objetos de S3 con la `retain until date` del 30 de enero de 2025 en varios objetos. Crea un trabajo de Operaciones por lotes que utiliza el bucket del manifiesto e informa de los resultados en el bucket de informes.

Para utilizar los siguientes ejemplos, reemplace los {{`user input placeholders`}} con su propia información. 

## Uso de AWS CLI
<a name="batch-ops-cli-object-lock-governance-example"></a>

En los siguientes ejemplos de AWS CLI, se muestra cómo utilizar Operaciones por lotes para aplicar el modo de gobernanza de retención de Bloqueo de objetos de S3 en varios objetos.

**Example — Aplicación de la gobernanza de retención de Bloqueo de objetos de S3 en varios objetos con fecha de retención hasta el 30 de enero de 2025**  

```
export AWS_PROFILE='{{aws-user}}'
export AWS_DEFAULT_REGION='{{us-west-2}}'
export ACCOUNT_ID={{123456789012}}
export ROLE_ARN='arn:aws:iam::{{123456789012}}:role/{{batch_operations-objectlock}}'

read -d '' {{OPERATION}} <<EOF
{
  "S3PutObjectRetention": {
    "Retention": {
      "RetainUntilDate":"{{2025-01-30T00:00:00}}",
      "Mode":"GOVERNANCE"
    }
  }
}
EOF

read -d '' {{MANIFEST}} <<EOF
{
  "Spec": {
    "Format": "S3BatchOperations_CSV_20180820",
    "Fields": [
      "Bucket",
      "Key"
    ]
  },
  "Location": {
    "ObjectArn": "arn:aws:s3:::{{{{amzn-s3-demo-manifest-bucket}}/governance-objects-manifest.csv}}",
    "ETag": "{{Your-manifest-ETag}}"
  }
}
EOF

read -d '' {{REPORT}} <<EOF
{
  "Bucket": "arn:aws:s3:::{{amzn-s3-demo-completion-report-bucket}}T",
  "Format": "Report_CSV_20180820",
  "Enabled": true,
  "Prefix": "{{reports/governance-objects}}",
  "ReportScope": "AllTasks"
}
EOF

aws \
    s3control create-job \
    --account-id "${{{ACCOUNT_ID}}}" \
    --manifest "${{{MANIFEST}}//$'\n'}" \
    --operation "${{{OPERATION}}//$'\n'/}" \
    --report "${{{REPORT}}//$'\n'}" \
    --priority {{10}} \
    --role-arn "${{{ROLE_ARN}}}" \
    --client-request-token "$(uuidgen)" \
    --region "${{{AWS_DEFAULT_REGION}}}" \
    --description "{{Put governance retention}}";
```

**Example — Omisión de la gobernanza de retención en varios objetos**  
El siguiente ejemplo se basa en el ejemplo anterior de creación de una política de confianza y en establecer permisos de configuración de Operaciones por lotes de S3 y Bloqueo de objetos en S3. Muestra cómo omitir el control de retención en varios objetos y crea un trabajo de Operaciones por lotes que utiliza el bucket del manifiesto e informa de los resultados en el bucket de informes.  

```
export AWS_PROFILE='{{aws-user}}'

read -d '' bypass_governance_permissions <<EOF
{
    "Version": "2012-10-17"		 	 	 ,		 	 	 TCX5-2025-waiver;,
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:BypassGovernanceRetention"
            ],
            "Resource": [
                "arn:aws:s3:::{{amzn-s3-demo-manifest-bucket}}/*"
            ]
        }
    ]
}
EOF

aws iam put-role-policy --role-name {{batch-operations-objectlock}} --policy-name {{bypass-governance-permissions}} --policy-document "${{{bypass_governance_permissions}}}"

export AWS_PROFILE='{{aws-user}}'
export AWS_DEFAULT_REGION='{{us-west-2}}'
export ACCOUNT_ID={{123456789012}}
export ROLE_ARN='arn:aws:iam::{{123456789012}}:role/{{batch_operations-objectlock}}'

read -d '' {{OPERATION}} <<EOF
{
  "S3PutObjectRetention": {
    "BypassGovernanceRetention": true,
    "Retention": {
    }
  }
}
EOF

read -d '' {{MANIFEST}} <<EOF
{
  "Spec": {
    "Format": "S3BatchOperations_CSV_20180820",
    "Fields": [
      "Bucket",
      "Key"
    ]
  },
  "Location": {
    "ObjectArn": "arn:aws:s3:::{{{{amzn-s3-demo-manifest-bucket}}/governance-objects-manifest.csv}}",
    "ETag": "{{Your-manifest-ETag}}"
  }
}
EOF

read -d '' REPORT <<EOF
{
  "Bucket": "arn:aws:s3:::{{amzn-s3-demo-completion-report-bucket}}",
  "Format": "Report_CSV_20180820",
  "Enabled": true,
  "Prefix": "{{reports/batch_operations-governance}}",
  "ReportScope": "AllTasks"
}
EOF

aws \
    s3control create-job \
    --account-id "${{{ACCOUNT_ID}}}" \
    --manifest "${{{MANIFEST}}//$'\n'}" \
    --operation "${{{OPERATION}}//$'\n'/}" \
    --report "${{{REPORT}}//$'\n'}" \
    --priority {{10}} \
    --role-arn "${{{ROLE_ARN}}}" \
    --client-request-token "$(uuidgen)" \
    --region "${{{AWS_DEFAULT_REGION}}}" \
    --description "{{Remove governance retention}}";
```

## Uso de AWS SDK para Java
<a name="batch-ops-examples-java-object-lock-governance"></a>

En los ejemplos siguientes del AWS SDK para Java, se muestra cómo aplicar la gobernanza de la retención del bloqueo de objetos de S3 con la `retain until date` establecida en el 30 de enero de 2025 en varios objetos, incluida la aplicación de la gobernanza de la retención del bloqueo de objetos en varios objetos con una fecha límite de retención y omitiendo la gobernanza de retención en varios objetos.

Para ver ejemplos de cómo usar operaciones por lotes con el modo de gobernanza de retención de bloqueo de objetos de S3 con el AWS SDK para Java, consulte [Use CreateJob with an AWS SDK or CLI](https://docs.aws.amazon.com/AmazonS3/latest/API/s3-control_example_s3-control_CreateJob_section.html) en la *Referencia de la API de Amazon S3*.