AWS Secrets Managerでは、直接的にIPアドレスを基にアクセス制限を設定する機能はありません。
しかし、適切なAWSリソースの活用やIAMポリシーの設定を行うことで、特定のIPアドレスまたはネットワークからのみアクセスを許可する構成を実現できます。
本記事では、会社のIPアドレスからのみAWS Secrets Managerにアクセスを許可する方法について、実装例を交えながら解説します。
解決方法
AWS Secrets ManagerでIPアドレス制限を実現するためには、以下の2つの方法を組み合わせることが重要です。
- IAMポリシーによるアクセス制限
- VPCエンドポイントの活用
1. IAMポリシーでのアクセス制限
IAMポリシーを利用して、特定のVPCやネットワークからのみアクセスを許可する条件を設定できます。
たとえば、aws:SourceVpc
条件キーを使用することで、特定のVPCからのアクセスを許可するポリシーを作成します。
以下はその例です。
IAMポリシー例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:region:account-id:secret:secret-id", "Condition": { "StringEquals": { "aws:SourceVpc": "vpc-xxxxxxxx" } } } ] } |
Action
: 許可する操作(この場合、GetSecretValue
)Resource
: アクセスを許可するSecrets ManagerのARNCondition
: 指定したVPC(例:vpc-xxxxxxxx
)からのみアクセスを許可
このポリシーにより、指定したVPC内のリソースからのみSecrets Managerへのアクセスが可能になります。
2. VPCエンドポイントの活用
Secrets Managerは、AWS PrivateLinkを使用してVPCエンドポイントを介したプライベート接続をサポートしています。
VPCエンドポイントを利用することで、インターネットを介さず、特定のVPCやセキュリティグループからのみアクセスを制御できます。
VPCエンドポイントの設定手順
- VPCエンドポイントの作成:
- AWS Management Consoleにログインし、VPCサービスを開きます。
- “エンドポイント”を選択し、新しいエンドポイントを作成します。
- サービス名で
com.amazonaws.<region>.secretsmanager
を選択します。 - 対象となるVPCとサブネットを選択します。
- 必要に応じてセキュリティグループを設定します。
- VPCエンドポイントポリシーの設定: 作成時にエンドポイントポリシーを設定し、特定の条件に基づくアクセス制限を実現します。
VPCエンドポイントポリシー例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:region:account-id:secret:secret-id", "Condition": { "StringEquals": { "aws:SourceVpc": "vpc-xxxxxxxx" } } } ] } |
セキュリティグループとネットワークACLによる制限
VPC内でさらに細かいアクセス制限を行う場合は、セキュリティグループやネットワークACLを活用します。
セキュリティグループの例
1 2 3 4 5 6 7 |
- インバウンドルール: - ポート: TCP 443 (HTTPS) - ソース: 会社のCIDR範囲 (例: 203.0.113.0/24) - アウトバウンドルール: - ポート: TCP 443 (HTTPS) - 宛先: 任意 |
注意点
aws:SourceIp
の利用について-
Secrets ManagerへのアクセスがEC2インスタンスのIAMロール経由で行われる場合、
aws:SourceIp
条件は適用できません。 - マネジメントコンソールへのアクセス
-
ユーザーがSecrets Managerのコンソールに直接アクセスする場合は、IAMユーザーポリシーに対して
aws:SourceIp
条件を設定することで制御可能です。
IAMユーザーポリシー例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:*", "Resource": "*", "Condition": { "IpAddress": { "aws:SourceIp": "203.0.113.0/24" } } } ] } |
実装のポイント
- VPCエンドポイントを使用してSecrets Managerへのプライベート接続を確立する
- IAMポリシーでVPCや特定の条件に基づいたアクセス制御を設定する
- セキュリティグループやネットワークACLを使用して、ネットワークレベルでの制限を強化する
これらを組み合わせることで、安全かつ柔軟にAWS Secrets Managerへのアクセスを制御できます。
まとめ
AWS Secrets ManagerでIPアドレス制限を実現するには、IAMポリシーやVPCエンドポイント、セキュリティグループなどの複数のAWSリソースを組み合わせて設定することが重要です。
これにより、セキュリティ要件を満たしながら、安全なシークレット管理が可能になります。
ぜひこの記事を参考に、システムのセキュリティを強化してください。
コメント