ec2 делится ами с другим аккаунтом
Я создал AMI для EC2 и открыл доступ к другой учетной записи EC2, но не могу получить доступ к AMI с другой учетной записи EC2. Любая помощь будет оценена.
Вот что я сделал до сих пор:
Создан экземпляр с использованием Ubuntu 14.04
Войдите в инстанс и установите все необходимые инструменты
Создан новый AMI на основе экземпляра
Совместное использование AMI с другой учетной записью EC2
Вход в другую учетную запись EC2, но я не смог найти AMI в списке AMI
Любая помощь, где я могу найти AMI?
Большое спасибо.
3 ответа
Я предполагаю, что вы предоставили общий доступ к AMI в соответствии с этим документом: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html
После того, как вы поделились, затем, когда вы входите в другую учетную запись EC2, убедитесь, что вы выбрали Private Images
как показано ниже.
Только private Images
Опция будет в списке. / Показать AMI, который вы поделились с другой учетной записью.
Недавно у меня была такая же проблема. Я знаю, что это старый вопрос, но он первый возникает в Google.
Документы для совместного использования зашифрованного AMI:
https://docs.aws.amazon.com/autoscaling/ec2/userguide/key-policy-requirements-EBS-encryption.html
Я использовал группу автомасштабирования, поэтому я использовал связанную роль службы по умолчанию (arn:aws:iam::(account_id):role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling)
При совместном использовании из (ACCOUNT 1) -> (ACCOUNT 2):
в (ACCOUNT 1), где находится ключ KMS, используемый для шифрования AMI. Добавьте следующую политику:
{
"Sid": "Allow access for Key Administrators",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::(ACCOUNT 1 ID):root"
},
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "Allow use of the key",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::(ACCOUNT 2 ID):role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling",
"arn:aws:iam::(ACCOUNT 1 ID):role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling",
"arn:aws:iam::(ACCOUNT 2 ID):root"
]
},
"Action": [
"kms:Decrypt",
"kms:Encrypt",
"kms:DescribeKey",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:CreateGrant",
"kms:ListGrants",
"kms:RevokeGrant"
],
"Resource": "*"
}
Теперь в консоли найдите свой AMI, щелкните правой кнопкой мыши и поделитесь с (ACCOUNT 2 ID). Теперь вы должны увидеть, что ваш AMI указан как "Личный" в (УЧЕТНАЯ ЗАПИСЬ 2).
Если вы попытаетесь запустить AMI в (ACCOUNT 2), он автоматически остановится и выбросит ClientError
на тебе. Вам нужно выполнить следующий шаг (через aws cli):
aws kms create-grant --region (REGION WHERE KMS KEY LIVES) --key-id arn:aws:kms:us-west-2:(ACCOUNT 1 ID):key/(ACCOUNT 1 KMS KEY ID) --grantee-principal arn:aws:iam::(ACCOUNT 2 ID):role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling --operations "Encrypt" "Decrypt" "ReEncryptFrom" "ReEncryptTo" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "DescribeKey" "CreateGrant"
Теперь все должно работать.
Когда вы совместно используете кросс-аккаунт AMI, зашифрованные AMI не смогут запускаться, если вы не настроите свою политику ключей, чтобы разрешить использование другого аккаунта aws.
затем вы легко можете перечислить в консоли aws, отфильтровав раздел частного изображения