[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.)