AWS CloudFormation에서 Amazon S3의 블록 퍼블릭 액세스를 설정하는 데 필요한 권한 설정

8788 단어 CloudFormationS3AWS
AWS CloudFormation(CFn)에서 Amazon S3(S3)의 블록 퍼블릭 액세스를 설정하는 데 필요한 권한을 CFn 오류를 믿으면 속여졌기 때문에 메모.

S3의 블록 퍼블릭 액세스에 관해서는 아래가 참고가 됩니다.

Amazon S3 Block Public Access – 계정 및 버킷 추가 보호 | Amazon Web Services 블로그
htps : // 아 ws. 아마존. 코 m / jp / b ぉ gs / 네 ws / 아마 존 - s 3 - b ぉ CK 푸 b ぃ c - 어서 s - r r r 아코 응 ts

S3 공개 액세스 설정 사용해보기 - Qiita
htps : // 이 m / at mjp / ms / cb6 ~ df5 3df4 ~ bf5 4 ~ 7

절차



템플릿 준비



이런 느낌의 템플릿을 준비합니다. PublicAccessBlockConfiguration 에서 블록 공용 액세스를 설정합니다.
BucketName 는 임의로 지정해 주십시오.

template.yaml
AWSTemplateFormatVersion: "2010-09-09"
Resources:
  PublicAccessBlockTestBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: "kai-public-access-block-test"
      PublicAccessBlockConfiguration:
        BlockPublicAcls: True
        BlockPublicPolicy: True
        IgnorePublicAcls: True
        RestrictPublicBuckets: True

AWS Management Console이라면 이런 화면에서 설정합니다.


AWS 사용자 생성



CFn에서 스택을 생성하고 리소스를 관리하는 데 사용하는 AWS 사용자를 생성하여 인라인 정책에서 최소한의 권한을 부여합니다.

인라인 정책
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:DeleteStack",
                "s3:CreateBucket",
                "s3:DeleteBucket"
            ],
            "Resource": "*"
        }
    ]
}

스택 만들기



블록 퍼블릭 액세스를 설정하기 위한 Action은 처음 모르기 때문에 지정하지 않고 CFn에서 스택을 작성해 보았습니다.
> aws cloudformation create-stack \
  --template-body file://template.yaml \
  --stack-name kai-public-access-block-test \
  --profile public-access-block-test

그러면 API: s3:PutPublicAccessBlock Access Denied 라는 오류가 발생했으므로 인라인 정책의 Action에 s3:PutPublicAccessBlock 를 지정해 보면. . .



식별되지 않는 액션이 ​​되었습니다(´・ω・`)
왜-? CFn 씨가 거짓말하고 있는 거야?

올바른 지정 방법을 조사해 보았습니다.



조사해 보면 s3:PutBucketPublicAccessBlock 가 올바른 것 같습니다.

Amazon S3 블록 퍼블릭 액세스 사용 - Amazon Simple Storage Service
htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / 아마 존 S3 / ㅁ st /에서 v / 어쩌다 s - t t lob ぉ CK 푸 b ぃ c 어세 s. HTML

인라인 정책
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:DeleteStack",
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:PutBucketPublicAccessBlock"
            ],
            "Resource": "*"
        }
    ]
}

인라인 정책에 s3:PutBucketPublicAccessBlock를 추가하여 스택을 만들면 S3 버킷의 블록 공용 액세스를 성공적으로 설정할 수 있습니다.


참고



Amazon S3 Block Public Access – 계정 및 버킷 추가 보호 | Amazon Web Services 블로그
htps : // 아 ws. 아마존. 코 m / jp / b ぉ gs / 네 ws / 아마 존 - s 3 - b ぉ CK 푸 b ぃ c - 어서 s - r r r 아코 응 ts

S3 공개 액세스 설정 사용해보기 - Qiita
htps : // 이 m / at mjp / ms / cb6 ~ df5 3 df4 ~ bf5 4 ~ 7

Amazon S3 블록 퍼블릭 액세스 사용 - Amazon Simple Storage Service
htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / 아마 존 S3 / ㅁ st /에서 v / 어쩌다 s - t t lob ぉ CK 푸 b ぃ c 어세 s. HTML

좋은 웹페이지 즐겨찾기