[1 섹션] Amazon EventBridge 및 AwsCDK를 사용하여 로그 S3 스토리지 배럴 및 스토리지 배럴 정책을 제공하는 방법
7233 단어 awscdkserverlessaws
아마존 사건 다리는 무엇입니까?
Amazon EventBridge는 서버가 없는 이벤트 버스 서비스로 응용 프로그램과 각종 출처의 데이터를 쉽게 연결할 수 있다.EventBridge는 이전에 Amazon CloudWatch Events라고 불렸습니다.(aws docs)
내 이해에 의하면
events
events
은 실제로 CloudTrail에서 생성된 json 형식의 로그 파일입니다.events
의 관찰자입니다.events
(우리의 예에서 파일이 우리의 S3 저장소에 업로드되었을 때) events
에서 하고 싶은 일이 발생하면 EventBridge (우리의 예에서 Lambda 함수를 호출) event
(CloudTrail에서 생성된 로그 파일) event
모드(EventRule)event
의 패턴이 발생하면 무엇을 원하는지 알려줍니다.(EventTarget)이 블로그에서 우리는 AWS CDK을 사용하여 위에서 정의한 모든 자원을 설정할 것이다.
우리는 왜 CDK를 사용합니까?
생각해 보면 AWS에는 160여 개의 서비스가 있습니다.필요한 것이 있을 때마다 AWS 관리 콘솔에서 하나씩 정의해야 합니다.콘솔에서 하나씩 서비스를 찾아야 하는 데 시간이 많이 걸립니다.
아니오, 우리는 이렇게 하지 않습니다.AWS CDK를 사용하여 코드를 작성했습니다.그리고 우리는 짧은 명령
cdk deploy
을 실행하고 구름 속에 모든 내용을 설정합니다.아름답다
시작합시다.
먼저 Python을 사용하여 cdk 항목을 설정합니다.
카탈로그 만들기
$ mkdir mycdkapp && cd mycdkapp
CDK 애플리케이션 설정$ cdk init app --language python
가상 환경 활성화$ .env\Scripts\activate.bat
설치에 필요한 모든 의존 항목$ pip install -r requirements.txt
멋지다. 그래서 우리는 우리의 프로젝트를 위해 CDK 응용 프로그램을 설치했다.현재 디렉터리에서
mycdkapp_stack.py
을 보실 수 있습니다.이것이 바로 우리가 이곳에서 모든 자원 수요를 정의하는 곳이다.기존 S3 스토리지 통을 참조하여 CloudTrail에 새 로그 스토리지 통을 만듭니다.
필요한 라이브러리 설치:
$ pip install aws_cdk.aws_s3
이것은 L1 construct
을 설치하여 단일 유형의aws 서비스를 대표합니다.이 모든 것은aws에서 만든 것이기 때문에 특정한 서비스가 필요할 때마다 here 라이브러리를 찾을 수 있습니다이 예에서 우리는
aws_s3
라이브러리를 설치했다.현재 아래 코드를
mycdkapp_stack.py
에 붙여넣습니다from aws_cdk import (
aws_s3 as s3,
core
)
class MycdkappStack(core.Stack):
def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
# refer the existing s3 bucket, substitute <your-existing-s3-bucket-arn> with your bucket arn
existing_bucket=s3.Bucket.from_bucket_arn(self, "BucketByArn", "arn:aws:s3:::<your-existing-s3-bucket-arn>")
# this create a new s3 bucket with name s3LoggingBucket
logging_bucket = s3.Bucket(self,"s3LoggingBucket", bucket_name="s3loggingbucket")
두 줄 코드만 있으면 existing_bucket
을 얻을 수 있고 s3LoggingBucket
이라는 새 버킷을 만들 수 있습니다.지금 실행
cdk synth > template.yaml
템플릿이 표시됩니다.yaml은 디렉터리에 있습니다.다음은 이 로그 저장소에 저장소 정책을 설정해야 합니다.
contruct
mycdkapp
만들기logging_policy.py
pip install aws_cdk.aws_iam
logging_policy.py
에 붙여넣기from aws_cdk import (
aws_s3 as s3,
aws_iam as iam,
core,
)
class LoggingBucketPolicy(core.Construct):
def __init__(self,scope: core.Construct, id: str, _bucket: s3.IBucket, **kwargs):
super().__init__(scope,id, **kwargs)
cloudtrail_service_principal = iam.ServicePrincipal('cloudtrail.amazonaws.com')
get_bucket_policy = iam.PolicyStatement(
actions=["s3:GetBucketAcl"],
resources=[_bucket.bucket_arn],
principals=[cloudtrail_service_principal]
)
put_object_policy = iam.PolicyStatement(
actions=['s3:PutObject'],
resources=[f"arn:aws:s3:::{_bucket.bucket_name}/AWSLogs/{core.Environment.account}/*"],
principals=[cloudtrail_service_principal]
)
_bucket.add_to_resource_policy(get_bucket_policy)
_bucket.add_to_resource_policy(put_object_policy)
위의 코드는 무엇을 하는 것입니까?Construct
core.Construct
을 정의합니다s3.IBucket
으로 construct
을 _bucket
에 삽입할 것이다iam
전략 get_object_policy
및 put_object_policy
cloudtrail.amazonaws.com
이 두 정책을 사용할 수 있습니다._bucket
현재
mycdkapp_stack.py
에 이 줄을 추가합니다.LoggingBucketPolicy(self, 's3Policy', logging_bucket)
그런 다음 실행cdk synth > template.yaml
현재 template.yaml
을 검사하면 다음과 같은 내용을 볼 수 있습니다.s3LoggingBucketPolicyEF0E9CBA:
Type: AWS::S3::BucketPolicy
Properties:
Bucket:
Ref: s3LoggingBucket06C9F6F3
PolicyDocument:
Statement:
- Action: s3:GetBucketAcl
Effect: Allow
Principal:
Service: cloudtrail.amazonaws.com
Resource:
완성* 이제 성공: *
* 이제 토론할 것입니다*
기대해주세요.
[1 섹션] Amazon EventBridge 및 AwsCDK를 사용하여 로그 S3 스토리지 배럴 및 스토리지 배럴 정책을 제공하는 방법
곧 올 것이다
[섹션 2] CDK를 사용하여 Amazon Eventbridge에 EventRule, EventTarget을 정의하는 방법
네가 가기 전에, 만약 네가 이 시리즈를 좋아하거나 이것이 유용하다고 생각한다면, 나에게 커피 한 잔을 사주는 것을 고려해 봐라😊🤞 5달러 이상.
나는 전체 강좌 시리즈를 위해 GitHub repo를 준비하고 각 부분에 단독 제출을 안배할 것이다.
이것은 나의 지지자에게만 적용될 것이다. 왜냐하면 나는 이것을 준비하는 데 많은 시간을 들였기 때문이다.어쨌든 고마워요.오늘 하루 즐겁게 보내세요.
트위터에서 팔로우하기:
곧 출시될 제품(관심 있으시면):
Reference
이 문제에 관하여([1 섹션] Amazon EventBridge 및 AwsCDK를 사용하여 로그 S3 스토리지 배럴 및 스토리지 배럴 정책을 제공하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/upupkenchoong/part-1-what-is-amazon-eventbridge-and-how-to-provision-logging-s3-bucket-and-bucket-policy-using-awscdk-3g6j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)