본문 바로가기

Back/AWS_Back

[AWS] ZAPPA를 위한 정책, IAM 사용자 생성

1. 정책 설정

IAM 정책으로 들어와 정책생성을 누릅니다.

입력창에 다음 내용을 복사합니다.

이하  Json 내용은 다음 블로그에서 가져왔습니다.

kangraemin.github.io/django/2020/10/04/django-zappa-permission/

 

Zappa를 활용하여 Django 배포하기 - not authorized to perform error

Zappa를 활용하여 Django 프로젝트를 API Gateway + Lambda를 활용한 서버리스 아키텍쳐로 배포하는 과정에 대해 공유합니다. 이번 글에서는 zappa deploy 도중 겪었던 에러들과 해결 과정을 공유합니다.

kangraemin.github.io

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:GetRole",
                "iam:CreateRole",
                "iam:PassRole",
                "iam:PutRolePolicy"
            ],
            "Resource": [
                "arn:aws:iam::[본인의 iam account 번호]:role/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "lambda:GetAlias",
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:UpdateFunctionCode",
                "lambda:ListVersionsByFunction",
                "lambda:GetFunctionConfiguration",
                "lambda:DeleteFunctionConcurrency",
                "lambda:UpdateFunctionConfiguration",
                "lambda:GetFunction",
                "lambda:InvokeFunction",
                "lambda:AddPermission",
                "lambda:RemovePermission",
                "lambda:GetPolicy",
                "apigateway:POST",
                "apigateway:GET",
                "apigateway:PUT",
                "apigateway:DELETE",
                "apigateway:PATCH",
                "apigateway:UpdateRestApiPolicy",
                "events:DescribeRule",
                "events:PutRule",
                "events:ListTargetsByRule",
                "events:ListRules",
                "events:ListRuleNamesByTarget",
                "events:RemoveTargets",
                "events:DeleteRule",
                "events:PutTargets",
                "logs:DescribeLogStreams",
                "logs:FilterLogEvents",
                "logs:DeleteLogGroup",
                "cloudformation:DescribeStackResource",
                "cloudformation:UpdateStack",
                "cloudformation:ListStackResources",
                "cloudformation:DescribeStacks",
                "cloudformation:CreateStack",
                "cloudformation:DeleteStack"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucketMultipartUploads",
                "s3:CreateBucket",
                "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:AbortMultipartUpload",
                "s3:DeleteObject",
                "s3:ListMultipartUploadParts"
            ],
            "Resource": "arn:aws:s3:::*"
        }
    ]
}

 

IAM acount번호는 대시보드 에서 쉽게 확인 할 수 있습니다.

다음: 태그 로 넘어가 태그를 설정 할 수 있고(선택)

다음: 검토에서 정책이름을 정해줄 수 있습니다.

 

2. 사용자 생성

기존정책 직접연결을 선택한후 만들어 두었던 정책을 연결합니다.

이후 생성을 완료하면 키와 secrete키가 생성됩니다.

 

3. cli에 프로필 등록 

AWS CLI 에 zappa 프로필을 만들고 발급받은 키를 입력합니다.

output format은 기본값이 Json이므로 비워뒀습니다.

4. zappa init

가상환경을 만들고 zappa 및 필요한 라이브러리를 설치한뒤 zappa init을 입력하면 설정을 진행합니다. 프로필을 미리 만들어 놓으면 프로필을 선택하는 선택지가 나옵니다.

 

deploy시 성공적으로 된 것을 확인 할 수 있습니다. 

전에 만들었던 권한과는 다르게 Gateway 쪽 에러도 없이 잘 올라갑니다. 

'Back > AWS_Back' 카테고리의 다른 글

[AWS][S3] S3 정적 웹 호스팅  (0) 2021.06.25
[AWS]Zappa - Lambda Layer 테스트.  (0) 2021.04.19
[AWS] AWS CLI 설치  (0) 2021.03.31
[AWS][LAMBDA]Zappa를 이용한 Flask-Lambda  (0) 2021.03.31
[AWS][Lambda] Lambda 기본 이해...  (0) 2021.03.12