AWS上のアプリケーションをセキュリティ最適化する
Amazon Web Services(AWS)上のアプリケーションを正しくセキュリティ最適化するのは、開発を行なっている全てのAWS開発者のための必須の対策です。AWSは、潜在的なセキュリティ上の問題を修正するツールを提供し、必要なすべての脆弱性と事前に定義されたワークフローを高速化します。詳細な対策を行って、AWS上で実行されているアプリケーションが順番に安全であることを確認しましょう。
IAMポリシーで、アクセス権限を制限する
AWSでは、Identity and Access Management(IAM)を使用して、あらゆるアクセスのコントロールが可能です。管理者は、特定のユーザー(またはIAMグループ)が、特定のAWSリソース(S3バケットやKinesisストリームなど)へのアクセスを拒否することができるように、IAMポリシーを更新できます。実際に行うには、以下のコマンドを実行します。
aws iam put-user-policy --policy-name no-access --policy-document file://iam-policy.json --user-name USERNAME
たとえば、IAMポリシーでは、ユーザー(またはIAMグループ)にS3バケットへのアクセスを拒否するために以下のJSONを使います。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "s3:*",
"Effect": "Deny",
"Resource": "arn:aws:s3:::bucketname/*"
}
]
}
AWS従来の脆弱性をスキャンして修正する
AWS上のアプリケーションは、定期的なスキャンをして脆弱性のスキャンを行う必要があります。管理者は、サービス毎に実行可能なスクリプトを定義して、スキャンを行うようにをカスタマイズできます。実際に行うには、AWS CLIを使用して以下のコマンドを実行します。
aws ssm patch-compliance-scan --region=REGIONNAME --targets="Key=resourceid,Values=RESOURCEID" --kis="Key=patchbaselineid,Values=PATCHBASELINEID" --output=text
その後、スキャン結果を取得するためにAWS CLIを使用して次のコマンドを実行します。
aws ssm get-compliance-detail --region=REGIONNAME --compliance-type AUTOMATIONRESULT --scan-cource-arn
アクセスオーバーベースを設定してセキュリティを強化する
もう一つの重要な事項は、AWSアプリケーションのアクセスオーバーベースを設定することです。アクセスオーバーベースを使用すると、特定のIPからのアクセスをAWSリソースにブロックすることができます。アクセスオーバーベースを設定するには、AWS CLIを使用して次のコマンドを実行します。
aws ec2 create-network-acl-entry --network-acl-id NACLID --rule-number RULENUMBER --protocol TCP --port-range From=FROMPORT,To=TOPORT --cidr-block IP/SIZE --egress|--ingress --rule-actionallow|deny
軽減を行うために、ルールを削除することもできます。ルールの削除は次のようなコマンドを使用して行われます。
aws ec2 delete-network-acl-entry --network-acl-id NACLID --rule-number RULENUMBER --egress|ingress
以上、AWS上のアプリケーションをセキュリティ最適化する大切な対策について説明しました。IAMポリシーを作成してアクセス権限を制限し、脆弱性をスキャンして修正することにより、アプリケーションのセキュリティを確保してください。