S3 배치 작업을 사용하여 S3 객체 잠금 사용 설정
S3 Object Lock과 함께 Amazon S3 Batch Operations를 사용하여 보존을 관리하거나 여러 Amazon S3 객체에 대해 한 번에 법적 보존을 활성화할 수 있습니다. 매니페스트에서 대상 객체 목록을 지정하고 완료를 위해 배치 작업에 제출합니다. 자세한 내용은 S3 객체 잠금 보존 및 S3 객체 잠금 법적 보존 단원을 참조하세요.
다음 예제에서는 Object Lock을 활성화하는 작업을 만들기 위해 S3 Batch Operations 권한이 있는 AWS Identity and Access Management(IAM) 역할을 만들고 역할 권한을 업데이트하는 방법을 보여줍니다. S3 Batch Operations 작업에 대한 객체를 식별하는 CSV
매니페스트도 있어야 합니다. 자세한 내용은 매니페스트 지정 단원을 참조하십시오.
다음 예제를 사용하려면
를 사용자의 정보로 대체합니다.user input
placeholders
-
IAM 역할을 생성하고 실행할 S3 배치 작업 권한을 할당합니다.
이 단계는 모든 S3 배치 작업에 필요합니다.
export AWS_PROFILE='
aws-user
' read -d ''batch_operations_trust_policy
<<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "batchoperations.s3.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] } EOF aws iam create-role --role-namebatch_operations-objectlock
\ --assume-role-policy-document "${batch_operations_trust_policy
}" -
S3 객체 잠금을 사용하여 S3 배치 작업을 실행하도록 설정합니다.
이 단계에서는 역할에서 다음 작업을 수행하도록 허용합니다.
-
배치 작업을 실행할 대상 객체가 포함된 S3 버킷에서 객체 잠금을 실행합니다.
-
매니페스트 CSV 파일과 객체가 있는 S3 버킷을 읽습니다.
-
S3 배치 작업의 결과를 보고 버킷에 기록합니다.
read -d ''
batch_operations_permissions
<<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetBucketObjectLockConfiguration", "Resource": [ "arn:aws:s3:::{{amzn-s3-demo-manifest-bucket
}}" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::{{amzn-s3-demo-manifest-bucket
}}/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::{{amzn-s3-demo-completion-report-bucket
}}/*" ] } ] } EOF aws iam put-role-policy --role-namebatch_operations-objectlock
\ --policy-nameobject-lock-permissions
\ --policy-document "${batch_operations_permissions
}" -
다음 예제에서는 AWS SDK for Java를 사용하여 Object Lock을 활성화하는 작업을 만들기 위해 S3 Batch Operations 권한이 있는 IAM 역할을 만들고 역할 권한을 업데이트하는 방법을 보여줍니다. S3 배치 작업에 대한 객체를 식별하는 CSV
매니페스트도 있어야 합니다. 자세한 내용은 매니페스트 지정 단원을 참조하십시오.
다음 단계를 수행합니다.
-
IAM 역할을 생성하고 실행할 S3 배치 작업 권한을 할당합니다. 이 단계는 모든 S3 배치 작업에 필요합니다.
-
S3 객체 잠금을 사용하여 S3 배치 작업을 실행하도록 설정합니다.
역할에서 다음 작업을 수행하도록 허용합니다.
-
배치 작업을 실행할 대상 객체가 포함된 S3 버킷에서 객체 잠금을 실행합니다.
-
매니페스트 CSV 파일과 객체가 있는 S3 버킷을 읽습니다.
-
S3 배치 작업의 결과를 보고 버킷에 기록합니다.
-
public void createObjectLockRole() { final String roleName = "
batch_operations-object-lock
"; final String trustPolicy = "{" + " \"Version\": \"2012-10-17\", " + " \"Statement\": [ " + " { " + " \"Effect\": \"Allow\", " + " \"Principal\": { " + " \"Service\": [" + " \"batchoperations.s3.amazonaws.com\"" + " ]" + " }, " + " \"Action\": \"sts:AssumeRole\" " + " } " + " ]" + "}"; final String bopsPermissions = "{" + " \"Version\": \"2012-10-17\"," + " \"Statement\": [" + " {" + " \"Effect\": \"Allow\"," + " \"Action\": \"s3:GetBucketObjectLockConfiguration\"," + " \"Resource\": [" + " \"arn:aws:s3:::amzn-s3-demo-manifest-bucket
\"" + " ]" + " }," + " {" + " \"Effect\": \"Allow\"," + " \"Action\": [" + " \"s3:GetObject\"," + " \"s3:GetObjectVersion\"," + " \"s3:GetBucketLocation\"" + " ]," + " \"Resource\": [" + " \"arn:aws:s3:::amzn-s3-demo-manifest-bucket
/*\"" + " ]" + " }," + " {" + " \"Effect\": \"Allow\"," + " \"Action\": [" + " \"s3:PutObject\"," + " \"s3:GetBucketLocation\"" + " ]," + " \"Resource\": [" + " \"arn:aws:s3:::amzn-s3-demo-completion-report-bucket
/*\"" + " ]" + " }" + " ]" + "}"; final AmazonIdentityManagement iam = AmazonIdentityManagementClientBuilder.defaultClient(); final CreateRoleRequest createRoleRequest = new CreateRoleRequest() .withAssumeRolePolicyDocument(bopsPermissions) .withRoleName(roleName); final CreateRoleResult createRoleResult = iam.createRole(createRoleRequest); final PutRolePolicyRequest putRolePolicyRequest = new PutRolePolicyRequest() .withPolicyDocument(bopsPermissions) .withPolicyName("batch_operations-permissions
") .withRoleName(roleName); final PutRolePolicyResult putRolePolicyResult = iam.putRolePolicy(putRolePolicyRequest); }