S3 Batch Operations로 S3 Object Lock 법적 보존 끄기

S3 Batch Operations로 S3 Object Lock 법적 보존 끄기

법적 보존(legal hold)이 더 이상 필요 없다면 일괄로 끌 수 있어요. 이 예제는 먼저 역할에 s3:PutObjectLegalHold 권한을 부여하고, 매니페스트에 있는 객체들의 법적 보존을 끄는(제거하는) Batch Operations 작업을 만든 뒤 결과를 보고해요.

출처: 문서

본문

다음 예제는 신뢰 정책을 만들고 S3 Batch Operations 및 S3 Object Lock 구성 권한을 설정한 이전 예제를 바탕으로 해요. 이 예제는 Batch Operations로 객체의 Object Lock 법적 보존을 비활성화하는 방법을 보여줘요.

이 예제는 먼저 역할을 갱신해 s3:PutObjectLegalHold 권한을 부여하고, 매니페스트에서 식별한 객체의 법적 보존을 끄는(제거하는) Batch Operations 작업을 만든 다음 그 결과를 보고해요.

이 예제들을 사용하려면 사용자 입력 플레이스홀더를 자신의 정보로 바꾸세요.

다음 AWS CLI 예제들은 여러 객체에서 S3 Object Lock 법적 보존을 끄도록 Batch Operations를 사용하는 방법을 보여줘요.

예제 — 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-name batch_operations-objectlock --policy-name legal-hold-permissions --policy-document "${legal_hold_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
{
  "S3PutObjectLegalHold": {
    "LegalHold": {
      "Status":"OFF"
    }
  }
}
EOF

read -d '' MANIFEST <<EOF
{
  "Spec": {
    "Format": "S3BatchOperations_CSV_20180820",
    "Fields": [
      "Bucket",
      "Key"
    ]
  },
  "Location": {
    "ObjectArn": "arn:aws:s3:::amzn-s3-demo-manifest-bucket/legalhold-object-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/legalhold-objects-batch_operations",
  "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 "Turn off legal hold";

AWS SDK for Java로 S3 Object Lock 법적 보존을 끄도록 S3 Batch Operations를 사용하는 예제는 Amazon S3 API Reference의 Use CreateJob with an AWS SDK or CLI 문서를 참고하세요.