5-1. Amazon Rekognition 사용자 지정 레이블 사용 전 셋팅
안녕하세요! 오늘부턴 Amazon에서 제공하는 기능이 아닌, 직접 레이블을 교육시켜보겠습니다. 물론 이 과정도 Amazon
에서 제공하는 기능을 이용해 분석하는 거지만, 등록이 되어있는 객체를 인식하는게 아닌 사용자가 학습시켜 객체를 인식하는 건 또 다른 의미가 있으니까요 ㅎㅎ
- Step 1: Create an AWS account
- Step 2: Create an IAM administrator user and group
- Step 3: Set Up the AWS CLI and AWS SDKs
- Step 4: Set Up Permissions
- Step 5: Create the console bucket
- Step 6: (Optional) Encrypt training files
- Step 7: (Optional) Associate prior datasets
사용하기 전 '셋팅'하는 단계가 총 7단계로 나뉘어져있는데 여기서 step1,2,3은 다룬 적이 있기 때문에 step4부터 진행해보겠습니다~
AWS CLI와 AWS SDK 셋팅하기 : https://developing-soosoo.tistory.com/47
4. Set Up Permission (permission 설정하기)
1. Allowing console access (IAM 정책 생성하기)
우선 Amazon Rekognition Custom Labels를 사용할 수 있도록 IAM 정책을 생성해줘야 합니다.
(IAM -> Policies -> Create Policy)
* 이 때, JSON 코드를 작성할 때 위아래 공백을 '꼭' 제거해주세요! 공백이 있으면 넘어가지 않습니다..!
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:ListAllMyBuckets"
],
"Resource": "*"
},
{
"Sid": "s3Policies",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:CreateBucket",
"s3:GetBucketAcl",
"s3:GetBucketLocation",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectVersion",
"s3:GetObjectTagging",
"s3:GetBucketVersioning",
"s3:GetObjectVersionTagging",
"s3:PutBucketCORS",
"s3:PutLifecycleConfiguration",
"s3:PutBucketPolicy",
"s3:PutObject",
"s3:PutObjectTagging",
"s3:PutBucketVersioning",
"s3:PutObjectVersionTagging"
],
"Resource": [
"arn:aws:s3:::custom-labels-console-*",
"arn:aws:s3:::rekognition-video-console-*"
]
},
{
"Sid": "rekognitionPolicies",
"Effect": "Allow",
"Action": [
"rekognition:*"
],
"Resource": "*"
},
{
"Sid": "groundTruthPolicies",
"Effect": "Allow",
"Action": [
"groundtruthlabeling:*"
],
"Resource": "*"
}
]
}
Policy 이름은 nickname_custom_labels로 지정해줬습니다
2. Accessing external Amazon S3 Buckets (IAM 정책에 해당 정책 추가하기)
위에서 만든 정책에 "s3ExternalBucketPolicies"를 추가해줍니다
* 이 때 , resource의 region과 bucket이름은 본인 설정과 맞게 바꿔야합니다!
{
"Sid": "s3ExternalBucketPolicies",
"Effect": "Allow",
"Action": [
"s3:GetBucketAcl",
"s3:GetBucketLocation",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectVersion",
"s3:GetObjectTagging",
"s3:ListBucket",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::my-bucket*"
]
}
3. user에 권한 추가하기
(IAM -> 사용자(user) -> 권한추가 -> 기존 정책 직접 연결 -> custom_labels 추가)
5. Create the console bucket (console bucket 만들기)
bucket 이름은 custom-labels-console-<region>-<random value> 형식으로 정해줍니다
(이 때 Amazon S3 bucket 이름은 메모해둬야 합니다!)
step 6, step 7은 선택사항이고 저는 하지않았습니다!