因此,我的項目在ec2實例上的服務器上運行,並使用SES發送電子郵件。當SES可以被公衆訪問時,我能夠發送電子郵件,但是當我嘗試實施安全性時,它開始給出問題。我已將以下身份策略附加到SES電子郵件地址,其中一個公開阻止訪問,另一個允許ec2訪問SES電子郵件地址。但是,我總是被阻塞,出現錯誤:允許AWS EC2訪問AWS SES(簡單電子郵件服務)並拒絕公衆訪問的身份策略
The email was not sent.Error message: User `arn_of_ec2_role' is not authorized to perform
`ses:SendEmail' on resource `arn_of_email_address' (Service: AmazonSimpleEmailService;
Status Code: 403; Error Code: AccessDenied;
Request ID: b92h2a02-4502-32g8-8334-9504941fdefd4e35)
我的策略是:
允許EC2:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "stmt8473824324",
"Effect": "Allow",
"Principal": {
"AWS": "arn_of_role_used_by_ec2"
},
"Action": [
"ses:SendEmail",
"ses:SendRawEmail"
],
"Resource": "arn_of_email"
}
]
}
要拒絕公開:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": [
"ses:SendEmail",
"ses:SendRawEmail"
],
"Resource": "arn_of_email"
}
]
}
編輯1 : 原來,我只需將封裝{}添加到「AWS」:「arn_of_role_used_by_ec2」。但即使如此,我沒有獲得許可。我仍然遇到同樣的錯誤。爲了驗證,我甚至使用了用戶策略並嘗試使用該用戶訪問它,但即使如此,我也遇到了同樣的錯誤,只是現在不同的arn被拒絕了。我的政策如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"NotPrincipal": {
"AWS": "arn_of_role_used_by_ec2"
},
"Action": [
"ses:SendEmail",
"ses:SendRawEmail"
],
"Resource": "arn_of_email"
}
]
}
EDIT2:
很抱歉這麼晚纔回復,以下是我做的,以按您的更新:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "stmt1476011587135",
"Effect": "Allow",
"Principal": "*",
"Action": [
"ses:SendEmail",
"ses:SendRawEmail"
],
"Resource": "arn_of_email",
"Condition": {
"StringEquals": {
"aws:SourceArn": "arn_of_ecs_instance"
}
}
}
]
}
和
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "stmt1476011639899",
"Effect": "Deny",
"Principal": "*",
"Action": [
"ses:SendEmail",
"ses:SendRawEmail"
],
"Resource": "arn_of_email",
"Condition": {
"StringNotEquals": {
"aws:SourceArn": "arn_of_ecs_instance"
}
}
}
]
}
使用arn_of_ecs_instance,因爲我只是用IAM用戶進行驗證,並且只需要訪問ec2實例。但我仍然可以通過Java API發送電子郵件地址,同時使用My IAM用戶憑證發送郵件。
嘗試將所有策略中的資源分配給'*'。 –
@MattHouser我試過了,但出現錯誤 **應用策略時出錯:無效ARN:ARN必須以'arn:'開頭:*(請求ID:4b922926-83e8-11e6-8845-5946c19d3615)** since我將該政策附加到特定的電子郵件地址。我甚至嘗試**「資源」:「arn:aws:ses:us-east-1:453679034254:identity/*」**我應用策略時出現錯誤**錯誤:預期資源爲'arn_of_email',但是'arn:aws:ses:us-east-1:453679034254:identity /*'.** – Mirhawk