AWS のセキュリティ強化④ ~ ユースカジノ 昇格ボーナス編 ~
投稿日: 2024/03/11
はじめに
こんにちは、高橋です。
久しぶりの「簡単にできるAWSのセキュリティ強化」シリーズとして、AWS Secrets Managerについてご紹介したいと思います。なぜこの機能かと言われれば、私が今年AWS Certified Solutions Architect – ProfessionalとAWS Certified Security - Specialty の2つの認定資格を受験したのですが、その両方で重要なサービスとして出てきため、その勉強結果と有用性を皆様に共有したかったからです。
1.AWS Secrets Managerとは?
AWS Secrets Managerはパスワード等の機密性の高い情報(以下ユースカジノ 昇格ボーナス)を安全に保管、共有することができる機能です。例えばデータベース認証のパスワードは、複数の関係者やアプリケーションが共通で使用するケースがあると思いますが、これまでこういった場合はデータベースにアクセスするサーバのローカルにファイルに保存して共有したり、アプリケーション内にパスワードを書きこんでいたと思いますが、そうすると本来閲覧不要な人にまでアクセス可能だったり、GitHubでソースの保存ができなかったり、変更したくてもデータベースにアクセスする全てのユーザ、アプリケーションで保存しているパスワードを変更しなければならないため、ついつい初期からパスワードが変更できず、セキュリティ的に高いリスクを負うことになってしまっていました。AWS Secrets Managerを使用すれば、安全にパスワードの保存・共有することは勿論、パスワードが外部で保存されているため、定期的な変更を行うことができるようなります。また、いつ、誰がパスワードを使用したかも分かるため、気密性の高い情報の管理にはうってつけのサービスと言えます。
2.AWS ユースカジノ 昇格ボーナスの利用料金
AWS Secret Manageは保存したユースカジノ 昇格ボーナスの数と呼び出された回数に対して課金され、1ユースカジノ 昇格ボーナスごとに>87_word_end<.04、10000APIコール(呼び出し)毎に>87_word_end<.05(ともに2024/2時点の料金)と非常に安価に利用することが可能です。
3.ユースカジノ 昇格ボーナス方法
AWS Secret Managerに保存されているユースカジノ 昇格ボーナスには以下の方法でアクセスすることが可能です。
利用者 | ユースカジノ 昇格ボーナス方法 |
---|---|
人 | AWSコンソール |
コマンドライン | AWS CLI |
AWS SDK | Java, Python, .NET, Go, Java script, PHP, Ruby, C# |
AWSサービス (直接的にユースカジノ 昇格ボーナス) |
AWS Batch, AWS CloudFormation, Amazon ECS, Amazon EKS, AWS IoT Greengrass, AWS Lambda |
具体的な利用イメージは主に以下の様にプログラムがAWS SDKを用いてAWS Secret Managerから認証情報を取得して、取得した情報を元にデータベース等にユースカジノ 昇格ボーナスする形となります。
4.ユースカジノ 昇格ボーナスの保護
AWS Secret Manager内のユースカジノ 昇格ボーナスを保護する機能としては主に以下のものがあります。
- ① ユースカジノ 昇格ボーナス制御
- ② 暗号化
- ③ ローテーション
- ④ レプリケーション
ユースカジノ 昇格ボーナス制御は他のサービスと同様にIAMで行われます。実際にプログラムからユースカジノ 昇格ボーナスする場合はIAMロールを作成しておき、STSで一時認証を引き受けてユースカジノ 昇格ボーナスするのが通常のやり方になります。
次にユースカジノ 昇格ボーナスをAWS Secret Managerに保存する際にAWS KMSで暗号化することができます。これによりAWS KMSにアクセス権のないユーザからユースカジノ 昇格ボーナスを保護することができます。また、この観点から利用者を限定するためにユースカジノ 昇格ボーナス単位でKMS内の暗号化キーを分けることが推奨いたします。
また、作成時にスケジュールを組んでAmazon RDSやRedShiftの認証情報を変更することもできるため、定期的にユースカジノ 昇格ボーナスを変更することでデータベースのセキュリティを向上されることもできます。
さらに、作成時にユースカジノ 昇格ボーナスのレプリケーション設定を行うことができるため、データベースのレプリケーションとセットで設定しておくことで、災害対策にも対応することができます。
5.ユースカジノ 昇格ボーナスの作成から使用まで
ここからはAWS Secret Managerでユースカジノ 昇格ボーナスの保管から実際の利用まで見てみたいと思います。
AWS Secret Managerのコンソール画面で「新しいユースカジノ 昇格ボーナスを保存する」をクリックすると下記の設定画面が開きます。
最初の画面ではどんなタイプのもののユースカジノ 昇格ボーナスかとその値、暗号化する場合の暗号化キーを選択します。ここではRDSの認証情報を設定していますが、この場合ログインユーザを入力し、対象のDBインスタンスを選択することになります。
次のページではこのユースカジノ 昇格ボーナスの名前と他アカウントからのアクセス許可、レプリケーション設定を行えます。レプリケーションは任意のリージョンを指定することができます。
次に自動ローテーションの設定を行います。自動ローテーションをする場合、その頻度とそれを実行するlambda関数の作成の有無を指定することができます。ローテーション戦略で交代ユーザを選択した場合、ユーザのクローンが作成され、以降2つのユーザのユースカジノ 昇格ボーナスを交互に変更することによって、1つのユーザ側のユースカジノ 昇格ボーナスが更新中でももう1つのユーザのユースカジノ 昇格ボーナスは変更されていないため、Secret Manager内に必ずアクセス可能な認証情報があるため、データベースへの短時間でも接続エラーの許されない環境で有効な方法となります。
最後のページにこのユースカジノ 昇格ボーナスへアクセスするためのサンプルコードが言語ごとに表示されるので、メモをして使用します。なお、サンプルコードはユースカジノ 昇格ボーナスの概要画面でも確認することができます。
続いて実際のユースカジノ 昇格ボーナスが保存され、値が取得できるか試してみます。人が取得するのであれば、コンソールから確認可能で、対象のユースカジノ 昇格ボーナス画面で「ユースカジノ 昇格ボーナスの値を取得する」をクリックすると、その情報が表示されます。
また、CLIからも簡単に取得して利用することが可能です。
[ec2-user@ip-192-168-0-11 ~]$ aws secretsmanager get-secret-value --secret-id test01
{
"Name": "test01",
"VersionId": "5eda0d4e-f781-411f-934c-e72deac20a73",
"SecretString": "{ユースカジノ 昇格ボーナス;"usernameユースカジノ 昇格ボーナス;":ユースカジノ 昇格ボーナス;"dbadminユースカジノ 昇格ボーナス;",ユースカジノ 昇格ボーナス;"passwordユースカジノ 昇格ボーナス;":ユースカジノ 昇格ボーナス;"test123!ユースカジノ 昇格ボーナス;",ユースカジノ 昇格ボーナス;"engineユースカジノ 昇格ボーナス;":ユースカジノ 昇格ボーナス;"postgresユースカジノ 昇格ボーナス;",ユースカジノ 昇格ボーナス;"hostユースカジノ 昇格ボーナス;":ユースカジノ 昇格ボーナス;"testdb-1.cluster-ce5kwjzerty9.ap-northeast-1.rds.amazonaws.comユースカジノ 昇格ボーナス;",ユースカジノ 昇格ボーナス;"portユースカジノ 昇格ボーナス;":5432,ユースカジノ 昇格ボーナス;"dbClusterIdentifierユースカジノ 昇格ボーナス;":ユースカジノ 昇格ボーナス;"testdb-1ユースカジノ 昇格ボーナス;"}",
"VersionStages": [
"AWSCURRENT"
],
"CreatedDate": 1708750677.068,
"ARN": "arn:aws:secretsmanager:ap-northeast-1:111111111111:secret:test01-eyNhMR"
}
最後にサンプルコードを使ってLambdaからユーザIDとユースカジノ 昇格ボーナスを取得してみたいと思います。サンプルコードは下記の通りでした。
# Use this code snippet in your app.
# If you need more information about configurations
# or implementing the sample code, visit the AWS docs:
# https://aws.amazon.com/developer/language/python/
import boto3
from botocore.exceptions import ClientError
def get_secret():
secret_name = "test01"(ユースカジノ 昇格ボーナスの名前)
region_name = "ap-northeast-1"(ユースカジノ 昇格ボーナスが保存されているリージョン)
# Create a Secrets Manager client
session = boto3.session.Session()
client = session.client(
service_name='secretsmanager',
region_name=region_name
)
try:
get_secret_value_response = client.get_secret_value(
SecretId=secret_name
)
except ClientError as e:
# For a list of exceptions thrown, see
# https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html
raise e
secret = get_secret_value_response['SecretString']
# Your code goes here.
実際に値を取り出しているのは「secret = get_secret_value_response['SecretString']」ですが、これはCLIの結果の「SecretString」と同じで、ユーザIDとユースカジノ 昇格ボーナスを個別に取り出せているわけではありません。また「SecretString」の中身はdict型に見えますが、dict型で扱おうとしても扱えなかったので、一度astモジュールで整形する必要がありました。その結果、実際のコードは下記の様になりました。追加、変更したのは赤字の箇所です。
import boto3
from botocore.exceptions import ClientErrorimport ast
def lambda_handler(event, context):ユースカジノ 昇格ボーナスname = "test01"
region_name = "ap-northeast-1"
# Create a Secrets Manager client
session = boto3.session.Session()
client = session.client(
service_name='secretsmanager',
region_name=region_name
)
try:
get_ユースカジノ 昇格ボーナスvalue_response = client.get_ユースカジノ 昇格ボーナスvalue(
SecretId=ユースカジノ 昇格ボーナスname
)
except ClientError as e:
# For a list of exceptions thrown, see
# https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html
raise e
secret = get_ユースカジノ 昇格ボーナスvalue_response['SecretString']ユースカジノ 昇格ボーナスstring = ast.literal_eval(secret)
name = ユースカジノ 昇格ボーナスstring['username']
password = ユースカジノ 昇格ボーナスstring['password']
print(name)
print(password)
実行してみると下記の様に、ユーザIDとユースカジノ 昇格ボーナスが無事取得できました。
6.さいごに
今回はAWS環境のセキュリティ強化の第4弾としてAWS Secret Managerについてご紹介しました。これまでのAWS環境自体のセキュリティ強化とは異なり、所謂ユースカジノ 昇格ボーナス管理の強化の内容となりますが、セキュリティ事故の多くは杜撰なユースカジノ 昇格ボーナス管理に起因しています。AWS Secret Managerを使用すればユースカジノ 昇格ボーナス管理を一元化し、必要な人・アプリケーションのみに利用を限定することができ、さらには人の手を介さず簡単にユースカジノ 昇格ボーナスを定期的に更新することも可能となるため、利用しているユースカジノ 昇格ボーナスのセキュリティを大幅に強化することが可能となります。もしまだ利用していない方がいらっしゃったら、是非AWS Secret Managerの利用を検討してみてください。
カジノゲームは、AWSのビジネス利活用に向けて、お客様のステージに合わせた幅広い構築・運用支援サービスを提供しています。
経験豊富なエンジニアが、ワンストップかつ柔軟にご支援します。
ぜひ、お気軽にお問い合わせください。