AWS開発者のためのプラットフォームのセキュリティ




AWSというサービスを利用することで開発者や開発団体が安全なプラットフォームを構築することが求められます。AWSのプラットフォームを使用する場合は、1つの方法でしかセキュリティを確保することはできません。動的なサイトやAPIなど、さまざまなプラットフォーム上で実行する複数のアプリケーションなど、プラットフォームのセキュリティを保証するために様々なテクニックが必要となります。

SSL/TLSの活用




SSL/TLSは、Webサイトなどで使用する安全なコミュニケーションを行うための標準的な手段です。Webサイトで導入する SSL/TLS は、攻撃者による不正な情報の取得を防ぐための必須のプラットフォームコンポーネントです。特に、お客様が強力なパスワードを使用している場合でも、SSL/TLS によって不正な情報収集攻撃に備えます。以下に、AWS上で SSL/TLS を使用するサンプルソースコードを記載します。
import boto3

# マネジメントコンソールで、IAMロールを取得して、
# 以下のポリシーを作成してください
# {
# "Version": "2012-10-17",
# "Statement": [
# {
# "Effect": "Allow",
# "Action": [
# "ec2:DescribeInstances",
# "ec2:StartInstances",
# "ec2:StopInstances"
# ],
# "Resource": "*"
# }
# ]
# }

# IAMロールを入力してください
role_arn = 'REPLACE_ME'

# 前述のポリシーをアタッチしてください
ec2 = boto3.client('ec2', role_arn)

# EC2 インスタンスを起動
# 既存のインスタンスIDを入力してください
instances = 'REPLACE_ME'

ec2.start_instances(InstanceIds=instances)

#出力
print('Started your instances: ' + str(instances))

クラウドワークフロー方式の活用




クラウドワークフローは、以下のようなセキュリティ関連のコンポーネントによって定義されます。

- 許可されたアクセス者の認証と認可
- データ保護
- ログイン制御
- 匿名性のあるデータ共有

クラウドワークフローの導入により、高度なプラットフォームのセキュリティを実現できます。以下に、AWS上でクラウドワークフローを設定するサンプルソースコードを記載します。
import boto3

# アクセス権限があるIAMを入力
assume_role = 'REPLACE_ME'

client = boto3.client('sts')

# IAMロールを会計する
# プロセスはバケットにアクセスし
# ロールをアサイン
role_creds = client.assume_role(RoleArn=assume_role,
RoleSessionName='cloud-workflows-assume-role')

# AWS クラウドワークフローを設定、
# バケットを指定
cwf_client = boto3.client('stepfunctions',
aws_access_key_id=role_creds['Credentials']['AccessKeyId'],
aws_secret_access_key=role_creds['Credentials']['SecretAccessKey'],
aws_session_token=role_creds['Credentials']['SessionToken'],
)

# state マシンとワークフローを設定
cwf_client.create_state_machine(
name='cloud-workflow',
definition=open('cloud_workflow_definition.json', 'r').read(),
roleArn='arn:aws:iam::123456789012:role/execution_role')

# 出力
print('Cloud Workflow created successfully')

クラウドサービスレイヤーの脆弱性評価




プラットフォーム上で、アプリケーションを実行する前に、すべてのサービスレイヤーの脆弱性を評価することを強くおすすめします。AWSプラットフォームの脆弱性を評価するために、例えばAmazon Inspectorなどのツールを利用することができます。以下に、Amazon Inspectorを使用してサービスレイヤーの脆弱性評価を行うサンプルソースコードを記載します。
import boto3
import json

# 以下の情報を更新してください
# IAMロール
role_arn = 'REPLACE_ME'
# 既存のEC2インスタンス
instance_ids = 'REPLACE_ME'
# 評価テンプレート
template_arn = 'REPLACE_ME'

# 代理を取得
session = boto3.Session(role_arn=role_arn)

# AWS CLIを介して
# Amazon Inspectorの評価を開始
inspector = session.client('inspector')

# 以下を入力
# ・評価テンプレートのARN
# ・評価対象インスタンス
# 評価検証を開始
inspector.start_assessment_run(
assessmentTemplate

投稿者: systemreach_engineer