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 illustre comment appliquer la gouvernance de conservation du verrouillage d’objet S3 avec la date retain until
date
fixée au 30 janvier 2025 sur plusieurs objets. Il crée une tâche d’opérations par lot qui utilise le compartiment manifeste et signale les résultats dans le compartiment de rapports.
Pour utiliser les exemples suivants, remplacez
par vos propres informations. user input
placeholders
Les AWS CLI exemples suivants montrent comment utiliser Batch Operations pour appliquer le mode de gouvernance de rétention S3 Object Lock à plusieurs objets.
Exemple — Appliquer la gouvernance de conservation du verrouillage d’objet S3 sur plusieurs objets avec la date de fin de conservation fixée au 30 janvier 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:::", "ETag": "
amzn-s3-demo-manifest-bucket
/governance-objects-manifest.csvYour-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'}" \ --priority10
\ --role-arn "${ROLE_ARN
}" \ --client-request-token "$(uuidgen)" \ --region "${AWS_DEFAULT_REGION
}" \ --description "Put governance retention
";
Exemple — Contourner la gouvernance de conservation sur plusieurs objets
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. Il montre comment contourner la gouvernance de rétention entre plusieurs objets et crée une tâche d’opérations par lot qui utilise le compartiment manifeste et signale les résultats dans le compartiment de rapports.
export AWS_PROFILE='
aws-user
' read -d '' bypass_governance_permissions <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:BypassGovernanceRetention" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket
/*" ] } ] } EOF aws iam put-role-policy --role-namebatch-operations-objectlock
--policy-namebypass-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:::", "ETag": "
amzn-s3-demo-manifest-bucket
/governance-objects-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/batch_operations-governance
", "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 "Remove governance retention
";
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 illustre comment appliquer la gouvernance de conservation du verrouillage d’objet S3 avec la date retain until date
fixée au 30 janvier 2025 sur plusieurs objets. Cet exemple crée une tâche d’opérations par lot qui utilise le compartiment de manifeste et signale les résultats dans le compartiment de rapports.
Exemple — Appliquer la gouvernance de conservation du verrouillage d’objet S3 sur plusieurs objets avec la date de fin de conservation fixée au 30 janvier 2025
public String createGovernanceRetentionJob(final AWSS3ControlClient awss3ControlClient) throws ParseException {
final String manifestObjectArn = "arn:aws:s3:::amzn-s3-demo-manifest-bucket
/governance-objects-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/governance-objects
";
final JobReport jobReport = new JobReport()
.withEnabled(true)
.withReportScope(JobReportScope.AllTasks)
.withBucket(jobReportBucketArn)
.withPrefix(jobReportPrefix)
.withFormat(JobReportFormat.Report_CSV_20180820);
final SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
final Date jan30th = format.parse("30/01/2025");
final JobOperation jobOperation = new JobOperation()
.withS3PutObjectRetention(new S3SetObjectRetentionOperation()
.withRetention(new S3Retention()
.withMode(S3ObjectLockRetentionMode.GOVERNANCE)
.withRetainUntilDate(jan30th)));
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("Put governance retention
")
.withManifest(manifestToPublicApi)
.withOperation(jobOperation)
.withPriority(priority)
.withRoleArn(roleArn)
.withReport(jobReport)
.withConfirmationRequired(requiresConfirmation);
final CreateJobResult result = awss3ControlClient.createJob(request);
return result.getJobId();
}
Exemple — Contourner la gouvernance de conservation sur plusieurs objets
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 contourner la gouvernance de conservation entre plusieurs objets et crée une tâche d’opérations par lot qui utilise le compartiment de manifeste et signale les résultats dans le compartiment de rapports.
public void allowBypassGovernance() {
final String roleName = "batch_operations-object-lock
";
final String bypassGovernancePermissions = "{" +
" \"Version\": \"2012-10-17\"," +
" \"Statement\": [" +
" {" +
" \"Effect\": \"Allow\"," +
" \"Action\": [" +
" \"s3:BypassGovernanceRetention\"" +
" ]," +
" \"Resource\": [" +
" \"arn:aws:s3:::amzn-s3-demo-manifest-bucket
/*\"" +
" ]" +
" }" +
" ]" +
"}";
final AmazonIdentityManagement iam =
AmazonIdentityManagementClientBuilder.defaultClient();
final PutRolePolicyRequest putRolePolicyRequest = new PutRolePolicyRequest()
.withPolicyDocument(bypassGovernancePermissions)
.withPolicyName("bypass-governance-permissions")
.withRoleName(roleName);
final PutRolePolicyResult putRolePolicyResult = iam.putRolePolicy(putRolePolicyRequest);
}
public String createRemoveGovernanceRetentionJob(final AWSS3ControlClient awss3ControlClient) {
final String manifestObjectArn = "arn:aws:s3:::amzn-s3-demo-manifest-bucket
/governance-objects-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/batch_operations-governance
";
final JobReport jobReport = new JobReport()
.withEnabled(true)
.withReportScope(JobReportScope.AllTasks)
.withBucket(jobReportBucketArn)
.withPrefix(jobReportPrefix)
.withFormat(JobReportFormat.Report_CSV_20180820);
final JobOperation jobOperation = new JobOperation()
.withS3PutObjectRetention(new S3SetObjectRetentionOperation()
.withRetention(new S3Retention()));
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("Remove governance retention
")
.withManifest(manifestToPublicApi)
.withOperation(jobOperation)
.withPriority(priority)
.withRoleArn(roleArn)
.withReport(jobReport)
.withConfirmationRequired(requiresConfirmation);
final CreateJobResult result = awss3ControlClient.createJob(request);
return result.getJobId();
}