S3 Batch Operations를 S3 Object Lock 보존 거버넌스 모드와 함께 사용하기
S3 Batch Operations를 S3 Object Lock 보존 거버넌스 모드와 함께 사용하기
거버넌스(GOVERNANCE) 모드에서는 보존 기간을 바꿀 수 있는 특별 권한이 있는 사용자가 있으면 보호를 우회할 수 있어요. 이 예제는 보존 기한을 2025년 1월 30일로 설정해 여러 객체에 거버넌스 모드 보존을 적용하고, 또 보존 거버넌스를 우회하는 방법을 보여줘요.
출처: 문서
본문
다음 예제는 신뢰 정책을 만들고 S3 Batch Operations 및 S3 Object Lock 구성 권한을 설정한 이전 예제를 바탕으로 해요. 이 예제는 보존 기한을 2025년 1월 30일로 해 여러 객체에 S3 Object Lock 보존 거버넌스를 적용하는 방법을 보여줘요. 매니페스트 버킷을 사용하고 보고 버킷에 결과를 보고하는 Batch Operations 작업을 만들어요.
이 예제들을 사용하려면 사용자 입력 플레이스홀더를 자신의 정보로 바꾸세요.
다음 AWS CLI 예제들은 여러 객체에 S3 Object Lock 보존 거버넌스 모드를 적용하도록 Batch Operations를 사용하는 방법을 보여줘요.
예제 — 보존 기한 2025년 1월 30일로 여러 객체에 S3 Object Lock 보존 거버넌스 적용하기
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-bucketT",
"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";
예제 — 여러 객체의 보존 거버넌스 우회하기
다음 예제는 신뢰 정책을 만들고 S3 Batch Operations 및 S3 Object Lock 구성 권한을 설정한 이전 예제를 바탕으로 해요. 여러 객체의 보존 거버넌스를 우회하는 방법을 보여주고, 매니페스트 버킷을 사용하고 보고 버킷에 결과를 보고하는 Batch Operations 작업을 만들어요.
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-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";
다음 AWS SDK for Java 예제들은 보존 기한을 2025년 1월 30일로 설정해 여러 객체에 S3 Object Lock 보존 거버넌스를 적용하는 방법을 보여줘요. 보존 기한이 있는 여러 객체에 Object Lock 보존 거버넌스를 적용하는 것과, 여러 객체의 보존 거버넌스를 우회하는 것이 포함돼요. AWS SDK for Java로 S3 Object Lock 보존 거버넌스 모드에서 Batch Operations를 사용하는 예제는 Amazon S3 API Reference의 Use CreateJob with an AWS SDK or CLI 문서를 참고하세요.