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"을 선택하여 아래와 같은 퍼미션을 추가합니다.