AWS

5-1. Amazon Rekognition 사용자 지정 레이블 사용 전 셋팅

황수진 2022. 1. 25. 15:53

안녕하세요! 오늘부턴 Amazon에서 제공하는 기능이 아닌, 직접 레이블을 교육시켜보겠습니다. 물론 이 과정도 Amazon

에서 제공하는 기능을 이용해 분석하는 거지만, 등록이 되어있는 객체를 인식하는게 아닌 사용자가 학습시켜 객체를 인식하는 건 또 다른 의미가 있으니까요 ㅎㅎ 


사용하기 전 '셋팅'하는 단계가 총 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은 선택사항이고 저는 하지않았습니다!