aws-rds-readreplica-general_log

https://www.facebook.com/groups/awskrug/permalink/2404835746285102/

다음과 같은 질문이 올라왔다.
바로 생각난건 general_log.. 그래서 Master와 Readreplica 가 각각 다른 Parameter Group(이하 PG)를 가질수 있는지 확인해보기로 했다.

먼저 Readreplica 생성했다.

실제로 읽기복제본을 만들때는 파라메터 그룹을 수정할수 없다.

Master 의 PG를 그대로 사용한다.

이렇게 모두 생성된 Readreplica 를 수정을 눌러보면

데이터베이스 옵션에서 파라메터 그룹을 볼수있다.
그래서 나는 따로 PG를 만들어주고..general_log 도 켜줬다.

dynamic / static 으로 나뉘는데 적용유형이 dynamic이면 PG가 적용된상태에서 라이브로 적용된다. 디비의 재시작이 필요없다.

물론..PG를 변경하게 되면 RDS의 재시작이 필요하다.

그럼 1차 결론으로 마스터와 슬레이브는 생성시엔 같은 PG를 사용한다. PG는 마스터와 슬레이브는 다르게 사용하려면 수정해야한다.

현재구성은 마스터는 general_log를 사용하지 않고, 슬레이브만 사용한다. 그럼 슬레이브에서 제네럴 로그를 쌓는지 확인해 보자.

이상하게 적용이 안되서 보니..

보류중이면 말하지;

재시작 시켜서 적용해주고~

잘쌓인다..타임존이 이상하네? 그건 넘어가고..

마스터는 안쌓이는거 확인했고~

질문의 답은 확인할수 없지만..general_log 가 마스터와 슬레이브가 별개로 쌓이는 설정이 가능하고 슬레이브의 용량이 서비스에 영향을 미칠수있다.

정도로 결론 내리겠다.

급한 테스트였지만 결론을 내린다!

linux-ubuntu-auto-update-diable

vi /etc/apt/apt.conf.d/20auto-upgrades

APT::Periodic::Unattended-Upgrade “1”;

1로 설정된 옵션을 수정하면 자동업데이트는 꺼진다.

그렇다고 해서 업데이트를 할수없는것은 아니고 수동으로 명령어를 쳐서 가능하다.

#unattended-upgrade –dry-run

명령어를 이용해서 확인하자.

aws-sns-kms-cmk

aws 관리형키를 사용할 경우 sns 암호화를 하면 cloudwatch 에서 호출이 안된다….

작업 arn:aws:sns:ap-northeast-2:userid:sns_topic을(를) 실행하지 못했습니다. 수신 오류: ‘null (Service: AWSKMS; Status Code: 400; Error Code: AccessDeniedException; Request ID: 60c4ef-f3bb-4c89-98c8-67317fc18a)’

이런 에러가 발생한다. 이경우 CMK 를 이용해서 SNS 암호화를 해야한다.

https://aws.amazon.com/ko/premiumsupport/knowledge-center/cloudwatch-receive-sns-for-alarm-trigger/

다음 링크를 참조했다.

위와 같은 구성으로 생성하고 정책을 적용한다.

{
“Version”: “2012-10-17”,
“Id”: “EMR-System-KeyPolicy”,
“Statement”: [
{
“Sid”: “Allow access for Root User”,
“Effect”: “Allow”,
“Principal”: {
“AWS”: “arn:aws:iam::userid:root”
},
“Action”: “kms:*”,
“Resource”: “*”
},
{
“Sid”: “Allow access for Key Administrator”,
“Effect”: “Allow”,
“Principal”: {
“AWS”: “arn:aws:iam::userid:root”
},
“Action”: [
“kms:Create*”,
“kms:Describe*”,
“kms:Enable*”,
“kms:List*”,
“kms:Put*”,
“kms:Update*”,
“kms:Revoke*”,
“kms:Disable*”,
“kms:Get*”,
“kms:Delete*”,
“kms:TagResource”,
“kms:UntagResource”,
“kms:ScheduleKeyDeletion”,
“kms:CancelKeyDeletion”
],
“Resource”: “*”
},
{
“Sid”: “Allow access for Key User (SNS IAM User)”,
“Effect”: “Allow”,
“Principal”: {
“AWS”: “arn:aws:iam::userid:root”
},
“Action”: [
“kms:GenerateDataKey*”,
“kms:Decrypt”
],
“Resource”: “*”
},
{
“Sid”: “Allow access for Key User (SNS Service Principal)”,
“Effect”: “Allow”,
“Principal”: {
“Service”: [
“sns.amazonaws.com”,
“cloudwatch.amazonaws.com”
]
},
“Action”: [
“kms:GenerateDataKey*”,
“kms:Decrypt”
],
“Resource”: “*”
}
]
}

userid 부분만 수정해주면 잘작동한다.

aws-s3-delete-mfa-enable

오늘은 s3 delete 를 mfa 로 제한하는 방법에 대해서 포스팅 해보겠다.

aws 에서 s3 버킷에 대한 삭제 제한을 해야 할때가 있다.

이경우에 root access key를 생성하여야 한다.

iam 대시보드에서 mfa 와 루트 엑세스키를 생성할수 있다.

보안자격증명 관리로 이동해서 진행한다. 과정은 간단하고 쉬우니 URL을 참고하자.

https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_credentials_mfa.html – MFA 활성화

https://docs.aws.amazon.com/ko_kr/general/latest/gr/managing-aws-access-keys.html -access key 생성

생성한 키로 aws cli 를 사용가능하도록 설정한다

/root/.aws/credentials 다음 위치다.

access key를 넣고 mfa 를 확인해보자

root@ip-10-0-0-12 ~]# aws iam list-virtual-mfa-devices
An error occurred (AccessDenied) when calling the ListVirtualMFADevices operation: User: arn:aws:sts:: usernumber :assumed-role/AmazonEC2RoleForSSM/i-052ebb4fb1eade551 is not authorized to perform: iam:ListVirtualMFADevices on resource: arn:aws:iam:: usernumber :mfa/

루트권한이 아닐경우 위와같은 에러가 난다 administrator 계정일경우 ListVirtualMFADevices 정책이 부여되어있어 에러가 발생하지 않을것이다. 하지만 mfa는 사용할수 없을것이라 root key여야 한다.

명령어가 정상적으로 작동하면 아래와 같이 반환된다.

{
“VirtualMFADevices”: [
{
“SerialNumber”: “arn:aws:iam:: usernumber :mfa/root-account-mfa-device”,
“EnableDate”: “2019-10-28T01:06:07Z”,
“User”: {
“PasswordLastUsed”: “2020-03-18T00:27:36Z”,
“CreateDate”: “2019-07-29T13:23:03Z”,
“UserId”: “1”,
“Arn”: “arn:aws:iam:: usernumber :root”
}
}
]
}

나는 root 계정에만 mfa 를 활성화 하였기에 루트 계정에서 사용하는 mfa 만 뜬것이다.

root@ip-10-0-0-12 ~]# aws s3api put-bucket-versioning –bucket linuxer-data –versioning-configuration Status=Enabled,MFADelete=Enabled –mfa “arn:aws:iam::usernumber:mfa/root-account-mfa-device <016432>”
An error occurred (InvalidRequest) when calling the PutBucketVersioning operation: DevPay and Mfa are mutually exclusive authorization methods.

linuxer-data 라는 버킷을 versioning 을 켜고 MFADelete 를 활성화 한다는 명령어인데 에러가 발생한것이다. 이때 root 계정이 아니라서 발생한 에러이다.

root@ip-10-0-0-12 ~]# aws s3api put-bucket-versioning –bucket linuxer-data –versioning-configuration Status=Enabled,MFADelete=Enabled –mfa “arn:aws:iam:: usernumber:mfa/root-account-mfa-device 926220”

정상적으로 root access key일 경우에는 그냥 명령어가 떨어진다.

root@ip-10-0-0-12 ~]# aws s3api get-bucket-versioning –bucket linuxer-data
{
“Status”: “Enabled”,
“MFADelete”: “Enabled”
}

이후에 다음과 같이 aws s3api get-bucket-versioning –bucket linuxer-data 명령어로 정상적으로 설정이 됬는지 확인이 가능하다.

gmail-mail-delete

구글메일의 용량이 가득차 문제가 생기는 경우가 있으실 겁니다.

size:100k older_than:1y -@gmail.com

100K 이상 1년 이상 위의 @gmail.com 메일주소를 제외하고 검색해주는 명령어 입니다.

google 검색 규칙과도 동일하므로 패턴을 좀더 확실하게 알고싶으시면

https://support.google.com/vault/answer/2474474?hl=ko

다음 URL 을 참고하세요.

AWS-EBS-encrypt

EBS 암호화 과정을 포스팅 하겠다.

일반적으로 EBS는 기본이 암호화를 하지 않도록 설정되어있다. 이미 생성된 볼륨을 암호화 할 순 없다.

따라서 이미 생성된 인스턴스에 연결된 EBS를 암호화 하기위해선 다음과 같은 과정을 거쳐야 한다.

인스턴스종료-스냅샷-EBS 암호화로 볼륨 생성-인스턴스에서 볼륨분리-암호화된 볼륨 연결-인스턴스시작.

암호화 되지 않은 볼륨이 있다. 이볼륨을 암호화 할거다.

인스턴스를 중지한다.

임시스토리지 유실 안내가 나온다.

인스턴스가 중지되면 연결된 EBS를 찾아서 스냅샷을 진행한다.

tag 를 Name 로 설정하여 잘적자. 생성된 스냅샷으로 볼륨을 생성한다.

추가할 태그는 원래 볼륨에 붙어있던 태그에 -encrypt 태그를 추가하여 원래 볼륨과의 구별을 두자.

인스턴스에서 볼륨을 분리한다. 여기서 중요한점은 원래 마운트 되어있는 포지션이다.

볼륨을 연결한다 이때에 원래의 마운트 포지션에 연결해 준다.

중지된 인스턴스는 보인다.

디바이스 설정이 중요하다. 먼저 sdf 로 연결하고 인스턴스를 시작해 보겠다.

루트 디바이스가 없는 경우 시작이 안된다. 그래서 디바이스연결은 /dev/xvda 를 기억하라고 한것이다. 디바이스 마운트 포지션을 변경하려면 분리후 재연결 하여야 한다.

/dev/xvda 로 연결하면 루트 디바이스로 인식이 된다.

중지 상태인 인스턴스를 시작 하면 정상적으로 시작이된다.

이렇게 볼륨 암호화를 진행하여 보았다.

Azure-300-301-exam

https://docs.microsoft.com/ko-kr/learn/certifications/azure-solutions-architect#certification-exam-disclaimers

Microsoft Certified: Azure Solutions Architect Expert 자격을 획득하려면 300-301 시험을 봐야한다. 그래야..별세개..

https://docs.microsoft.com/ko-kr/learn/paths/architect-great-solutions-in-azure/

이URL에서 무료교육을 할수있다.

센터에 있는 데이터를 사용한 심층 방어를 보여주는 일러스트레이션. 데이터 주변의 보안 링에는 애플리케이션, 컴퓨팅, 네트워크, 경계, ID 및 액세스, 물리적 보안이 포함됩니다.
  • 보안: 액세스 및 데이터 무결성 보호 및 규정 요구 사항 충족
  • 성능 및 확장성: 모든 시나리오의 요청에 대해 효율적으로 충족
  • 가용성 및 복구 기능: 가동 중지 시간 최소화 및 영구 데이터 손실 방지
  • 효율성 및 운영: 유지 관리 극대화 및 요구 사항 확인은 모니터링을 통해 충족

보안

 CIA 중 하나 이상을 구현할 수 있습니다.

# 예제 원칙
1데이터Azure Blob 스토리지의 미사용 데이터 암호화무결성
2애플리케이션SSL/TLS 암호화 세션무결성
3컴퓨팅정기적으로 OS 및 계층화 소프트웨어 패치 적용가용성
4네트워크네트워크 보안 규칙기밀성
5경계DDoS 보호가용성
6ID 및 액세스Azure Active Directory 사용자 인증무결성
7물리적 보안Azure 데이터 센터 생체 인식 액세스 제어기밀성

curl-openssl_4 to openssl_3

php-curl-openssl 모듈을 사용하게 될 경우 컴파일을 하면 문제가 생겼다.

ubuntu 16 / apache 2.4 / php 5.3 / curl 7.49 / openssl 0.9.8zh

모두 컴파일 된 상태였다.

이과정에서 php 는 CURL_OPENSSL_4 이 아닌 CURL_OPENSSL_3을 요구했고 수정하는 방법이다.

vi  curl-7.54.0/lib/libcurl.vers

HIDDEN
{
local:
__; _rest;
_save*;
};
CURL_OPENSSL_4 -> CURL_OPENSSL_3
{
global: curl_*;
local: *;
};

CURL_OPENSSL_4 부분을 CURL_OPENSSL_3 으로 수정해서 컴파일 하자.

./configure –prefix=/usr/local/curl –with-ssl=/usr/local/openssl –enable-versioned-symbols

mv /usr/lib/x86_64-linux-gnu/libcurl.so.4 /usr/lib/x86_64-linux-gnu/libcurl.so.4.orig

ln -s /usr/local/curl/lib/libcurl.so.4.4.0 /usr/lib/x86_64-linux-gnu/libcurl.so.4