Skip to content

Latest commit

 

History

History
135 lines (116 loc) · 3.92 KB

greengrass-user-registration.md

File metadata and controls

135 lines (116 loc) · 3.92 KB

Greengrass를 위한 계정 등록

IAM Role 및 Policy 설정

Authorize core devices to interact with AWS services에 따라서, GreengrassV2TokenExchangeRole을 생성하고, GreengrassV2TokenExchangeRoleAccess와 GGv2WorkshopS3Policy을 [Add Permssion]으로 추가합니다.

GreengrassV2TokenExchangeRoleAccess의 예는 아래와 같습니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:DescribeLogStreams",
                "s3:GetBucketLocation"
            ],
            "Resource": "*"
        }
    ]
}

GGv2WorkshopS3Policy의 예는 아래와 같습니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken",
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": "*"
        }
    ]
}

아래 명령어로 account-id를 확인합니다.

aws sts get-caller-identity --query Account --output text

IAM console에서 Create Policy를 선택하여 "aws-policy-greengrass"를 생성합니다.

https://us-east-1.console.aws.amazon.com/iamv2/home#/policies

이때 입력하는 policy는 Minimal IAM policy for installer to provision resources을 참조하여 아래처럼 생성합니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "CreateTokenExchangeRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::account-id:role/GreengrassV2TokenExchangeRole",
                "arn:aws:iam::account-id:policy/GreengrassV2TokenExchangeRoleAccess"
            ]
        },
        {
            "Sid": "CreateIoTResources",
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateKeysAndCertificate",
                "iot:CreatePolicy",
                "iot:CreateRoleAlias",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:DescribeEndpoint",
                "iot:DescribeRoleAlias",
                "iot:DescribeThingGroup",
                "iot:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeployDevTools",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "iot:CancelJob",
                "iot:CreateJob",
                "iot:DeleteThingShadow",
                "iot:DescribeJob",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:GetThingShadow",
                "iot:UpdateJob",
                "iot:UpdateThingShadow"
            ],
            "Resource": "*"
        }
    ]
}

[IAM console]에서 [Add user]를 선택하여, "iotuser"로 계정을 생성합니다.

https://us-east-1.console.aws.amazon.com/iamv2/home#/users

이때 "Add permissions"을 선택하여 아래와 같은 퍼미션을 추가합니다.

image