Tạo IAM User với policies quyền deploy và invalidateCDN

Trong phần lab này sẽ hướng dẫn bạn tạo IAM user với quyền thao tác với S3 bucket object và invalidateCDN của CloudFront

Policy tùy chỉnh sẽ chỉ cung cấp quyền để push các thay đổi vào S3 bucket và vô hiệu hóa (invalidate) bộ nhớ đệm trên Cloudfront. Việc cấp quyền đủ dùng sẽ đáp ứng được nguyên tắc đặc quyền tối thiêu (Principle of Least Privilege). Nếu access key của user (user chỉ liên kết với policy này) bị leak, thì việc mà các hacker có thể làm nhiều nhất với access key đó là thực hiện các thay đổi đối với S3 bucket và vô hiệu hóa cache của Cloudfront.

Tạo policy cấp quyền thao tác với S3 bucket object và invalidateCDN của CloudFront

  • Truy cập IAM console, chọn Policies ở thanh điều hướng bên trái.
  • Chọn Create policy iam
  • Tại phần Specify permissions:
    • Chọn JSON
    • Gán policy sau vào Policy editor:
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Sid": "GithubActionsWebsite",
            "Effect": "Allow",
            "Action": [
              "s3:ListBucket",
              "s3:GetObject",
              "s3:PutObject",
              "s3:DeleteObject",
              "cloudfront:CreateInvalidation"
            ],
            "Resource": [
              "arn:aws:s3:::nhungnt3299.cloudjourneys.net",
              "arn:aws:s3:::nhungnt3299.cloudjourneys.net/*",
              "<CF-Distribution-ARN>"
            ]
          }
        ]
      }
      
    • Click Next.
  • Tại Review and create:
    • Policy name: điền DeployWebsite.
    • Chọn Add new tag: key - project, value - fcj-mission-1.
    • Click Create policy. iam iam

Tạo User attack tới policy vừa tạo

  • Truy cập IAM console, chọn Users ở thanh điều hướng bên trái.
  • Chọn Create user iam
  • Tại mục Specify user details:
    • User name: điền GitHub-Actions.
    • Click Next. iam
  • Tại mục Set permissions:
    • Tại Permissions options, chọn Attach policies directly.
    • Tại Permissions policies, tích chọn policy DeployWebsite vừa mới tạo ở bước trên.
    • Click Next. iam
  • Tại mục Review and create:
    • Review lại thông tin.
    • Chọn Add new tag: key - project, value - fcj-mission-1.
    • Click Create user. iam

Tạo User Access key

  • Truy cập IAM console, chọn Users ở thanh điều hướng bên trái.
  • Chọn user GitHub-Actions bạn vừa tạo.
  • Tại tab Security credentials > tại mục Access keys, click chọn Create access key iam iam
    • Tại mục Access key best practices & alternatives:
      • Chọn Application running outside AWS.
      • Chọn Next. iam
    • Tại mục Set description tag - optional:
      • Điền mô tả nếu muốn.
      • Click chọn Create access key.
    • Tại mục Retrieve access keys:
      • Click chọn Download .csv file.
      • Lưu file về máy (Ta sẽ dùng access key này để cấp quyền cho GitHub Actions ở phần sau).
      • Click Done. iam

User được tạo sẽ chỉ được sử dụng để cập nhật website và invalidateCDN. Nếu mất access key, bạn phải tạo key mới và vô hiệu hóa access key cũ.