S3 Batch Operations로 S3 Object Lock 활성화하기
S3 Batch Operations로 S3 Object Lock 활성화하기
많은 객체에 보존을 적용하거나 법적 보존을 걸어야 할 때, S3 Batch Operations를 Object Lock과 함께 쓰면 효율적이에요. 이 문서에서는 Object Lock을 활성화하는 작업을 만들 수 있도록 IAM 역할을 구성하는 CLI 예제를 살펴볼게요.
출처: 문서
본문
Amazon S3 Batch Operations를 S3 Object Lock과 함께 사용해 많은 Amazon S3 객체의 보존을 관리하거나 법적 보존을 활성화할 수 있어요. 매니페스트에 대상 객체 목록을 지정해 Batch Operations에 제출하면 됩니다. 자세한 내용은 S3 Object Lock retention 및 S3 Object Lock legal hold 문서를 참고하세요.
다음 예제들은 S3 Batch Operations 권한이 있는 AWS Identity and Access Management(IAM) 역할을 만들고, Object Lock을 활성화하는 작업을 만들 수 있도록 역할 권한을 갱신하는 방법을 보여줘요. 또한 S3 Batch Operations 작업의 객체를 식별하는 CSV 매니페스트가 있어야 해요. 자세한 내용은 Specifying a manifest 문서를 참고하세요.
이 예제들을 사용하려면 사용자 입력 플레이스홀더를 자신의 정보로 바꾸세요.
IAM 역할을 만들고 S3 Batch Operations 권한 할당해 실행하기
이 단계는 모든 S3 Batch Operations 작업에 필요해요.
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-name batch_operations-objectlock \
--assume-role-policy-document "${batch_operations_trust_policy}"
S3 Batch Operations를 S3 Object Lock과 함께 실행하도록 설정하기
이 단계에서는 역할이 다음 작업을 할 수 있게 해요.
- Batch Operations가 실행할 대상 객체가 들어 있는 S3 버킷에서 Object Lock을 실행한다.
- 매니페스트 CSV 파일과 객체가 위치한 S3 버킷을 읽는다.
- S3 Batch Operations 작업의 결과를 보고 버킷에 쓴다.
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-name batch_operations-objectlock \
--policy-name object-lock-permissions \
--policy-document "${batch_operations_permissions}"
AWS SDK for Java로도 S3 Batch Operations 권한이 있는 IAM 역할을 만들고, Object Lock을 활성화하는 작업을 만들도록 역할 권한을 갱신할 수 있어요. S3 Batch Operations 작업의 객체를 식별하는 CSV 매니페스트도 있어야 해요. 자세한 내용은 Specifying a manifest 문서를 참고하세요. 다음 단계를 수행해요.
- IAM 역할을 만들고 실행할 S3 Batch Operations 권한을 할당한다. 이 단계는 모든 S3 Batch Operations 작업에 필요해요.
- S3 Batch Operations를 S3 Object Lock과 함께 실행하도록 설정한다. 역할이 다음 작업을 할 수 있게 해요.
- Batch Operations가 실행할 대상 객체가 들어 있는 S3 버킷에서 Object Lock을 실행한다.
- 매니페스트 CSV 파일과 객체가 위치한 S3 버킷을 읽는다.
- S3 Batch Operations 작업의 결과를 보고 버킷에 쓴다.
AWS SDK for Java로 S3 Batch Operations를 사용해 S3 Object Lock을 활성화하기 위한 IAM 역할을 만드는 방법을 보여주는 코드 예제는 AWS SDK for Java 2.x Code Examples의 CreateObjectLockRole.java를 참고하세요.