Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
L’exemple suivant s’appuie sur les exemples précédents de création d’une stratégie d’approbation et de définition des autorisations de configuration pour les opérations par lot S3 et le verrouillage des objets S3. Cet exemple montre comment désactiver la conservation légale du verrouillage des objets à l’aide de la fonctionnalité d’opérations par lot.
Cet exemple met d’abord à jour le rôle afin d’accorder des autorisations s3:PutObjectLegalHold
, crée une tâche d’opérations par lot qui désactive (supprime) la conservation légale des objets identifiés dans le manifeste, puis établit un rapport à ce sujet.
Pour utiliser les exemples suivants, remplacez
par vos propres informations. user input
placeholders
Les AWS CLI exemples suivants montrent comment utiliser Batch Operations pour désactiver les blocages légaux de S3 Object Lock sur plusieurs objets.
Exemple — Met à jour le rôle pour accorder des autorisations s3:PutObjectLegalHold
export AWS_PROFILE='
aws-user
' read -d ''legal_hold_permissions
<<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObjectLegalHold" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket
/*" ] } ] EOF aws iam put-role-policy --role-namebatch_operations-objectlock
--policy-namelegal-hold-permissions
--policy-document "${legal_hold_permissions
}"
Exemple — Désactiver la conservation légale
L’exemple suivant désactive la conservation légale.
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 { "S3PutObjectLegalHold": { "LegalHold": { "Status":"OFF" } } } EOF read -d ''MANIFEST
<<EOF { "Spec": { "Format": "S3BatchOperations_CSV_20180820", "Fields": [ "Bucket", "Key" ] }, "Location": { "ObjectArn": "arn:aws:s3:::", "ETag": "
amzn-s3-demo-manifest-bucket
/legalhold-object-manifest.csvYour-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/legalhold-objects-batch_operations
", "ReportScope": "AllTasks" } EOF aws \ s3control create-job \ --account-id "${ACCOUNT_ID
}" \ --manifest "${MANIFEST
//$'\n'}" \ --operation "${OPERATION
//$'\n'/}" \ --report "${REPORT
//$'\n'}" \ --priority10
\ --role-arn "${ROLE_ARN
}" \ --client-request-token "$(uuidgen)" \ --region "${AWS_DEFAULT_REGION
}" \ --description "Turn off legal hold
";
Les AWS SDK pour Java exemples suivants montrent comment utiliser Batch Operations pour désactiver les blocages légaux de S3 Object Lock sur plusieurs objets.
Exemple — Met à jour le rôle pour accorder des autorisations s3:PutObjectLegalHold
public void allowPutObjectLegalHold() {
final String roleName = "batch_operations-object-lock
";
final String legalHoldPermissions = "{" +
" \"Version\": \"2012-10-17\"," +
" \"Statement\": [" +
" {" +
" \"Effect\": \"Allow\"," +
" \"Action\": [" +
" \"s3:PutObjectLegalHold\"" +
" ]," +
" \"Resource\": [" +
" \"arn:aws:s3:::amzn-s3-demo-manifest-bucket
/*\"" +
" ]" +
" }" +
" ]" +
"}";
final AmazonIdentityManagement iam =
AmazonIdentityManagementClientBuilder.defaultClient();
final PutRolePolicyRequest putRolePolicyRequest = new PutRolePolicyRequest()
.withPolicyDocument(legalHoldPermissions)
.withPolicyName("legal-hold-permissions
")
.withRoleName(roleName);
final PutRolePolicyResult putRolePolicyResult = iam.putRolePolicy(putRolePolicyRequest);
}
Exemple — Désactiver la conservation légale
Utilisez l’exemple ci-dessous si vous souhaitez désactiver la conservation légale.
public String createLegalHoldOffJob(final AWSS3ControlClient awss3ControlClient) {
final String manifestObjectArn = "arn:aws:s3:::amzn-s3-demo-manifest-bucket
/legalhold-object-manifest.csv
";
final String manifestObjectVersionId = "15ad5ba069e6bbc465c77bf83d541385
";
final JobManifestLocation manifestLocation = new JobManifestLocation()
.withObjectArn(manifestObjectArn)
.withETag(manifestObjectVersionId);
final JobManifestSpec manifestSpec =
new JobManifestSpec()
.withFormat(JobManifestFormat.S3BatchOperations_CSV_20180820)
.withFields("Bucket", "Key");
final JobManifest manifestToPublicApi = new JobManifest()
.withLocation(manifestLocation)
.withSpec(manifestSpec);
final String jobReportBucketArn = "arn:aws:s3:::amzn-s3-demo-completion-report-bucket
";
final String jobReportPrefix = "reports/legalhold-objects-batch_operations
";
final JobReport jobReport = new JobReport()
.withEnabled(true)
.withReportScope(JobReportScope.AllTasks)
.withBucket(jobReportBucketArn)
.withPrefix(jobReportPrefix)
.withFormat(JobReportFormat.Report_CSV_20180820);
final JobOperation jobOperation = new JobOperation()
.withS3PutObjectLegalHold(new S3SetObjectLegalHoldOperation()
.withLegalHold(new S3ObjectLockLegalHold()
.withStatus(S3ObjectLockLegalHoldStatus.OFF)));
final String roleArn = "arn:aws:iam::123456789012
:role/batch_operations-object-lock
";
final Boolean requiresConfirmation = true;
final int priority = 10
;
final CreateJobRequest request = new CreateJobRequest()
.withAccountId("123456789012
")
.withDescription("Turn off legal hold
")
.withManifest(manifestToPublicApi)
.withOperation(jobOperation)
.withPriority(priority)
.withRoleArn(roleArn)
.withReport(jobReport)
.withConfirmationRequired(requiresConfirmation);
final CreateJobResult result = awss3ControlClient.createJob(request);
return result.getJobId();
}