리소스 기반 정책을 사용하여 AWS Secrets Manager 암호에 대한 액세스를 제어하려고 합니다.
간략한 설명
리소스 기반 정책을 사용하여 암호에 대한 사용자 액세스와 AWS Identity and Access Management(IAM) 사용자가 수행할 수 있는 작업을 지정합니다.
참고: 암호는 Secrets Manager를 통해 리소스로 정의됩니다.
다음과 같은 일반적인 시나리오에서 Secrets Manager 리소스 기반 정책을 사용할 수 있습니다.
- AWS 계정 간에 암호를 공유합니다.
- 암호에 명시적 거부를 추가하여 권한을 적용합니다.
다음 리소스 기반 정책 예에서는 효과, 작업 ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_resource.html), [ 리소스 및 보안 주체 요소를 사용합니다.
{ "Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:*",
"Principal": {"AWS": "arn:aws:iam::123456789999:user/Mary"},
"Resource": "*"
}
]
}
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
Secrets Manager에서 리소스 기반 정책을 적용하려면 다음 단계를 완료하세요.
-
암호를 생성한 다음 암호의 ARN을 기록해 둡니다.
-
이 정책을 복사하여 텍스트 편집기에 붙여넣은 다음 JSON 파일(예: my_explicit_deny_policy.json)로 저장합니다.
{ "Version": "2012-10-17","Statement": [
{
"Effect": "Deny",
"Action": "secretsmanager:GetSecretValue",
"Principal": {"AWS": "arn:aws:iam::123456789999:user/Mary"},
"Resource": "*"
}
]
}
-
put-resource-policy AWS CLI 명령을 실행하여 암호에 대한 리소스 정책을 첨부하여 암호 값 검색을 명시적으로 거부합니다.
aws secretsmanager put-resource-policy --secret-id My_Resource_Secret --resource-policy file:// My_explicit_deny_Policy.json
다음과 비슷한 출력이 표시됩니다.
{"ARN": "arn:aws:secretsmanager:<your region>:123456789999:secret:My_Resource_Secret",
"Name": "My_Resource_Secret"
}
참고: AWS Key Management Service(AWS KMS) 암호 해독 권한은 AWS KMS 키를 사용하여 비밀을 암호화하는 경우에만 필요합니다. 암호가 기본 AWS KMS 키로 암호화되면 타사 계정의 IAM 보안 주체는 암호를 검색할 수 없습니다.
자세한 내용을 보려면 AWS Secrets Manager 암호에 권한 정책 연결을 참조하십시오.